diff --git a/sa-token-demo/sa-token-demo-springboot/src/main/java/com/pj/test/GlobalException.java b/sa-token-demo/sa-token-demo-springboot/src/main/java/com/pj/current/GlobalException.java similarity index 98% rename from sa-token-demo/sa-token-demo-springboot/src/main/java/com/pj/test/GlobalException.java rename to sa-token-demo/sa-token-demo-springboot/src/main/java/com/pj/current/GlobalException.java index 0df13f7f..ff974d3d 100644 --- a/sa-token-demo/sa-token-demo-springboot/src/main/java/com/pj/test/GlobalException.java +++ b/sa-token-demo/sa-token-demo-springboot/src/main/java/com/pj/current/GlobalException.java @@ -1,4 +1,4 @@ -package com.pj.test; +package com.pj.current; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; diff --git a/sa-token-demo/sa-token-demo-springboot/src/main/java/com/pj/current/NotFoundHandle.java b/sa-token-demo/sa-token-demo-springboot/src/main/java/com/pj/current/NotFoundHandle.java new file mode 100644 index 00000000..3e8e46eb --- /dev/null +++ b/sa-token-demo/sa-token-demo-springboot/src/main/java/com/pj/current/NotFoundHandle.java @@ -0,0 +1,34 @@ +package com.pj.current; + +import java.io.IOException; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.springframework.boot.web.servlet.error.ErrorController; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import cn.dev33.satoken.util.SaResult; + +/** + * 处理 404 + * @author kong + */ +@RestController +public class NotFoundHandle implements ErrorController { + + @Override + public String getErrorPath() { + return "/error"; + } + + @RequestMapping("/error") + public Object error(HttpServletRequest request, HttpServletResponse response) throws IOException { +// response.sendError(200); + System.out.println("--------------------大闸蟹"); + response.setStatus(200); + return SaResult.get(404, "not found", null); + } + +} diff --git a/sa-token-demo/sa-token-demo-thymeleaf/src/main/resources/application.yml b/sa-token-demo/sa-token-demo-thymeleaf/src/main/resources/application.yml index 14a193d4..aac39af7 100644 --- a/sa-token-demo/sa-token-demo-thymeleaf/src/main/resources/application.yml +++ b/sa-token-demo/sa-token-demo-thymeleaf/src/main/resources/application.yml @@ -2,42 +2,4 @@ server: port: 8081 -# sa-token配置 -sa-token: - # token名称 (同时也是cookie名称) - token-name: satoken - # token有效期,单位s 默认30天, -1代表永不过期 - timeout: 2592000 - # token临时有效期 (指定时间内无操作就视为token过期) 单位: 秒 - activity-timeout: -1 - # 是否允许同一账号并发登录 (为true时允许一起登录, 为false时新登录挤掉旧登录) - is-concurrent: true - # 在多人登录同一账号时,是否共用一个token (为true时所有登录共用一个token, 为false时每次登录新建一个token) - is-share: true - # token风格 - token-style: uuid -spring: - # redis配置 - redis: - # Redis数据库索引(默认为0) - database: 0 - # Redis服务器地址 - host: 127.0.0.1 - # Redis服务器连接端口 - port: 6379 - # Redis服务器连接密码(默认为空) - password: - # 连接超时时间(毫秒) - timeout: 10000ms - lettuce: - pool: - # 连接池最大连接数 - max-active: 200 - # 连接池最大阻塞等待时间(使用负值表示没有限制) - max-wait: -1ms - # 连接池中的最大空闲连接 - max-idle: 10 - # 连接池中的最小空闲连接 - min-idle: 0 - \ No newline at end of file diff --git a/sa-token-starter/sa-token-spring-boot-starter/src/main/java/cn/dev33/satoken/interceptor/SaRouteInterceptor.java b/sa-token-starter/sa-token-spring-boot-starter/src/main/java/cn/dev33/satoken/interceptor/SaRouteInterceptor.java index 7a08e433..8ec0941c 100644 --- a/sa-token-starter/sa-token-spring-boot-starter/src/main/java/cn/dev33/satoken/interceptor/SaRouteInterceptor.java +++ b/sa-token-starter/sa-token-spring-boot-starter/src/main/java/cn/dev33/satoken/interceptor/SaRouteInterceptor.java @@ -19,9 +19,9 @@ import cn.dev33.satoken.stp.StpUtil; public class SaRouteInterceptor implements HandlerInterceptor { /** - * 每次进入拦截器的[执行函数] + * 每次进入拦截器的[执行函数],默认为登录校验 */ - public SaRouteFunction function; + public SaRouteFunction function = (req, res, handler) -> StpUtil.checkLogin(); /** * 创建一个路由拦截器 @@ -56,28 +56,21 @@ public class SaRouteInterceptor implements HandlerInterceptor { public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { - // 如果未提供function,默认进行登录验证 - if(function == null) { - StpUtil.checkLogin(); - } else { - // 否则执行认证函数 - try { - function.run(new SaRequestForServlet(request), new SaResponseForServlet(response), handler); - } catch (StopMatchException e) { - // 停止匹配,进入Controller - } catch (BackResultException e) { - // 停止匹配,向前端输出结果 - if(response.getContentType() == null) { - response.setContentType("text/plain; charset=utf-8"); - } - response.getWriter().print(e.getMessage()); - return false; + try { + function.run(new SaRequestForServlet(request), new SaResponseForServlet(response), handler); + } catch (StopMatchException e) { + // 停止匹配,进入Controller + } catch (BackResultException e) { + // 停止匹配,向前端输出结果 + if(response.getContentType() == null) { + response.setContentType("text/plain; charset=utf-8"); } + response.getWriter().print(e.getMessage()); + return false; } // 通过验证 return true; } - }