修复 quick-login 插件循环依赖问题

This commit is contained in:
click33
2022-04-23 16:20:04 +08:00
parent 7302a34de0
commit 0c0b08c6c3
10 changed files with 49 additions and 33 deletions

View File

@@ -312,7 +312,7 @@ public class SaSsoHandle {
String secretkey = req.getParam(ParamName.secretkey); String secretkey = req.getParam(ParamName.secretkey);
SaSsoUtil.checkSecretkey(secretkey); SaSsoUtil.checkSecretkey(secretkey);
stpLogic.logoutByTokenValue(stpLogic.getTokenValueByLoginId(loginId)); stpLogic.logout(loginId);
return SaSsoConsts.OK; return SaSsoConsts.OK;
} }

View File

@@ -11,6 +11,7 @@
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId> <artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.0.RELEASE</version> <version>2.0.0.RELEASE</version>
<!-- <version>2.6.0</version> -->
</parent> </parent>
<!-- 定义sa-token版本号 --> <!-- 定义sa-token版本号 -->

View File

@@ -23,7 +23,7 @@
``` java ``` java
// 全局异常拦截拦截项目中的NotLoginException异常 // 全局异常拦截拦截项目中的NotLoginException异常
@ExceptionHandler(NotLoginException.class) @ExceptionHandler(NotLoginException.class)
public AjaxJson handlerNotLoginException(NotLoginException nle, HttpServletRequest request, HttpServletResponse response) public SaResult handlerNotLoginException(NotLoginException nle)
throws Exception { throws Exception {
// 打印堆栈,以供调试 // 打印堆栈,以供调试
@@ -51,7 +51,7 @@ public AjaxJson handlerNotLoginException(NotLoginException nle, HttpServletReque
} }
// 返回给前端 // 返回给前端
return AjaxJson.getError(message); return SaResult.error(message);
} }
``` ```

View File

@@ -76,18 +76,18 @@ public class TestController {
// 测试Sa-Token缓存 // 测试Sa-Token缓存
@RequestMapping("login") @RequestMapping("login")
public AjaxJson login(@RequestParam(defaultValue="10001") String id) { public SaResult login(@RequestParam(defaultValue="10001") String id) {
System.out.println("--------------- 测试Sa-Token缓存"); System.out.println("--------------- 测试Sa-Token缓存");
StpUtil.login(id); StpUtil.login(id);
return AjaxJson.getSuccess(); return SaResult.ok();
} }
// 测试业务缓存 // 测试业务缓存
@RequestMapping("test") @RequestMapping("test")
public AjaxJson test() { public SaResult test() {
System.out.println("--------------- 测试业务缓存"); System.out.println("--------------- 测试业务缓存");
stringRedisTemplate.opsForValue().set("hello", "Hello World"); stringRedisTemplate.opsForValue().set("hello", "Hello World");
return AjaxJson.getSuccess(); return SaResult.ok();
} }
} }

View File

@@ -65,7 +65,7 @@ public class SaTokenConfigure {
// 指定[异常处理函数]:每次[认证函数]发生异常时执行此函数 // 指定[异常处理函数]:每次[认证函数]发生异常时执行此函数
.setError(e -> { .setError(e -> {
System.out.println("---------- sa全局异常 "); System.out.println("---------- sa全局异常 ");
return AjaxJson.getError(e.getMessage()); return SaResult.error(e.getMessage());
}) })
; ;
} }

View File

