Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
kason_7
modol
提交
e4ecada4
M
modol
项目概览
kason_7
/
modol
通知
4
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
M
modol
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
e4ecada4
编写于
9月 15, 2021
作者:
kason_7
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
更新JwtUtils.java
上级
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
75 addition
and
0 deletion
+75
-0
JwtUtils.java
JwtUtils.java
+75
-0
未找到文件。
JwtUtils.java
0 → 100644
浏览文件 @
e4ecada4
package
com.changgou.system.util
;
import
io.jsonwebtoken.Claims
;
import
io.jsonwebtoken.JwtBuilder
;
import
io.jsonwebtoken.Jwts
;
import
io.jsonwebtoken.SignatureAlgorithm
;
import
javax.crypto.SecretKey
;
import
javax.crypto.spec.SecretKeySpec
;
import
java.util.Base64
;
import
java.util.Date
;
/**
* JWT工具类
*/
public
class
JwtUtil
{
//有效期为
public
static
final
Long
JWT_TTL
=
3600000L
;
// 60 * 60 *1000 一个小时
//设置秘钥明文
public
static
final
String
JWT_KEY
=
"itcast"
;
/**
* 创建token
* @param id
* @param subject
* @param ttlMillis
* @return
*/
public
static
String
createJWT
(
String
id
,
String
subject
,
Long
ttlMillis
)
{
SignatureAlgorithm
signatureAlgorithm
=
SignatureAlgorithm
.
HS256
;
long
nowMillis
=
System
.
currentTimeMillis
();
Date
now
=
new
Date
(
nowMillis
);
if
(
ttlMillis
==
null
){
ttlMillis
=
JwtUtil
.
JWT_TTL
;
}
long
expMillis
=
nowMillis
+
ttlMillis
;
Date
expDate
=
new
Date
(
expMillis
);
SecretKey
secretKey
=
generalKey
();
JwtBuilder
builder
=
Jwts
.
builder
()
.
setId
(
id
)
//唯一的ID
.
setSubject
(
subject
)
// 主题 可以是JSON数据
.
setIssuer
(
"admin"
)
// 签发者
.
setIssuedAt
(
now
)
// 签发时间
.
signWith
(
signatureAlgorithm
,
secretKey
)
//使用HS256对称加密算法签名, 第二个参数为秘钥
.
setExpiration
(
expDate
);
// 设置过期时间
return
builder
.
compact
();
}
/**
* 生成加密后的秘钥 secretKey
* @return
*/
public
static
SecretKey
generalKey
()
{
byte
[]
encodedKey
=
Base64
.
getDecoder
().
decode
(
JwtUtil
.
JWT_KEY
);
SecretKey
key
=
new
SecretKeySpec
(
encodedKey
,
0
,
encodedKey
.
length
,
"AES"
);
return
key
;
}
/**
* 解析
*
* @param jwt
* @return
* @throws Exception
*/
public
static
Claims
parseJWT
(
String
jwt
)
throws
Exception
{
SecretKey
secretKey
=
generalKey
();
return
Jwts
.
parser
()
.
setSigningKey
(
secretKey
)
.
parseClaimsJws
(
jwt
)
.
getBody
();
}
}
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录