抽离包装类,核心包脱离ServletAPI

This commit is contained in:
shengzhang
2021-04-05 22:54:25 +08:00
parent 9b44e05c28
commit 15eefbed33
30 changed files with 522 additions and 405 deletions

View File

@@ -18,7 +18,7 @@
<dependencies>
<dependency>
<groupId>cn.dev33</groupId>
<artifactId>sa-token-core</artifactId>
<artifactId>sa-token-servlet</artifactId>
<version>${sa-token-version}</version>
</dependency>
<dependency>

View File

@@ -11,6 +11,7 @@ import org.springframework.context.annotation.Import;
/**
* 将此注解加到springboot启动类上即可完成sa-token与springboot的集成
* <p>注: v1.7版本以上已不再需要此注解直接引入sa-token-spring-boot-starter依赖即可
* <p>请直接忽略此注解
* @author kong
*
*/

View File

@@ -9,10 +9,9 @@ import org.springframework.util.PathMatcher;
import cn.dev33.satoken.SaTokenManager;
import cn.dev33.satoken.action.SaTokenAction;
import cn.dev33.satoken.config.SaTokenConfig;
import cn.dev33.satoken.cookie.SaTokenCookie;
import cn.dev33.satoken.context.SaTokenContext;
import cn.dev33.satoken.dao.SaTokenDao;
import cn.dev33.satoken.servlet.SaTokenServlet;
import cn.dev33.satoken.spring.SaTokenServletSpringImpl;
import cn.dev33.satoken.spring.SaTokenContextForSpring;
import cn.dev33.satoken.stp.StpInterface;
/**
@@ -65,16 +64,6 @@ public class SaTokenSpringAutowired {
SaTokenManager.setStpInterface(stpInterface);
}
/**
* 注入Cookie操作Bean
*
* @param saTokenCookie SaTokenCookie对象
*/
@Autowired(required = false)
public void setSaTokenCookie(SaTokenCookie saTokenCookie) {
SaTokenManager.setSaTokenCookie(saTokenCookie);
}
/**
* 注入框架行为Bean
*
@@ -86,23 +75,23 @@ public class SaTokenSpringAutowired {
}
/**
* 获取Servlet操作Bean (Spring版)
* 获取容器交互Bean (Spring版)
*
* @return Servlet操作Bean (Spring版)
* @return 容器交互Bean (Spring版)
*/
@Bean
public SaTokenServlet getSaTokenServlet() {
return new SaTokenServletSpringImpl();
public SaTokenContext getSaTokenContext() {
return new SaTokenContextForSpring();
}
/**
* 注入Servlet操作Bean
* 注入容器交互Bean
*
* @param saTokenServlet SaTokenServlet对象
* @param saTokenContext SaTokenContext对象
*/
@Autowired
public void setSaTokenServlet(SaTokenServlet saTokenServlet) {
SaTokenManager.setSaTokenServlet(saTokenServlet);
public void setSaTokenContext(SaTokenContext saTokenContext) {
SaTokenManager.setSaTokenContext(saTokenContext);
}
/**
@@ -112,7 +101,7 @@ public class SaTokenSpringAutowired {
*/
@Autowired(required = false)
public void setPathMatcher(PathMatcher pathMatcher) {
SaTokenServletSpringImpl.setPathMatcher(pathMatcher);
SaTokenContextForSpring.setPathMatcher(pathMatcher);
}

View File

@@ -5,6 +5,8 @@ import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.HandlerInterceptor;
import cn.dev33.satoken.context.model.servlet.SaRequestForServlet;
import cn.dev33.satoken.context.model.servlet.SaResponseForServlet;
import cn.dev33.satoken.router.SaRouteFunction;
import cn.dev33.satoken.stp.StpUtil;
@@ -57,7 +59,7 @@ public class SaRouteInterceptor implements HandlerInterceptor {
StpUtil.checkLogin();
} else {
// 否则执行函数
function.run(request, response, handler);
function.run(new SaRequestForServlet(request), new SaResponseForServlet(response), handler);
}
// 通过验证

View File

@@ -1,12 +1,13 @@
package cn.dev33.satoken.spring;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.util.AntPathMatcher;
import org.springframework.util.PathMatcher;
import cn.dev33.satoken.servlet.SaTokenServlet;
import cn.dev33.satoken.context.SaTokenContext;
import cn.dev33.satoken.context.model.SaRequest;
import cn.dev33.satoken.context.model.SaResponse;
import cn.dev33.satoken.context.model.servlet.SaRequestForServlet;
import cn.dev33.satoken.context.model.servlet.SaResponseForServlet;
/**
* sa-token 对Cookie的相关操作 接口实现类
@@ -14,25 +15,24 @@ import cn.dev33.satoken.servlet.SaTokenServlet;
* @author kong
*
*/
public class SaTokenServletSpringImpl implements SaTokenServlet {
public class SaTokenContextForSpring implements SaTokenContext {
/**
* 获取当前请求的Request对象
*/
@Override
public HttpServletRequest getRequest() {
return SpringMVCUtil.getRequest();
public SaRequest getRequest() {
return new SaRequestForServlet(SpringMVCUtil.getRequest());
}
/**
* 获取当前请求的Response对象
*/
@Override
public HttpServletResponse getResponse() {
return SpringMVCUtil.getResponse();
public SaResponse getResponse() {
return new SaResponseForServlet(SpringMVCUtil.getResponse());
}
/**
* 路由匹配器
*/
@@ -54,7 +54,7 @@ public class SaTokenServletSpringImpl implements SaTokenServlet {
* @param pathMatcher 路由匹配器
*/
public static void setPathMatcher(PathMatcher pathMatcher) {
SaTokenServletSpringImpl.pathMatcher = pathMatcher;
SaTokenContextForSpring.pathMatcher = pathMatcher;
}
/**