新增二级Context模式

This commit is contained in:
click33
2021-10-30 00:37:04 +08:00
parent 3929b16dfb
commit 068f838165
20 changed files with 186 additions and 43 deletions

View File

@@ -9,6 +9,7 @@ import cn.dev33.satoken.basic.SaBasicTemplate;
import cn.dev33.satoken.basic.SaBasicUtil;
import cn.dev33.satoken.config.SaTokenConfig;
import cn.dev33.satoken.context.SaTokenContext;
import cn.dev33.satoken.context.second.SaTokenSecondContextCreator;
import cn.dev33.satoken.dao.SaTokenDao;
import cn.dev33.satoken.id.SaIdTemplate;
import cn.dev33.satoken.id.SaIdUtil;
@@ -69,7 +70,7 @@ public class SaBeanInject {
}
/**
* 注入容器交互Bean
* 注入上下文Bean
*
* @param saTokenContext SaTokenContext对象
*/
@@ -78,6 +79,16 @@ public class SaBeanInject {
SaManager.setSaTokenContext(saTokenContext);
}
/**
* 注入二级上下文Bean
*
* @param saTokenSecondContextCreator 二级上下文创建器
*/
@Autowired(required = false)
public void setSaTokenContext(SaTokenSecondContextCreator saTokenSecondContextCreator) {
SaManager.setSaTokenSecondContext(saTokenSecondContextCreator.create());
}
/**
* 注入侦听器Bean
*

View File

@@ -48,6 +48,12 @@ public class SaTokenContextForSpring implements SaTokenContext {
return SaPathMatcherHolder.getPathMatcher().match(pattern, path);
}
/**
* 此上下文是否有效
*/
@Override
public boolean isValid() {
return SpringMVCUtil.isWeb();
}
}

View File

@@ -39,4 +39,12 @@ public class SpringMVCUtil {
return servletRequestAttributes.getResponse();
}
/**
* 判断当前是否处于 Web 上下文中
* @return request
*/
public static boolean isWeb() {
return RequestContextHolder.getRequestAttributes() != null;
}
}