mirror of
https://gitee.com/dromara/sa-token.git
synced 2025-05-04 04:37:56 +08:00
commit
f8210c6ca5
@ -214,5 +214,17 @@ public class SaTokenEventCenter {
|
||||
listener.doLogoutSession(id);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 每次renew timeout时触发
|
||||
*
|
||||
* @param tokenValue
|
||||
* @param loginId
|
||||
* @param timeout
|
||||
*/
|
||||
public static void doRenewTimeout(String tokenValue, Object loginId, long timeout) {
|
||||
for (SaTokenListener listener : listenerList) {
|
||||
listener.doRenewTimeout(tokenValue, loginId, timeout);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -69,5 +69,13 @@ public interface SaTokenListener {
|
||||
* @param id SessionId
|
||||
*/
|
||||
public void doLogoutSession(String id);
|
||||
|
||||
|
||||
/**
|
||||
* 执行renew超时时间操作的时触发
|
||||
*
|
||||
* @param tokenValue
|
||||
* @param loginId
|
||||
* @param timeout
|
||||
*/
|
||||
public void doRenewTimeout(String tokenValue, Object loginId, long timeout);
|
||||
}
|
||||
|
@ -78,6 +78,18 @@ public class SaTokenListenerForConsolePrint implements SaTokenListener {
|
||||
println("Session[" + id + "]注销成功");
|
||||
}
|
||||
|
||||
/**
|
||||
* 每次更新超时时间后触发
|
||||
*
|
||||
* @param tokenValue
|
||||
* @param loginId
|
||||
* @param timeout
|
||||
*/
|
||||
@Override
|
||||
public void doRenewTimeout(String tokenValue, Object loginId, long timeout) {
|
||||
println("帐号[" + loginId + "]更新超时时间成功!");
|
||||
}
|
||||
|
||||
/**
|
||||
* 日志输出的前缀
|
||||
*/
|
||||
|
@ -52,4 +52,9 @@ public class SaTokenListenerForSimple implements SaTokenListener {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void doRenewTimeout(String tokenValue, Object loginId, long timeout) {
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -1219,6 +1219,9 @@ public class StpLogic {
|
||||
if(isOpenActivityCheck()) {
|
||||
dao.updateTimeout(splicingKeyLastActivityTime(tokenValue), timeout);
|
||||
}
|
||||
|
||||
// 通知更新超时事件
|
||||
SaTokenEventCenter.doRenewTimeout(tokenValue, loginId, timeout);
|
||||
}
|
||||
|
||||
// ------------------- 角色验证操作 -------------------
|
||||
|
@ -47,8 +47,13 @@
|
||||
|
||||
|
||||
### 加了注解进行鉴权认证,不生效?
|
||||
注解鉴权功能默认关闭,两种方式任选其一进行打开:注册注解拦截器、集成AOP模块,参考:[注解式鉴权](/use/at-check),
|
||||
如果已经打开仍然没有效果,加群说明一下复现步骤
|
||||
1. 注解鉴权功能默认关闭,两种方式任选其一进行打开:注册注解拦截器、集成AOP模块,参考:[注解式鉴权](/use/at-check)
|
||||
2. 在Spring环境中, 如果同时配置了`WebMvcConfigurer`和`WebMvcConfigurationSupport`时, 也会导致拦截器失效.
|
||||
|
||||
**常见场景**: 很多项目中会在`WebMvcConfigurationSupport`中配置`addResourceHandlers`方法开放Swagger等相关静态资源映射, 同时基于Sa-Token添加了`WebMvcConfigurer`配置`addInterceptors`方法注册注解拦截器, 这样会导致注解拦截器失效.
|
||||
|
||||
**解决方案**: `WebMvcConfigurer`和`WebMvcConfigurationSupport`只选一个配置, 建议统一通过实现`WebMvcConfigurer`接口进行配置.
|
||||
4. 如果以上步骤处理后仍然没有效果,加群说明一下复现步骤
|
||||
|
||||
|
||||
### 有时候我不加 Token 也可以通过鉴权,请问是怎么回事?
|
||||
|
@ -78,7 +78,12 @@ public class MySaTokenListener implements SaTokenListener {
|
||||
public void doLogoutSession(String id) {
|
||||
System.out.println("---------- 自定义侦听器实现 doLogoutSession");
|
||||
}
|
||||
|
||||
|
||||
/** 每次更新token超时时间时触发 */
|
||||
@Override
|
||||
public void doRenewTimeout(String tokenValue, Object loginId, long timeout) {
|
||||
System.out.println("帐号[" + loginId + "]更新超时时间成功!");
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user