Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
shengzhang_
sa-token
提交
e40a39e3
sa-token
项目概览
shengzhang_
/
sa-token
通知
68
Star
16
Fork
4
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
sa-token
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
e40a39e3
编写于
4月 18, 2021
作者:
shengzhang_
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
新增权限通配符
上级
f1104b6a
变更
16
隐藏空白更改
内联
并排
Showing
16 changed file
with
92 addition
and
48 deletion
+92
-48
sa-token-core/src/main/java/cn/dev33/satoken/SaTokenManager.java
...n-core/src/main/java/cn/dev33/satoken/SaTokenManager.java
+2
-2
sa-token-core/src/main/java/cn/dev33/satoken/action/SaTokenAction.java
.../src/main/java/cn/dev33/satoken/action/SaTokenAction.java
+10
-0
sa-token-core/src/main/java/cn/dev33/satoken/action/SaTokenActionDefaultImpl.java
...ava/cn/dev33/satoken/action/SaTokenActionDefaultImpl.java
+25
-7
sa-token-core/src/main/java/cn/dev33/satoken/config/SaTokenConfig.java
.../src/main/java/cn/dev33/satoken/config/SaTokenConfig.java
+0
-2
sa-token-core/src/main/java/cn/dev33/satoken/dao/SaTokenDaoDefaultImpl.java
...main/java/cn/dev33/satoken/dao/SaTokenDaoDefaultImpl.java
+2
-2
sa-token-core/src/main/java/cn/dev33/satoken/listener/SaTokenListenerDefaultImpl.java
...cn/dev33/satoken/listener/SaTokenListenerDefaultImpl.java
+2
-2
sa-token-core/src/main/java/cn/dev33/satoken/stp/StpLogic.java
...ken-core/src/main/java/cn/dev33/satoken/stp/StpLogic.java
+11
-9
sa-token-core/src/main/java/cn/dev33/satoken/util/SaFoxUtil.java
...n-core/src/main/java/cn/dev33/satoken/util/SaFoxUtil.java
+20
-2
sa-token-dao-redis-jackson/src/main/java/cn/dev33/satoken/dao/SaTokenDaoRedisJackson.java
...ain/java/cn/dev33/satoken/dao/SaTokenDaoRedisJackson.java
+2
-2
sa-token-dao-redis/src/main/java/cn/dev33/satoken/dao/SaTokenDaoRedis.java
...s/src/main/java/cn/dev33/satoken/dao/SaTokenDaoRedis.java
+2
-2
sa-token-demo-springboot/src/main/java/com/pj/SaTokenDemoApplication.java
...ringboot/src/main/java/com/pj/SaTokenDemoApplication.java
+1
-1
sa-token-demo-springboot/src/main/java/com/pj/test/TestController.java
...-springboot/src/main/java/com/pj/test/TestController.java
+0
-2
sa-token-oauth2/src/main/java/cn/dev33/satoken/oauth2/logic/SaOAuth2Interface.java
...java/cn/dev33/satoken/oauth2/logic/SaOAuth2Interface.java
+4
-4
sa-token-oauth2/src/main/java/cn/dev33/satoken/oauth2/model/RequestAuthModel.java
.../java/cn/dev33/satoken/oauth2/model/RequestAuthModel.java
+5
-5
sa-token-reactor-spring-boot-starter/src/main/java/cn/dev33/satoken/reactor/model/SaResponseForReactor.java
.../cn/dev33/satoken/reactor/model/SaResponseForReactor.java
+3
-3
sa-token-servlet/src/main/java/cn/dev33/satoken/servlet/model/SaResponseForServlet.java
.../cn/dev33/satoken/servlet/model/SaResponseForServlet.java
+3
-3
未找到文件。
sa-token-core/src/main/java/cn/dev33/satoken/SaTokenManager.java
浏览文件 @
e40a39e3
...
...
@@ -16,7 +16,7 @@ import cn.dev33.satoken.listener.SaTokenListenerDefaultImpl;
import
cn.dev33.satoken.stp.StpInterface
;
import
cn.dev33.satoken.stp.StpInterfaceDefaultImpl
;
import
cn.dev33.satoken.stp.StpLogic
;
import
cn.dev33.satoken.util.Sa
TokenInside
Util
;
import
cn.dev33.satoken.util.Sa
Fox
Util
;
/**
* 管理sa-token所有接口对象
...
...
@@ -32,7 +32,7 @@ public class SaTokenManager {
public
static
void
setConfig
(
SaTokenConfig
config
)
{
SaTokenManager
.
config
=
config
;
if
(
config
.
getIsV
())
{
Sa
TokenInside
Util
.
printSaToken
();
Sa
Fox
Util
.
printSaToken
();
}
}
public
static
SaTokenConfig
getConfig
()
{
...
...
sa-token-core/src/main/java/cn/dev33/satoken/action/SaTokenAction.java
浏览文件 @
e40a39e3
package
cn.dev33.satoken.action
;
import
java.util.List
;
import
cn.dev33.satoken.session.SaSession
;
/**
...
...
@@ -25,4 +27,12 @@ public interface SaTokenAction {
*/
public
SaSession
createSession
(
String
sessionId
);
/**
* 指定集合是否包含指定元素(模糊匹配)
* @param list 集合
* @param element 元素
* @return 是否包含
*/
public
boolean
hasElement
(
List
<
String
>
list
,
String
element
);
}
sa-token-core/src/main/java/cn/dev33/satoken/action/SaTokenActionDefaultImpl.java
浏览文件 @
e40a39e3
package
cn.dev33.satoken.action
;
import
java.util.List
;
import
java.util.UUID
;
import
cn.dev33.satoken.SaTokenManager
;
import
cn.dev33.satoken.session.SaSession
;
import
cn.dev33.satoken.util.SaTokenConsts
;
import
cn.dev33.satoken.util.Sa
TokenInside
Util
;
import
cn.dev33.satoken.util.Sa
Fox
Util
;
/**
* 对 SaTokenAction 接口的默认实现
...
...
@@ -14,7 +15,6 @@ import cn.dev33.satoken.util.SaTokenInsideUtil;
*/
public
class
SaTokenActionDefaultImpl
implements
SaTokenAction
{
/**
* 根据一定的算法生成一个token
*/
...
...
@@ -32,25 +32,24 @@ public class SaTokenActionDefaultImpl implements SaTokenAction {
}
// 32位随机字符串
if
(
SaTokenConsts
.
TOKEN_STYLE_RANDOM_32
.
equals
(
tokenStyle
))
{
return
Sa
TokenInside
Util
.
getRandomString
(
32
);
return
Sa
Fox
Util
.
getRandomString
(
32
);
}
// 64位随机字符串
if
(
SaTokenConsts
.
TOKEN_STYLE_RANDOM_64
.
equals
(
tokenStyle
))
{
return
Sa
TokenInside
Util
.
getRandomString
(
64
);
return
Sa
Fox
Util
.
getRandomString
(
64
);
}
// 128位随机字符串
if
(
SaTokenConsts
.
TOKEN_STYLE_RANDOM_128
.
equals
(
tokenStyle
))
{
return
Sa
TokenInside
Util
.
getRandomString
(
128
);
return
Sa
Fox
Util
.
getRandomString
(
128
);
}
// tik风格 (2_14_16)
if
(
SaTokenConsts
.
TOKEN_STYLE_TIK
.
equals
(
tokenStyle
))
{
return
Sa
TokenInsideUtil
.
getRandomString
(
2
)
+
"_"
+
SaTokenInsideUtil
.
getRandomString
(
14
)
+
"_"
+
SaTokenInside
Util
.
getRandomString
(
16
)
+
"__"
;
return
Sa
FoxUtil
.
getRandomString
(
2
)
+
"_"
+
SaFoxUtil
.
getRandomString
(
14
)
+
"_"
+
SaFox
Util
.
getRandomString
(
16
)
+
"__"
;
}
// 默认,还是uuid
return
UUID
.
randomUUID
().
toString
();
}
/**
* 根据 SessionId 创建一个 Session
*/
...
...
@@ -58,5 +57,24 @@ public class SaTokenActionDefaultImpl implements SaTokenAction {
public
SaSession
createSession
(
String
sessionId
)
{
return
new
SaSession
(
sessionId
);
}
/**
* 指定集合是否包含指定元素(模糊匹配)
*/
@Override
public
boolean
hasElement
(
List
<
String
>
list
,
String
element
)
{
// 集合为空直接返回false
if
(
list
==
null
||
list
.
size
()
==
0
)
{
return
false
;
}
// 遍历匹配
for
(
String
patt
:
list
)
{
if
(
SaFoxUtil
.
vagueMatch
(
patt
,
element
))
{
return
true
;
}
}
// 走出for循环说明没有一个元素可以匹配成功
return
false
;
}
}
sa-token-core/src/main/java/cn/dev33/satoken/config/SaTokenConfig.java
浏览文件 @
e40a39e3
...
...
@@ -333,8 +333,6 @@ public class SaTokenConfig {
+
tokenSessionCheckLogin
+
", autoRenew="
+
autoRenew
+
", cookieDomain="
+
cookieDomain
+
", tokenPrefix="
+
tokenPrefix
+
", isV="
+
isV
+
", isLog="
+
isLog
+
"]"
;
}
...
...
sa-token-core/src/main/java/cn/dev33/satoken/dao/SaTokenDaoDefaultImpl.java
浏览文件 @
e40a39e3
...
...
@@ -7,7 +7,7 @@ import java.util.Map;
import
java.util.concurrent.ConcurrentHashMap
;
import
cn.dev33.satoken.SaTokenManager
;
import
cn.dev33.satoken.util.Sa
TokenInside
Util
;
import
cn.dev33.satoken.util.Sa
Fox
Util
;
/**
* sa-token持久层默认的实现类 , 基于内存Map
...
...
@@ -235,7 +235,7 @@ public class SaTokenDaoDefaultImpl implements SaTokenDao {
@Override
public
List
<
String
>
searchData
(
String
prefix
,
String
keyword
,
int
start
,
int
size
)
{
return
Sa
TokenInside
Util
.
searchList
(
expireMap
.
keySet
(),
prefix
,
keyword
,
start
,
size
);
return
Sa
Fox
Util
.
searchList
(
expireMap
.
keySet
(),
prefix
,
keyword
,
start
,
size
);
}
...
...
sa-token-core/src/main/java/cn/dev33/satoken/listener/SaTokenListenerDefaultImpl.java
浏览文件 @
e40a39e3
...
...
@@ -4,7 +4,7 @@ import java.util.Date;
import
cn.dev33.satoken.SaTokenManager
;
import
cn.dev33.satoken.stp.SaLoginModel
;
import
cn.dev33.satoken.util.Sa
TokenInside
Util
;
import
cn.dev33.satoken.util.Sa
Fox
Util
;
/**
* Sa-Token 侦听器的默认实现:log打印
...
...
@@ -51,7 +51,7 @@ public class SaTokenListenerDefaultImpl implements SaTokenListener {
@Override
public
void
doDisable
(
String
loginKey
,
Object
loginId
,
long
disableTime
)
{
Date
date
=
new
Date
(
System
.
currentTimeMillis
()
+
disableTime
*
1000
);
println
(
"账号["
+
loginId
+
"]被封禁 (解封时间: "
+
Sa
TokenInside
Util
.
formatDate
(
date
)
+
")"
);
println
(
"账号["
+
loginId
+
"]被封禁 (解封时间: "
+
Sa
Fox
Util
.
formatDate
(
date
)
+
")"
);
}
/**
...
...
sa-token-core/src/main/java/cn/dev33/satoken/stp/StpLogic.java
浏览文件 @
e40a39e3
...
...
@@ -24,7 +24,7 @@ import cn.dev33.satoken.fun.SaFunction;
import
cn.dev33.satoken.session.SaSession
;
import
cn.dev33.satoken.session.TokenSign
;
import
cn.dev33.satoken.util.SaTokenConsts
;
import
cn.dev33.satoken.util.Sa
TokenInside
Util
;
import
cn.dev33.satoken.util.Sa
Fox
Util
;
/**
* sa-token 权限验证,逻辑实现类
...
...
@@ -98,7 +98,7 @@ public class StpLogic {
SaStorage
storage
=
SaTokenManager
.
getSaTokenContext
().
getStorage
();
// 判断是否配置了token前缀
String
tokenPrefix
=
config
.
getTokenPrefix
();
if
(
Sa
TokenInside
Util
.
isEmpty
(
tokenPrefix
))
{
if
(
Sa
Fox
Util
.
isEmpty
(
tokenPrefix
))
{
storage
.
set
(
splicingKeyJustCreatedSave
(),
tokenValue
);
}
else
{
// 如果配置了token前缀,则拼接上前缀一起写入
...
...
@@ -143,7 +143,7 @@ public class StpLogic {
// 5. 如果打开了前缀模式
String
tokenPrefix
=
getConfig
().
getTokenPrefix
();
if
(
Sa
TokenInsideUtil
.
isEmpty
(
tokenPrefix
)
==
false
&&
SaTokenInside
Util
.
isEmpty
(
tokenValue
)
==
false
)
{
if
(
Sa
FoxUtil
.
isEmpty
(
tokenPrefix
)
==
false
&&
SaFox
Util
.
isEmpty
(
tokenValue
)
==
false
)
{
// 如果token以指定的前缀开头, 则裁剪掉它, 否则视为未提供token
if
(
tokenValue
.
startsWith
(
tokenPrefix
+
SaTokenConsts
.
TOKEN_CONNECTOR_CHAT
))
{
tokenValue
=
tokenValue
.
substring
(
tokenPrefix
.
length
()
+
SaTokenConsts
.
TOKEN_CONNECTOR_CHAT
.
length
());
...
...
@@ -882,7 +882,8 @@ public class StpLogic {
*/
public
boolean
hasRole
(
Object
loginId
,
String
role
)
{
List
<
String
>
roleList
=
SaTokenManager
.
getStpInterface
().
getRoleList
(
loginId
,
loginKey
);
return
!(
roleList
==
null
||
roleList
.
contains
(
role
)
==
false
);
return
SaTokenManager
.
getSaTokenAction
().
hasElement
(
roleList
,
role
);
// return !(roleList == null || roleList.contains(role) == false);
}
/**
...
...
@@ -912,7 +913,7 @@ public class StpLogic {
Object
loginId
=
getLoginId
();
List
<
String
>
roleList
=
SaTokenManager
.
getStpInterface
().
getRoleList
(
loginId
,
loginKey
);
for
(
String
role
:
roleArray
)
{
if
(
roleList
.
contains
(
role
)
==
false
)
{
if
(
SaTokenManager
.
getSaTokenAction
().
hasElement
(
roleList
,
role
)
==
false
)
{
throw
new
NotRoleException
(
role
,
this
.
loginKey
);
}
}
...
...
@@ -926,7 +927,7 @@ public class StpLogic {
Object
loginId
=
getLoginId
();
List
<
String
>
roleList
=
SaTokenManager
.
getStpInterface
().
getRoleList
(
loginId
,
loginKey
);
for
(
String
role
:
roleArray
)
{
if
(
roleList
.
contains
(
role
)
==
true
)
{
if
(
SaTokenManager
.
getSaTokenAction
().
hasElement
(
roleList
,
role
)
==
true
)
{
// 有的话提前退出
return
;
}
...
...
@@ -947,7 +948,8 @@ public class StpLogic {
*/
public
boolean
hasPermission
(
Object
loginId
,
String
permission
)
{
List
<
String
>
permissionList
=
SaTokenManager
.
getStpInterface
().
getPermissionList
(
loginId
,
loginKey
);
return
!(
permissionList
==
null
||
permissionList
.
contains
(
permission
)
==
false
);
return
SaTokenManager
.
getSaTokenAction
().
hasElement
(
permissionList
,
permission
);
// return !(permissionList == null || permissionList.contains(permission) == false);
}
/**
...
...
@@ -977,7 +979,7 @@ public class StpLogic {
Object
loginId
=
getLoginId
();
List
<
String
>
permissionList
=
SaTokenManager
.
getStpInterface
().
getPermissionList
(
loginId
,
loginKey
);
for
(
String
permission
:
permissionArray
)
{
if
(
permissionList
.
contains
(
permission
)
==
false
)
{
if
(
SaTokenManager
.
getSaTokenAction
().
hasElement
(
permissionList
,
permission
)
==
false
)
{
throw
new
NotPermissionException
(
permission
,
this
.
loginKey
);
}
}
...
...
@@ -991,7 +993,7 @@ public class StpLogic {
Object
loginId
=
getLoginId
();
List
<
String
>
permissionList
=
SaTokenManager
.
getStpInterface
().
getPermissionList
(
loginId
,
loginKey
);
for
(
String
permission
:
permissionArray
)
{
if
(
permissionList
.
contains
(
permission
)
==
true
)
{
if
(
SaTokenManager
.
getSaTokenAction
().
hasElement
(
permissionList
,
permission
)
==
true
)
{
// 有的话提前退出
return
;
}
...
...
sa-token-core/src/main/java/cn/dev33/satoken/util/Sa
TokenInside
Util.java
→
sa-token-core/src/main/java/cn/dev33/satoken/util/Sa
Fox
Util.java
浏览文件 @
e40a39e3
...
...
@@ -7,14 +7,15 @@ import java.util.Date;
import
java.util.Iterator
;
import
java.util.List
;
import
java.util.Random
;
import
java.util.regex.Pattern
;
/**
*
sa-token 内部代码工具类
*
Sa-Token 内部工具类
*
* @author kong
*
*/
public
class
Sa
TokenInside
Util
{
public
class
Sa
Fox
Util
{
/**
* 打印 sa-token 版本字符画
...
...
@@ -129,4 +130,21 @@ public class SaTokenInsideUtil {
return
list2
;
}
/**
* 字符串模糊匹配
* <p>example:
* <p> user* user-add -> true
* <p> user* art-add -> false
* @param patt 表达式
* @param str 待匹配的字符串
* @return 是否可以匹配
*/
public
static
boolean
vagueMatch
(
String
patt
,
String
str
)
{
// 如果表达式不带有*号,则只需简单equals即可 (速度提升200倍)
if
(
patt
.
indexOf
(
"*"
)
==
-
1
)
{
return
patt
.
equals
(
str
);
}
return
Pattern
.
matches
(
patt
.
replaceAll
(
"\\*"
,
".*"
),
str
);
}
}
sa-token-dao-redis-jackson/src/main/java/cn/dev33/satoken/dao/SaTokenDaoRedisJackson.java
浏览文件 @
e40a39e3
...
...
@@ -17,7 +17,7 @@ import org.springframework.stereotype.Component;
import
com.fasterxml.jackson.databind.DeserializationFeature
;
import
com.fasterxml.jackson.databind.ObjectMapper
;
import
cn.dev33.satoken.util.Sa
TokenInside
Util
;
import
cn.dev33.satoken.util.Sa
Fox
Util
;
/**
* sa-token持久层的实现类, 基于redis (使用 jackson 序列化方式)
...
...
@@ -220,7 +220,7 @@ public class SaTokenDaoRedisJackson implements SaTokenDao {
public
List
<
String
>
searchData
(
String
prefix
,
String
keyword
,
int
start
,
int
size
)
{
Set
<
String
>
keys
=
stringRedisTemplate
.
keys
(
prefix
+
"*"
+
keyword
+
"*"
);
List
<
String
>
list
=
new
ArrayList
<
String
>(
keys
);
return
Sa
TokenInside
Util
.
searchList
(
list
,
start
,
size
);
return
Sa
Fox
Util
.
searchList
(
list
,
start
,
size
);
}
}
sa-token-dao-redis/src/main/java/cn/dev33/satoken/dao/SaTokenDaoRedis.java
浏览文件 @
e40a39e3
...
...
@@ -13,7 +13,7 @@ import org.springframework.data.redis.serializer.JdkSerializationRedisSerializer
import
org.springframework.data.redis.serializer.StringRedisSerializer
;
import
org.springframework.stereotype.Component
;
import
cn.dev33.satoken.util.Sa
TokenInside
Util
;
import
cn.dev33.satoken.util.Sa
Fox
Util
;
/**
* sa-token持久层的实现类, 基于redis
...
...
@@ -201,7 +201,7 @@ public class SaTokenDaoRedis implements SaTokenDao {
public
List
<
String
>
searchData
(
String
prefix
,
String
keyword
,
int
start
,
int
size
)
{
Set
<
String
>
keys
=
stringRedisTemplate
.
keys
(
prefix
+
"*"
+
keyword
+
"*"
);
List
<
String
>
list
=
new
ArrayList
<
String
>(
keys
);
return
Sa
TokenInside
Util
.
searchList
(
list
,
start
,
size
);
return
Sa
Fox
Util
.
searchList
(
list
,
start
,
size
);
}
...
...
sa-token-demo-springboot/src/main/java/com/pj/SaTokenDemoApplication.java
浏览文件 @
e40a39e3
...
...
@@ -17,5 +17,5 @@ public class SaTokenDemoApplication {
SpringApplication
.
run
(
SaTokenDemoApplication
.
class
,
args
);
System
.
out
.
println
(
"\n启动成功:sa-token配置如下:"
+
SaTokenManager
.
getConfig
());
}
}
\ No newline at end of file
sa-token-demo-springboot/src/main/java/com/pj/test/TestController.java
浏览文件 @
e40a39e3
...
...
@@ -241,8 +241,6 @@ public class TestController {
@RequestMapping
(
"test"
)
public
AjaxJson
test
()
{
System
.
out
.
println
(
"进来了"
);
StpUtil
.
disable
(
10001
,
10002
);
StpUtil
.
untieDisable
(
10001
);
return
AjaxJson
.
getSuccess
(
"访问成功"
);
}
...
...
sa-token-oauth2/src/main/java/cn/dev33/satoken/oauth2/logic/SaOAuth2Interface.java
浏览文件 @
e40a39e3
...
...
@@ -13,7 +13,7 @@ import cn.dev33.satoken.oauth2.model.CodeModel;
import
cn.dev33.satoken.oauth2.model.RequestAuthModel
;
import
cn.dev33.satoken.oauth2.util.SaOAuth2Consts
;
import
cn.dev33.satoken.oauth2.util.SaOAuth2InsideUtil
;
import
cn.dev33.satoken.util.Sa
TokenInside
Util
;
import
cn.dev33.satoken.util.Sa
Fox
Util
;
/**
* sa-token-oauth2 模块 逻辑接口
...
...
@@ -435,7 +435,7 @@ public interface SaOAuth2Interface {
* @return 授权码
*/
public
default
String
createCode
(
String
clientId
,
String
scope
,
Object
loginId
)
{
return
Sa
TokenInside
Util
.
getRandomString
(
60
).
toLowerCase
();
return
Sa
Fox
Util
.
getRandomString
(
60
).
toLowerCase
();
}
/**
...
...
@@ -444,7 +444,7 @@ public interface SaOAuth2Interface {
* @return AccessToken
*/
public
default
String
createAccessToken
(
CodeModel
codeModel
)
{
return
Sa
TokenInside
Util
.
getRandomString
(
60
).
toLowerCase
();
return
Sa
Fox
Util
.
getRandomString
(
60
).
toLowerCase
();
}
/**
...
...
@@ -453,7 +453,7 @@ public interface SaOAuth2Interface {
* @return RefreshToken
*/
public
default
String
createRefreshToken
(
CodeModel
codeModel
)
{
return
Sa
TokenInside
Util
.
getRandomString
(
60
).
toLowerCase
();
return
Sa
Fox
Util
.
getRandomString
(
60
).
toLowerCase
();
}
/**
...
...
sa-token-oauth2/src/main/java/cn/dev33/satoken/oauth2/model/RequestAuthModel.java
浏览文件 @
e40a39e3
package
cn.dev33.satoken.oauth2.model
;
import
cn.dev33.satoken.exception.SaTokenException
;
import
cn.dev33.satoken.util.Sa
TokenInside
Util
;
import
cn.dev33.satoken.util.Sa
Fox
Util
;
/**
* 请求授权参数的Model
...
...
@@ -142,16 +142,16 @@ public class RequestAuthModel {
* @return 对象自身
*/
public
RequestAuthModel
checkModel
()
{
if
(
Sa
TokenInside
Util
.
isEmpty
(
clientId
))
{
if
(
Sa
Fox
Util
.
isEmpty
(
clientId
))
{
throw
new
SaTokenException
(
"无效client_id"
);
}
if
(
Sa
TokenInside
Util
.
isEmpty
(
scope
))
{
if
(
Sa
Fox
Util
.
isEmpty
(
scope
))
{
throw
new
SaTokenException
(
"无效scope"
);
}
if
(
Sa
TokenInside
Util
.
isEmpty
(
redirectUri
))
{
if
(
Sa
Fox
Util
.
isEmpty
(
redirectUri
))
{
throw
new
SaTokenException
(
"无效redirect_uri"
);
}
if
(
Sa
TokenInside
Util
.
isEmpty
(
String
.
valueOf
(
loginId
)))
{
if
(
Sa
Fox
Util
.
isEmpty
(
String
.
valueOf
(
loginId
)))
{
throw
new
SaTokenException
(
"无效LoginId"
);
}
return
this
;
...
...
sa-token-reactor-spring-boot-starter/src/main/java/cn/dev33/satoken/reactor/model/SaResponseForReactor.java
浏览文件 @
e40a39e3
...
...
@@ -5,7 +5,7 @@ import org.springframework.http.ResponseCookie.ResponseCookieBuilder;
import
org.springframework.http.server.reactive.ServerHttpResponse
;
import
cn.dev33.satoken.context.model.SaResponse
;
import
cn.dev33.satoken.util.Sa
TokenInside
Util
;
import
cn.dev33.satoken.util.Sa
Fox
Util
;
/**
* Response for Reactor
...
...
@@ -57,13 +57,13 @@ public class SaResponseForReactor implements SaResponse {
;
// set path
if
(
Sa
TokenInside
Util
.
isEmpty
(
path
)
==
true
)
{
if
(
Sa
Fox
Util
.
isEmpty
(
path
)
==
true
)
{
path
=
"/"
;
}
builder
.
path
(
path
);
// set domain
if
(
Sa
TokenInside
Util
.
isEmpty
(
domain
)
==
false
)
{
if
(
Sa
Fox
Util
.
isEmpty
(
domain
)
==
false
)
{
builder
.
domain
(
domain
);
}
...
...
sa-token-servlet/src/main/java/cn/dev33/satoken/servlet/model/SaResponseForServlet.java
浏览文件 @
e40a39e3
...
...
@@ -4,7 +4,7 @@ import javax.servlet.http.Cookie;
import
javax.servlet.http.HttpServletResponse
;
import
cn.dev33.satoken.context.model.SaResponse
;
import
cn.dev33.satoken.util.Sa
TokenInside
Util
;
import
cn.dev33.satoken.util.Sa
Fox
Util
;
/**
* Response for Servlet
...
...
@@ -48,10 +48,10 @@ public class SaResponseForServlet implements SaResponse {
@Override
public
void
addCookie
(
String
name
,
String
value
,
String
path
,
String
domain
,
int
timeout
)
{
Cookie
cookie
=
new
Cookie
(
name
,
value
);
if
(
Sa
TokenInside
Util
.
isEmpty
(
path
)
==
true
)
{
if
(
Sa
Fox
Util
.
isEmpty
(
path
)
==
true
)
{
path
=
"/"
;
}
if
(
Sa
TokenInside
Util
.
isEmpty
(
domain
)
==
false
)
{
if
(
Sa
Fox
Util
.
isEmpty
(
domain
)
==
false
)
{
cookie
.
setDomain
(
domain
);
}
cookie
.
setPath
(
path
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录