mirror of
https://gitee.com/dromara/sa-token.git
synced 2026-05-14 12:52:08 +08:00
@@ -31,7 +31,7 @@
|
|||||||
<noear-snack3.version>3.2.133</noear-snack3.version>
|
<noear-snack3.version>3.2.133</noear-snack3.version>
|
||||||
<jfinal.version>4.9.17</jfinal.version>
|
<jfinal.version>4.9.17</jfinal.version>
|
||||||
<jboot.version>3.14.4</jboot.version>
|
<jboot.version>3.14.4</jboot.version>
|
||||||
<loveqq.version>1.1.2-java8</loveqq.version>
|
<loveqq.version>1.1.5-java8</loveqq.version>
|
||||||
<commons-pool2.version>2.5.0</commons-pool2.version>
|
<commons-pool2.version>2.5.0</commons-pool2.version>
|
||||||
<dubbo.version>2.7.21</dubbo.version>
|
<dubbo.version>2.7.21</dubbo.version>
|
||||||
<grpc-spring-boot-starter.version>2.10.1.RELEASE</grpc-spring-boot-starter.version>
|
<grpc-spring-boot-starter.version>2.10.1.RELEASE</grpc-spring-boot-starter.version>
|
||||||
|
|||||||
@@ -24,6 +24,7 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.kfyty</groupId>
|
<groupId>com.kfyty</groupId>
|
||||||
<artifactId>loveqq-core</artifactId>
|
<artifactId>loveqq-core</artifactId>
|
||||||
|
<scope>provided</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<!-- loveqq-mvc-core -->
|
<!-- loveqq-mvc-core -->
|
||||||
@@ -33,17 +34,40 @@
|
|||||||
<scope>provided</scope>
|
<scope>provided</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
<!-- loveqq redisson starter,默认提供,不配置链接信息不生效 -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.kfyty</groupId>
|
||||||
|
<artifactId>loveqq-boot-starter-redisson</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
<!-- jackson 序列化、redis集成、SSO、OAuth2 等模块要用到,比较重要所以内置集成 -->
|
<!-- jackson 序列化、redis集成、SSO、OAuth2 等模块要用到,比较重要所以内置集成 -->
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>cn.dev33</groupId>
|
<groupId>cn.dev33</groupId>
|
||||||
<artifactId>sa-token-jackson</artifactId>
|
<artifactId>sa-token-jackson</artifactId>
|
||||||
|
<exclusions>
|
||||||
|
<!-- loveqq-core 已有,这里排除以统一版本 -->
|
||||||
|
<exclusion>
|
||||||
|
<groupId>com.fasterxml.jackson.core</groupId>
|
||||||
|
<artifactId>jackson-databind</artifactId>
|
||||||
|
</exclusion>
|
||||||
|
<exclusion>
|
||||||
|
<groupId>com.fasterxml.jackson.datatype</groupId>
|
||||||
|
<artifactId>jackson-datatype-jsr310</artifactId>
|
||||||
|
</exclusion>
|
||||||
|
</exclusions>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<!-- loveqq redisson starter -->
|
<!-- redisson,默认提供,不配置不生效 -->
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.kfyty</groupId>
|
<groupId>cn.dev33</groupId>
|
||||||
<artifactId>loveqq-boot-starter-redisson</artifactId>
|
<artifactId>sa-token-redisson</artifactId>
|
||||||
<scope>provided</scope>
|
<exclusions>
|
||||||
|
<!-- 使用 loveqq redisson starter 提供的 -->
|
||||||
|
<exclusion>
|
||||||
|
<groupId>org.redisson</groupId>
|
||||||
|
<artifactId>redisson</artifactId>
|
||||||
|
</exclusion>
|
||||||
|
</exclusions>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<!-- Servlet API -->
|
<!-- Servlet API -->
|
||||||
|
|||||||
@@ -16,6 +16,8 @@
|
|||||||
package cn.dev33.satoken.loveqq.boot;
|
package cn.dev33.satoken.loveqq.boot;
|
||||||
|
|
||||||
import cn.dev33.satoken.config.SaTokenConfig;
|
import cn.dev33.satoken.config.SaTokenConfig;
|
||||||
|
import cn.dev33.satoken.dao.SaTokenDao;
|
||||||
|
import cn.dev33.satoken.dao.SaTokenDaoForRedisson;
|
||||||
import cn.dev33.satoken.loveqq.boot.context.path.ApplicationContextPathLoading;
|
import cn.dev33.satoken.loveqq.boot.context.path.ApplicationContextPathLoading;
|
||||||
import cn.dev33.satoken.loveqq.boot.filter.SaFirewallCheckFilter;
|
import cn.dev33.satoken.loveqq.boot.filter.SaFirewallCheckFilter;
|
||||||
import cn.dev33.satoken.loveqq.boot.filter.SaTokenContextFilter;
|
import cn.dev33.satoken.loveqq.boot.filter.SaTokenContextFilter;
|
||||||
@@ -26,6 +28,8 @@ import com.kfyty.loveqq.framework.core.autoconfig.annotation.Bean;
|
|||||||
import com.kfyty.loveqq.framework.core.autoconfig.annotation.Component;
|
import com.kfyty.loveqq.framework.core.autoconfig.annotation.Component;
|
||||||
import com.kfyty.loveqq.framework.core.autoconfig.annotation.ConfigurationProperties;
|
import com.kfyty.loveqq.framework.core.autoconfig.annotation.ConfigurationProperties;
|
||||||
import com.kfyty.loveqq.framework.core.autoconfig.annotation.Import;
|
import com.kfyty.loveqq.framework.core.autoconfig.annotation.Import;
|
||||||
|
import com.kfyty.loveqq.framework.core.autoconfig.condition.annotation.ConditionalOnBean;
|
||||||
|
import org.redisson.api.RedissonClient;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 注册Sa-Token所需要的Bean
|
* 注册Sa-Token所需要的Bean
|
||||||
@@ -57,6 +61,17 @@ public class SaBeanRegister {
|
|||||||
return new SaTokenConfig();
|
return new SaTokenConfig();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* redis dao 集成
|
||||||
|
*
|
||||||
|
* @return {@link SaTokenDao}
|
||||||
|
*/
|
||||||
|
@Bean
|
||||||
|
@ConditionalOnBean(RedissonClient.class)
|
||||||
|
public SaTokenDao saTokenDao(RedissonClient redisson) {
|
||||||
|
return new SaTokenDaoForRedisson(redisson);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 应用上下文路径加载器
|
* 应用上下文路径加载器
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -29,8 +29,8 @@ import reactor.core.publisher.Mono;
|
|||||||
* @since 1.19.0
|
* @since 1.19.0
|
||||||
*/
|
*/
|
||||||
public class SaReactorHolder {
|
public class SaReactorHolder {
|
||||||
public static final String REQUEST_CONTEXT_ATTRIBUTE = "com.kfyty.loveqq.framework.web.mvc.netty.request.support.RequestContextHolder.REQUEST_CONTEXT_ATTRIBUTE";
|
public static final String REQUEST_CONTEXT_ATTRIBUTE = "com.kfyty.loveqq.framework.web.mvc.reactor.request.support.RequestContextHolder.REQUEST_CONTEXT_ATTRIBUTE";
|
||||||
public static final String RESPONSE_CONTEXT_ATTRIBUTE = "com.kfyty.loveqq.framework.web.mvc.netty.request.support.ResponseContextHolder.REQUEST_CONTEXT_ATTRIBUTE";
|
public static final String RESPONSE_CONTEXT_ATTRIBUTE = "com.kfyty.loveqq.framework.web.mvc.reactor.request.support.ResponseContextHolder.REQUEST_CONTEXT_ATTRIBUTE";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取 Mono < ServerRequest >
|
* 获取 Mono < ServerRequest >
|
||||||
|
|||||||
@@ -25,7 +25,8 @@ import cn.dev33.satoken.strategy.SaAnnotationStrategy;
|
|||||||
import com.kfyty.loveqq.framework.web.core.http.ServerRequest;
|
import com.kfyty.loveqq.framework.web.core.http.ServerRequest;
|
||||||
import com.kfyty.loveqq.framework.web.core.http.ServerResponse;
|
import com.kfyty.loveqq.framework.web.core.http.ServerResponse;
|
||||||
import com.kfyty.loveqq.framework.web.core.interceptor.HandlerInterceptor;
|
import com.kfyty.loveqq.framework.web.core.interceptor.HandlerInterceptor;
|
||||||
import com.kfyty.loveqq.framework.web.core.mapping.MethodMapping;
|
import com.kfyty.loveqq.framework.web.core.route.HandlerMethodRoute;
|
||||||
|
import com.kfyty.loveqq.framework.web.core.route.Route;
|
||||||
|
|
||||||
import java.lang.reflect.Method;
|
import java.lang.reflect.Method;
|
||||||
|
|
||||||
@@ -110,15 +111,15 @@ public class SaInterceptor implements HandlerInterceptor {
|
|||||||
* 每次请求之前触发的方法
|
* 每次请求之前触发的方法
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public boolean preHandle(ServerRequest request, ServerResponse response, MethodMapping handler) {
|
public boolean preHandle(ServerRequest request, ServerResponse response, Route handler) {
|
||||||
SaTokenContextModelBox prev = SaTokenContextUtil.setContext(request, response);
|
SaTokenContextModelBox prev = SaTokenContextUtil.setContext(request, response);
|
||||||
try {
|
try {
|
||||||
// 前置函数:在注解鉴权之前执行
|
// 前置函数:在注解鉴权之前执行
|
||||||
beforeAuth.run(handler);
|
beforeAuth.run(handler);
|
||||||
|
|
||||||
// 这里必须确保 handler 是 HandlerMethod 类型时,才能进行注解鉴权
|
// 这里必须确保 handler 是 HandlerMethod 类型时,才能进行注解鉴权
|
||||||
if (isAnnotation) {
|
if (isAnnotation && handler instanceof HandlerMethodRoute) {
|
||||||
Method method = handler.getMappingMethod();
|
Method method = ((HandlerMethodRoute) handler).getMappedMethod();
|
||||||
SaAnnotationStrategy.instance.checkMethodAnnotation.accept(method);
|
SaAnnotationStrategy.instance.checkMethodAnnotation.accept(method);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user