Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
shengzhang_
sa-token
提交
73bdb6c8
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,体验更适合开发者的 AI 搜索 >>
未验证
提交
73bdb6c8
编写于
5月 24, 2021
作者:
C
click33
提交者:
GitHub
5月 24, 2021
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #87 from Snailclimb/dev
[refractor]update some bad smell code in SaTokenConfig
上级
737aeb5f
afa09ac5
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
21 addition
and
22 deletion
+21
-22
sa-token-core/src/main/java/cn/dev33/satoken/config/SaTokenConfig.java
.../src/main/java/cn/dev33/satoken/config/SaTokenConfig.java
+3
-3
sa-token-core/src/main/java/cn/dev33/satoken/stp/StpLogic.java
...ken-core/src/main/java/cn/dev33/satoken/stp/StpLogic.java
+18
-17
sa-token-demo/sa-token-demo-jwt/src/main/resources/application.yml
...demo/sa-token-demo-jwt/src/main/resources/application.yml
+0
-2
未找到文件。
sa-token-core/src/main/java/cn/dev33/satoken/config/SaTokenConfig.java
浏览文件 @
73bdb6c8
...
...
@@ -115,7 +115,7 @@ public class SaTokenConfig {
/**
* @return 是否允许同一账号并发登录 (为true时允许一起登录, 为false时新登录挤掉旧登录)
*/
public
Boolean
get
AllowConcurrentLogin
()
{
public
Boolean
is
AllowConcurrentLogin
()
{
return
allowConcurrentLogin
;
}
...
...
@@ -131,7 +131,7 @@ public class SaTokenConfig {
/**
* @return 在多人登录同一账号时,是否共用一个token (为true时所有登录共用一个token, 为false时每次登录新建一个token)
*/
public
Boolean
getIsShare
()
{
public
Boolean
isShareToken
()
{
return
isShare
;
}
...
...
@@ -179,7 +179,7 @@ public class SaTokenConfig {
/**
* @return 是否尝试从cookie里读取token
*/
public
Boolean
getI
sReadCookie
()
{
public
Boolean
i
sReadCookie
()
{
return
isReadCookie
;
}
...
...
sa-token-core/src/main/java/cn/dev33/satoken/stp/StpLogic.java
浏览文件 @
73bdb6c8
...
...
@@ -2,6 +2,7 @@ package cn.dev33.satoken.stp;
import
java.util.ArrayList
;
import
java.util.Arrays
;
import
java.util.Collections
;
import
java.util.List
;
import
java.util.Objects
;
...
...
@@ -37,7 +38,7 @@ public class StpLogic {
/**
* 持久化的key前缀,多账号认证体系时以此值区分,比如:login、user、admin
*/
public
String
loginKey
=
""
;
public
String
loginKey
;
/**
* 初始化StpLogic, 并指定LoginKey
...
...
@@ -106,7 +107,7 @@ public class StpLogic {
}
// 注入Cookie
if
(
config
.
getIsReadCookie
()
==
true
){
if
(
config
.
isReadCookie
()
){
SaResponse
response
=
SaHolder
.
getResponse
();
response
.
addCookie
(
getTokenName
(),
tokenValue
,
"/"
,
config
.
getCookieDomain
(),
cookieTimeout
);
}
...
...
@@ -137,13 +138,13 @@ public class StpLogic {
tokenValue
=
request
.
getHeader
(
keyTokenName
);
}
// 4. 尝试从cookie里读取
if
(
tokenValue
==
null
&&
config
.
getI
sReadCookie
()){
if
(
tokenValue
==
null
&&
config
.
i
sReadCookie
()){
tokenValue
=
request
.
getCookieValue
(
keyTokenName
);
}
// 5. 如果打开了前缀模式
String
tokenPrefix
=
getConfig
().
getTokenPrefix
();
if
(
SaFoxUtil
.
isEmpty
(
tokenPrefix
)
==
false
&&
SaFoxUtil
.
isEmpty
(
tokenValue
)
==
false
)
{
if
(
!
SaFoxUtil
.
isEmpty
(
tokenPrefix
)
&&
!
SaFoxUtil
.
isEmpty
(
tokenValue
)
)
{
// 如果token以指定的前缀开头, 则裁剪掉它, 否则视为未提供token
if
(
tokenValue
.
startsWith
(
tokenPrefix
+
SaTokenConsts
.
TOKEN_CONNECTOR_CHAT
))
{
tokenValue
=
tokenValue
.
substring
(
tokenPrefix
.
length
()
+
SaTokenConsts
.
TOKEN_CONNECTOR_CHAT
.
length
());
...
...
@@ -226,9 +227,9 @@ public class StpLogic {
// ------ 2、生成一个token
String
tokenValue
=
null
;
// --- 如果允许并发登录
if
(
config
.
getAllowConcurrentLogin
()
==
true
)
{
if
(
config
.
isAllowConcurrentLogin
()
)
{
// 如果配置为共享token, 则尝试从Session签名记录里取出token
if
(
config
.
getIsShare
()
==
true
)
{
if
(
config
.
isShareToken
()
)
{
tokenValue
=
getTokenValueByLoginId
(
loginId
,
loginModel
.
getDevice
());
}
}
else
{
...
...
@@ -290,7 +291,7 @@ public class StpLogic {
return
;
}
// 如果打开了cookie模式,第一步,先把cookie清除掉
if
(
getConfig
().
getIsReadCookie
()
==
true
){
if
(
getConfig
().
isReadCookie
()
){
SaHolder
.
getResponse
().
deleteCookie
(
getTokenName
());
}
logoutByTokenValue
(
tokenValue
);
...
...
@@ -539,7 +540,7 @@ public class StpLogic {
* @return 账号id
*/
public
int
getLoginIdAsInt
()
{
return
Integer
.
valueOf
(
String
.
valueOf
(
getLoginId
()));
return
Integer
.
parseInt
(
String
.
valueOf
(
getLoginId
()));
}
/**
...
...
@@ -547,7 +548,7 @@ public class StpLogic {
* @return 账号id
*/
public
long
getLoginIdAsLong
()
{
return
Long
.
valueOf
(
String
.
valueOf
(
getLoginId
()));
return
Long
.
parseLong
(
String
.
valueOf
(
getLoginId
()));
}
/**
...
...
@@ -865,7 +866,7 @@ public class StpLogic {
return
SaTokenDao
.
NOT_VALUE_EXPIRE
;
}
// 计算相差时间
long
lastActivityTime
=
Long
.
valueOf
(
lastActivityTimeString
);
long
lastActivityTime
=
Long
.
parseLong
(
lastActivityTimeString
);
long
apartSecond
=
(
System
.
currentTimeMillis
()
-
lastActivityTime
)
/
1000
;
long
timeout
=
getConfig
().
getActivityTimeout
()
-
apartSecond
;
// 如果 < 0, 代表已经过期 ,返回-2
...
...
@@ -904,7 +905,7 @@ public class StpLogic {
* @param role 角色标识
*/
public
void
checkRole
(
String
role
)
{
if
(
hasRole
(
role
)
==
false
)
{
if
(
!
hasRole
(
role
)
)
{
throw
new
NotRoleException
(
role
,
this
.
loginKey
);
}
}
...
...
@@ -917,7 +918,7 @@ public class StpLogic {
Object
loginId
=
getLoginId
();
List
<
String
>
roleList
=
SaManager
.
getStpInterface
().
getRoleList
(
loginId
,
loginKey
);
for
(
String
role
:
roleArray
)
{
if
(
SaManager
.
getSaTokenAction
().
hasElement
(
roleList
,
role
)
==
false
)
{
if
(
!
SaManager
.
getSaTokenAction
().
hasElement
(
roleList
,
role
)
)
{
throw
new
NotRoleException
(
role
,
this
.
loginKey
);
}
}
...
...
@@ -931,7 +932,7 @@ public class StpLogic {
Object
loginId
=
getLoginId
();
List
<
String
>
roleList
=
SaManager
.
getStpInterface
().
getRoleList
(
loginId
,
loginKey
);
for
(
String
role
:
roleArray
)
{
if
(
SaManager
.
getSaTokenAction
().
hasElement
(
roleList
,
role
)
==
true
)
{
if
(
SaManager
.
getSaTokenAction
().
hasElement
(
roleList
,
role
))
{
// 有的话提前退出
return
;
}
...
...
@@ -983,7 +984,7 @@ public class StpLogic {
Object
loginId
=
getLoginId
();
List
<
String
>
permissionList
=
SaManager
.
getStpInterface
().
getPermissionList
(
loginId
,
loginKey
);
for
(
String
permission
:
permissionArray
)
{
if
(
SaManager
.
getSaTokenAction
().
hasElement
(
permissionList
,
permission
)
==
false
)
{
if
(
!
SaManager
.
getSaTokenAction
().
hasElement
(
permissionList
,
permission
)
)
{
throw
new
NotPermissionException
(
permission
,
this
.
loginKey
);
}
}
...
...
@@ -997,7 +998,7 @@ public class StpLogic {
Object
loginId
=
getLoginId
();
List
<
String
>
permissionList
=
SaManager
.
getStpInterface
().
getPermissionList
(
loginId
,
loginKey
);
for
(
String
permission
:
permissionArray
)
{
if
(
SaManager
.
getSaTokenAction
().
hasElement
(
permissionList
,
permission
)
==
true
)
{
if
(
SaManager
.
getSaTokenAction
().
hasElement
(
permissionList
,
permission
))
{
// 有的话提前退出
return
;
}
...
...
@@ -1053,7 +1054,7 @@ public class StpLogic {
// 如果session为null的话直接返回空集合
SaSession
session
=
getSessionByLoginId
(
loginId
,
false
);
if
(
session
==
null
)
{
return
Arrays
.
as
List
();
return
Collections
.
empty
List
();
}
// 遍历解析
List
<
TokenSign
>
tokenSignList
=
session
.
getTokenSignList
();
...
...
@@ -1077,7 +1078,7 @@ public class StpLogic {
return
null
;
}
// 如果还未登录,直接返回 null
if
(
isLogin
()
==
false
)
{
if
(
!
isLogin
()
)
{
return
null
;
}
// 如果session为null的话直接返回 null
...
...
sa-token-demo/sa-token-demo-jwt/src/main/resources/application.yml
浏览文件 @
73bdb6c8
...
...
@@ -17,8 +17,6 @@ spring:
is-share
:
true
# token风格
token-style
:
uuid
# redis配置
redis
:
# Redis数据库索引(默认为0)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录