完善框架结构,解决了validation和saToken的问题

This commit is contained in:
guo
2024-07-14 23:00:59 +08:00
parent b1358eaca0
commit e759ab2a75
14 changed files with 315 additions and 64 deletions
@@ -2,15 +2,11 @@ package com.guo.learningprogresstracker.config;
import cn.dev33.satoken.stp.StpUtil;
import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import com.guo.learningprogresstracker.entity.UserEntity;
import lombok.extern.slf4j.Slf4j;
import org.apache.ibatis.reflection.MetaObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.annotation.Configuration;
import java.time.LocalDateTime;
import java.util.Date;
/**
* 用于配置
@@ -34,6 +30,7 @@ public class AutoTableField implements MetaObjectHandler {
@Override
public void updateFill(MetaObject metaObject) {
log.info("update autoField");
this.strictInsertFill(metaObject, "lastModifiedBy", StpUtil::getLoginIdAsString, String.class);
this.strictInsertFill(metaObject, "lastModifiedTime", LocalDateTime::now, LocalDateTime.class);
}
@@ -0,0 +1,25 @@
package com.guo.learningprogresstracker.config;
import com.guo.learningprogresstracker.config.interceptor.Interceptor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import java.util.Arrays;
@Configuration
@Slf4j
public class SaTokenConfigure implements WebMvcConfigurer {
@Autowired
Interceptor interceptor;
// 注册拦截器
@Override
public void addInterceptors(InterceptorRegistry registry) {
// 注册 Sa-Token 拦截器,校验规则为 StpUtil.checkLogin() 登录校验。
registry.addInterceptor(interceptor)
.addPathPatterns("/**")
.excludePathPatterns(Arrays.asList("/login","/tasks"));
}
}
@@ -0,0 +1,45 @@
package com.guo.learningprogresstracker.config.interceptor;
import cn.dev33.satoken.stp.StpUtil;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
/**
* @Author: ChangYu
* @Version 1.0
*/
/**
* 拦截器
*/
@Component
public class Interceptor implements HandlerInterceptor {
Logger logger = LoggerFactory.getLogger(this.getClass());
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
/**
* token过期或失效时,由于前端基本都是AJAX请求,拦截器返回401,由前端负责跳转至OA登陆页面
* note:chang yu
*/
StpUtil.checkLogin();
//续签
StpUtil.updateLastActiveToNow();
return true;
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
}
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
}
}