优化文档

This commit is contained in:
click33
2021-10-11 23:44:34 +08:00
parent 8a72c69474
commit 17235e0d2c
10 changed files with 45 additions and 19 deletions

View File

@@ -82,15 +82,15 @@ public class SaTokenConfigure {
// 开放地址
.addExclude("/favicon.ico")
// 鉴权方法:每次访问进入
.setAuth(r -> {
.setAuth(obj -> {
// 登录验证 -- 拦截所有路由,并排除/user/doLogin 用于开放登录
SaRouter.match("/**", "/user/doLogin", () -> StpUtil.checkLogin());
SaRouter.match("/**", "/user/doLogin", r -> StpUtil.checkLogin());
// 权限认证 -- 不同模块, 校验不同权限
SaRouter.match("/user/**", () -> StpUtil.checkPermission("user"));
SaRouter.match("/admin/**", () -> StpUtil.checkPermission("admin"));
SaRouter.match("/goods/**", () -> StpUtil.checkPermission("goods"));
SaRouter.match("/orders/**", () -> StpUtil.checkPermission("orders"));
SaRouter.match("/user/**", r -> StpUtil.checkPermission("user"));
SaRouter.match("/admin/**", r -> StpUtil.checkPermission("admin"));
SaRouter.match("/goods/**", r -> StpUtil.checkPermission("goods"));
SaRouter.match("/orders/**", r -> StpUtil.checkPermission("orders"));
// ...
})

View File

@@ -102,7 +102,7 @@ public class SaTokenConfigure implements WebMvcConfigurer {
return new SaServletFilter()
.addInclude("/**")
.addExclude("/favicon.ico")
.setAuth(r -> {
.setAuth(obj -> {
// 校验 Id-Token 身份凭证 —— 以下两句代码可简化为SaIdUtil.checkCurrentRequestToken();
String token = SaHolder.getRequest().getHeader(SaIdUtil.ID_TOKEN);
SaIdUtil.checkToken(token);

View File

@@ -1,6 +1,31 @@
# 更新日志
### 2021-10-11 @v1.27.0
- 升级:增强 SaRouter 链式匹配能力 **[重要]**
- 新增:新增插件 Thymeleaf 标签方言 **[重要]**
- 新增:@SaCheckPermission 增加 orRole 字段用于权限角色“双重or”匹配 **[重要]**
- 升级Cookie模式增加 `secure``httpOnly``sameSite`等属性的配置 **[重要]**
- 重构重构SSO三种模式抽离出统一的认证中心 **[重要]**
- 新增:新增 SaStrategy 策略类,方便内部逻辑按需重写 **[重要]**
- 新增:临时认证模块新增 deleteToken 方法用于回收 Token
- 新增:新增 kickout、replaced 等注销会话的方法,更灵活的控制会话周期 **[重要]**
- 新增权限认证增加API`StpUtil.hasPermissionAnd``StpUtil.hasPermissionOr`
- 新增角色认证增加API`StpUtil.hasRoleAnd``StpUtil.hasRoleOr`
- 新增:新增 `StpUtil.getRoleList()``StpUtil.getPermissionList()` 方法
- 新增:新增 StpLogic 自动注入特性,可快速方便的扩展 StpLogic 对象
- 优化:优化同端互斥登录逻辑,如果登录时没有指定设备标识,则默认顶替所有设备下线
- 优化:在未登录时调用 hasRole 和 hasPermission 不再抛出异常而是返回false
- 升级:升级注解鉴权算法,并提供更简单的重写方式
- 文档:新增常见报错排查,方便快速排查异常报错
- 文档文档新增SSO单点登录与OAuth2技术选型对比
- 破坏式更新:
- [向下兼容] 废弃 SaTokenAction 接口,替代方案: SaStrategy
- [向下兼容] 移除 `StpUtil.logoutByLoginId()` 更换为 `StpUtil.kickout()`;
- [不向下兼容] 侦听器 doLogoutByLoginId 与 doReplaced 方法移除 device 参数
- [不向下兼容] 侦听器 doLogoutByLoginId 方法重命名为 doKickout
### 2021-9-2 @v1.26.0
- 优化:优化单点登录文档
- 新增:新增 `Http Basic` 认证 **[重要]**

View File

@@ -24,7 +24,7 @@ public class SaTokenConfigure implements WebMvcConfigurer {
return new SaServletFilter()
.addInclude("/**")
.addExclude("/sso/*", "/favicon.ico")
.setAuth(r -> {
.setAuth(obj -> {
if(StpUtil.isLogin() == false) {
String back = SaFoxUtil.joinParam(SaHolder.getRequest().getUrl(), SpringMVCUtil.getRequest().getQueryString());
SaHolder.getResponse().redirect("/sso/login?back=" + SaFoxUtil.encodeUrl(back));
@@ -50,7 +50,7 @@ public class SaTokenConfigure implements WebMvcConfigurer {
return new SaServletFilter()
.addInclude("/**")
.addExclude("/sso/*", "/favicon.ico")
.setAuth(r -> {
.setAuth(obj -> {
if(StpUtil.isLogin() == false) {
// 与前端约定好code=401时代表会话未登录
SaRouter.back(SaResult.ok().setCode(401));

View File

@@ -58,7 +58,7 @@ public class SaTokenConfigure {
// 指定 [放行路由]
.addExclude("/favicon.ico")
// 指定[认证函数]: 每次请求执行
.setAuth(r -> {
.setAuth(obj -> {
System.out.println("---------- sa全局认证");
// SaRouter.match("/test/test", () -> StpUtil.checkLogin());
})

View File

@@ -49,7 +49,7 @@ public SaResult test3() {
public SaServletFilter getSaServletFilter() {
return new SaServletFilter()
.addInclude("/**").addExclude("/favicon.ico")
.setAuth(r -> {
.setAuth(obj -> {
SaRouter.match("/test/**", () -> SaBasicUtil.check("sa:123456"));
});
}

View File

@@ -39,7 +39,7 @@ public class SaTokenConfigure {
.addInclude("/**").addExclude("/favicon.ico")
// 认证函数: 每次请求执行
.setAuth(r -> {
.setAuth(obj -> {
System.out.println("---------- 进入Sa-Token全局认证 -----------");
// 登录验证 -- 拦截所有路由,并排除/user/doLogin 用于开放登录