@@ -51,7 +51,7 @@ public class SaTokenConfigure {
// 异常处理函数:每次认证函数发生异常时执行此函数 // 异常处理函数:每次认证函数发生异常时执行此函数
.setError(e -> { .setError(e -> {
System.out.println("---------- 进入Sa-Token异常处理 -----------"); System.out.println("---------- 进入Sa-Token异常处理 -----------");
return AjaxJson.getError(e.getMessage()); return SaResult.error(e.getMessage());
}) })
// 前置函数:在每次认证函数之前执行 // 前置函数:在每次认证函数之前执行

View File

@@ -86,8 +86,8 @@ public String add() {
// 注解式鉴权:只要具有其中一个权限即可通过校验 // 注解式鉴权:只要具有其中一个权限即可通过校验
@RequestMapping("atJurOr") @RequestMapping("atJurOr")
@SaCheckPermission(value = {"user-add", "user-all", "user-delete"}, mode = SaMode.OR) @SaCheckPermission(value = {"user-add", "user-all", "user-delete"}, mode = SaMode.OR)
public AjaxJson atJurOr() { public SaResult atJurOr() {
return AjaxJson.getSuccessData("用户信息"); return SaResult.data("用户信息");
} }
``` ```
@@ -103,8 +103,8 @@ mode有两种取值
// 注解式鉴权:只要具有其中一个权限即可通过校验 // 注解式鉴权:只要具有其中一个权限即可通过校验
@RequestMapping("userAdd") @RequestMapping("userAdd")
@SaCheckPermission(value = "user-add", orRole = "admin") @SaCheckPermission(value = "user-add", orRole = "admin")
public AjaxJson userAdd() { public SaResult userAdd() {
return AjaxJson.getSuccessData("用户信息"); return SaResult.data("用户信息");
} }
``` ```

View File

@@ -0,0 +1,30 @@
package cn.dev33.satoken.quick;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
import cn.dev33.satoken.quick.config.SaQuickConfig;
import cn.dev33.satoken.quick.web.SaQuickController;
/**
* Quick-Bean 注入
*
* @author kong
*
*/
@Configuration
@Import({ SaQuickController.class, SaQuickRegister.class})
public class SaQuickInject {
/**
* 注入quick-login 配置
*
* @param saQuickConfig 配置对象
*/
@Autowired
public void setSaQuickConfig(SaQuickConfig saQuickConfig) {
SaQuickManager.setConfig(saQuickConfig);
}
}

View File

@@ -1,33 +1,28 @@
package cn.dev33.satoken.quick; package cn.dev33.satoken.quick;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
import org.springframework.core.annotation.Order; import org.springframework.core.annotation.Order;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import cn.dev33.satoken.context.SaHolder; import cn.dev33.satoken.context.SaHolder;
import cn.dev33.satoken.filter.SaServletFilter; import cn.dev33.satoken.filter.SaServletFilter;
import cn.dev33.satoken.quick.config.SaQuickConfig; import cn.dev33.satoken.quick.config.SaQuickConfig;
import cn.dev33.satoken.quick.web.SaQuickController;
import cn.dev33.satoken.router.SaRouter; import cn.dev33.satoken.router.SaRouter;
import cn.dev33.satoken.stp.StpUtil; import cn.dev33.satoken.stp.StpUtil;
import cn.dev33.satoken.util.SaTokenConsts; import cn.dev33.satoken.util.SaTokenConsts;
/** /**
* 自动注入 * Quick-Bean 注册
* *
* @author kong * @author kong
* *
*/ */
@Configuration @Configuration
@Import({ SaQuickController.class }) public class SaQuickRegister {
public class SaQuickBean implements WebMvcConfigurer {
/** /**
* quick-login 配置 * 注册 Quick-Login 配置
* *
* @return see note * @return see note
*/ */
@@ -38,17 +33,7 @@ public class SaQuickBean implements WebMvcConfigurer {
} }
/** /**
* 入quick-login 配置 * [sa-token全局过滤器]
*
* @param saQuickConfig 配置对象
*/
@Autowired
public void setSaQuickConfig(SaQuickConfig saQuickConfig) {
SaQuickManager.setConfig(saQuickConfig);
}
/**
* 注册 [sa-token全局过滤器]
* *
* @return see note * @return see note
*/ */

View File

@@ -1 +1 @@
org.springframework.boot.autoconfigure.EnableAutoConfiguration=cn.dev33.satoken.quick.SaQuickBean org.springframework.boot.autoconfigure.EnableAutoConfiguration=cn.dev33.satoken.quick.SaQuickInject