Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
shengzhang_
sa-token
提交
a59ee940
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 搜索 >>
提交
a59ee940
编写于
12月 27, 2020
作者:
shengzhang_
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
添加token专有session
上级
20f6bd7b
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
114 addition
and
4 deletion
+114
-4
sa-token-core/src/main/java/cn/dev33/satoken/stp/SaTokenInfo.java
...-core/src/main/java/cn/dev33/satoken/stp/SaTokenInfo.java
+26
-1
sa-token-core/src/main/java/cn/dev33/satoken/stp/StpLogic.java
...ken-core/src/main/java/cn/dev33/satoken/stp/StpLogic.java
+50
-1
sa-token-core/src/main/java/cn/dev33/satoken/stp/StpUtil.java
...oken-core/src/main/java/cn/dev33/satoken/stp/StpUtil.java
+20
-0
sa-token-demo-springboot/pom.xml
sa-token-demo-springboot/pom.xml
+2
-2
sa-token-demo-springboot/src/main/java/com/pj/test/TestController.java
...-springboot/src/main/java/com/pj/test/TestController.java
+16
-0
未找到文件。
sa-token-core/src/main/java/cn/dev33/satoken/stp/SaTokenInfo.java
浏览文件 @
a59ee940
...
...
@@ -28,6 +28,13 @@ public class SaTokenInfo {
/** session剩余有效时间 (单位: 秒) */
public
long
sessionTimeout
;
/** token专属session剩余有效时间 (单位: 秒) */
public
long
tokenSessionTimeout
;
/**
* token剩余无操作有效时间
*/
...
...
@@ -146,6 +153,21 @@ public class SaTokenInfo {
return
this
;
}
/**
* @return tokenSessionTimeout
*/
public
long
getTokenSessionTimeout
()
{
return
tokenSessionTimeout
;
}
/**
* @param tokenSessionTimeout 要设置的 tokenSessionTimeout
*/
public
SaTokenInfo
setTokenSessionTimeout
(
long
tokenSessionTimeout
)
{
this
.
tokenSessionTimeout
=
tokenSessionTimeout
;
return
this
;
}
/**
* @return tokenActivityTimeout
*/
...
...
@@ -169,8 +191,11 @@ public class SaTokenInfo {
public
String
toString
()
{
return
"SaTokenInfo [tokenName="
+
tokenName
+
", tokenValue="
+
tokenValue
+
", isLogin="
+
isLogin
+
", loginId="
+
loginId
+
", loginKey="
+
loginKey
+
", tokenTimeout="
+
tokenTimeout
+
", sessionTimeout="
+
sessionTimeout
+
", tokenActivityTimeout="
+
tokenActivityTimeout
+
"]"
;
+
", sessionTimeout="
+
sessionTimeout
+
", tokenSessionTimeout="
+
tokenSessionTimeout
+
", tokenActivityTimeout="
+
tokenActivityTimeout
+
"]"
;
}
...
...
sa-token-core/src/main/java/cn/dev33/satoken/stp/StpLogic.java
浏览文件 @
a59ee940
...
...
@@ -119,6 +119,7 @@ public class StpLogic {
info
.
loginKey
=
getLoginKey
();
info
.
tokenTimeout
=
getTokenTimeout
();
info
.
sessionTimeout
=
getSessionTimeout
();
info
.
tokenSessionTimeout
=
getTokenSessionTimeout
();
info
.
tokenActivityTimeout
=
getTokenActivityTimeout
();
return
info
;
}
...
...
@@ -382,7 +383,7 @@ public class StpLogic {
* @param isCreate 是否新建
* @return session对象
*/
p
rotected
SaSession
getSessionBySessionId
(
String
sessionId
,
boolean
isCreate
)
{
p
ublic
SaSession
getSessionBySessionId
(
String
sessionId
,
boolean
isCreate
)
{
SaSession
session
=
SaTokenManager
.
getSaTokenDao
().
getSession
(
sessionId
);
if
(
session
==
null
&&
isCreate
)
{
session
=
new
SaSession
(
sessionId
);
...
...
@@ -427,6 +428,27 @@ public class StpLogic {
return
getSession
(
true
);
}
// ---------- token专属session
/**
* 获取指定token的专属session,如果session尚未创建,则新建并返回
* @param tokenValue token值
* @return session会话
*/
public
SaSession
getTokenSessionByToken
(
String
tokenValue
)
{
return
getSessionBySessionId
(
getKeyTokenSession
(
tokenValue
),
true
);
}
/**
* 获取当前token的专属-session,如果session尚未创建,则新建并返回
* <p> 只有当前会话属于登录状态才可调用
* @return session会话
*/
public
SaSession
getTokenSession
()
{
checkLogin
();
return
getTokenSessionByToken
(
getTokenValue
());
}
// =================== [临时过期] 验证相关 ===================
...
...
@@ -555,6 +577,24 @@ public class StpLogic {
return
SaTokenManager
.
getSaTokenDao
().
getSessionTimeout
(
getKeySession
(
loginId
));
}
/**
* 获取当前token的专属Session剩余有效时间 (单位: 秒)
* @return token剩余有效时间
*/
public
long
getTokenSessionTimeout
()
{
return
getTokenSessionTimeoutByTokenValue
(
getTokenValue
());
}
/**
* 获取指定token的专属Session剩余有效时间 (单位: 秒)
* @param tokenValue 指定token
* @return token剩余有效时间
*/
public
long
getTokenSessionTimeoutByTokenValue
(
String
tokenValue
)
{
return
SaTokenManager
.
getSaTokenDao
().
getSessionTimeout
(
getKeyTokenSession
(
tokenValue
));
}
/**
* 获取当前token[临时过期]剩余有效时间 (单位: 秒)
* @return token[临时过期]剩余有效时间
...
...
@@ -596,6 +636,7 @@ public class StpLogic {
return
timeout
;
}
// =================== 权限验证操作 ===================
...
...
@@ -694,6 +735,14 @@ public class StpLogic {
public
String
getKeySession
(
Object
loginId
)
{
return
SaTokenManager
.
getConfig
().
getTokenName
()
+
":"
+
loginKey
+
":session:"
+
loginId
;
}
/**
* 获取key: tokenValue的专属session
* @param tokenValue token值
* @return key
*/
public
String
getKeyTokenSession
(
String
tokenValue
)
{
return
SaTokenManager
.
getConfig
().
getTokenName
()
+
":"
+
loginKey
+
":token-session:"
+
tokenValue
;
}
/**
* 获取key: 指定token的最后操作时间 持久化
* @param tokenValue token值
...
...
sa-token-core/src/main/java/cn/dev33/satoken/stp/StpUtil.java
浏览文件 @
a59ee940
...
...
@@ -207,6 +207,26 @@ public class StpUtil {
return
stpLogic
.
getSession
();
}
// ---------- token专属session
/**
* 获取指定token的专属session,如果session尚未创建,则新建并返回
* @param tokenValue token值
* @return session会话
*/
public
static
SaSession
getTokenSessionByToken
(
String
tokenValue
)
{
return
stpLogic
.
getTokenSessionByToken
(
tokenValue
);
}
/**
* 获取当前token的专属-session,如果session尚未创建,则新建并返回
* <p> 只有当前会话属于登录状态才可调用
* @return session会话
*/
public
static
SaSession
getTokenSession
()
{
return
stpLogic
.
getTokenSession
();
}
// =================== [临时过期] 验证相关 ===================
...
...
sa-token-demo-springboot/pom.xml
浏览文件 @
a59ee940
...
...
@@ -33,11 +33,11 @@
</dependency>
<!-- sa-token 整合 redis -->
<
!-- <
dependency>
<dependency>
<groupId>
cn.dev33
</groupId>
<artifactId>
sa-token-dao-redis
</artifactId>
<version>
1.7.0
</version>
</dependency>
-->
</dependency>
<!-- @ConfigurationProperties -->
<dependency>
...
...
sa-token-demo-springboot/src/main/java/com/pj/test/TestController.java
浏览文件 @
a59ee940
...
...
@@ -95,6 +95,22 @@ public class TestController {
return
AjaxJson
.
getSuccess
();
}
// ----------
// 测试token专属session, 浏览器访问: http://localhost:8081/test/getTokenSession
@RequestMapping
(
"getTokenSession"
)
public
AjaxJson
getTokenSession
()
{
System
.
out
.
println
(
"======================= 进入方法,测试会话session接口 ========================= "
);
System
.
out
.
println
(
"当前是否登录:"
+
StpUtil
.
isLogin
());
System
.
out
.
println
(
"当前token专属session: "
+
StpUtil
.
getTokenSession
().
getId
());
System
.
out
.
println
(
"测试取值name:"
+
StpUtil
.
getTokenSession
().
getAttribute
(
"name"
));
StpUtil
.
getTokenSession
().
setAttribute
(
"name"
,
"张三"
);
// 写入一个值
System
.
out
.
println
(
"测试取值name:"
+
StpUtil
.
getTokenSession
().
getAttribute
(
"name"
));
return
AjaxJson
.
getSuccess
();
}
// 打印当前token信息, 浏览器访问: http://localhost:8081/test/tokenInfo
@RequestMapping
(
"tokenInfo"
)
public
AjaxJson
tokenInfo
()
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录