Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
Y
yd-cloud-core
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
xingmin
yd-cloud-core
Commits
bf6ae7d5
Commit
bf6ae7d5
authored
Oct 24, 2025
by
zhangxingmin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
push
parent
c4d4a672
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
89 additions
and
2 deletions
+89
-2
yd-auth-core/src/main/java/com/yd/auth/core/config/SecurityConfig.java
+1
-0
yd-auth-core/src/main/java/com/yd/auth/core/dto/AuthUserDto.java
+38
-0
yd-auth-core/src/main/java/com/yd/auth/core/security/JwtTokenProvider.java
+50
-2
No files found.
yd-auth-core/src/main/java/com/yd/auth/core/config/SecurityConfig.java
View file @
bf6ae7d5
...
...
@@ -68,6 +68,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter {
"/swagger-ui/**"
,
"/v3/api-docs/**"
,
"/sysUser/body/detail"
,
"/clientUser/body/detail"
,
"/scrm/test"
,
"/doc.html"
,
"/webjars/**"
,
...
...
yd-auth-core/src/main/java/com/yd/auth/core/dto/AuthUserDto.java
View file @
bf6ae7d5
...
...
@@ -16,6 +16,7 @@ import java.util.List;
@Data
public
class
AuthUserDto
implements
UserDetails
{
//==========管理端用户表sys_user信息-开始============
/**
* 系统用户主键id(数据库唯一标识)
*/
...
...
@@ -41,6 +42,43 @@ public class AuthUserDto implements UserDetails {
*/
private
Integer
isSuperAdmin
;
//==========管理端用户表sys_user信息-结束============
//==========客户端端用户表client_user信息-开始============
/**
* 客户端用户表唯一业务ID
*/
private
String
clientUserBizId
;
/**
* 姓名
*/
private
String
name
;
/**
* 手机号
*/
private
String
phone
;
/**
* 邀请码
*/
private
String
invitationCode
;
/**
* 状态(0:停用 1:启用)
*/
private
Integer
status
;
/**
* 审批状态
*/
private
String
approvalStatus
;
//==========客户端端用户表client_user信息-结束============
// ============== Spring Security账户状态属性 ==============
/**
* 账户是否启用(默认true启用)
...
...
yd-auth-core/src/main/java/com/yd/auth/core/security/JwtTokenProvider.java
View file @
bf6ae7d5
...
...
@@ -5,6 +5,7 @@ import io.jsonwebtoken.*;
import
io.jsonwebtoken.io.Decoders
;
import
io.jsonwebtoken.security.Keys
;
import
io.jsonwebtoken.security.SecurityException
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.security.authentication.UsernamePasswordAuthenticationToken
;
import
org.springframework.security.core.Authentication
;
...
...
@@ -34,6 +35,8 @@ public class JwtTokenProvider {
/**
* 生成JWT令牌
* @param authentication 认证信息
* @return
*/
public
String
generateToken
(
Authentication
authentication
)
{
if
(
authentication
==
null
||
authentication
.
getPrincipal
()
==
null
)
{
...
...
@@ -56,7 +59,32 @@ public class JwtTokenProvider {
}
/**
* 生成JWT令牌
* @param bizId 业务唯一ID
* @return
*/
public
String
generateToken
(
String
bizId
)
{
if
(
StringUtils
.
isBlank
(
bizId
))
{
throw
new
JwtAuthenticationException
(
"JWT的主题不能为空"
);
}
try
{
return
Jwts
.
builder
()
.
setSubject
(
bizId
)
// .claim("roles", getRoles(authUserDto.getAuthorities()))
.
setIssuedAt
(
new
Date
())
.
setExpiration
(
new
Date
(
System
.
currentTimeMillis
()
+
jwtExpiration
))
.
signWith
(
getSigningKey
(),
SignatureAlgorithm
.
HS512
)
.
compact
();
}
catch
(
Exception
e
)
{
throw
new
JwtAuthenticationException
(
"生成JWT令牌失败: "
+
e
.
getMessage
());
}
}
/**
* 提取角色信息
* @param authorities
* @return
*/
private
Collection
<
String
>
getRoles
(
Collection
<?
extends
GrantedAuthority
>
authorities
)
{
return
authorities
.
stream
()
...
...
@@ -66,6 +94,8 @@ public class JwtTokenProvider {
/**
* 从令牌中获取用户名
* @param token
* @return
*/
public
String
getUsernameFromToken
(
String
token
)
{
try
{
...
...
@@ -82,6 +112,8 @@ public class JwtTokenProvider {
/**
* 从令牌中获取用户业务id
* @param token
* @return
*/
public
String
getUserBizIdFromToken
(
String
token
)
{
try
{
...
...
@@ -98,6 +130,8 @@ public class JwtTokenProvider {
/**
* 从令牌中获取认证信息
* @param token
* @return
*/
public
Authentication
getAuthentication
(
String
token
)
{
try
{
...
...
@@ -117,6 +151,8 @@ public class JwtTokenProvider {
/**
* 从令牌中获取权限信息
* @param token
* @return
*/
private
Collection
<?
extends
GrantedAuthority
>
getAuthoritiesFromToken
(
String
token
)
{
try
{
...
...
@@ -139,6 +175,8 @@ public class JwtTokenProvider {
/**
* 验证令牌有效性
* @param token
* @return
*/
public
boolean
validateToken
(
String
token
)
{
try
{
...
...
@@ -159,6 +197,7 @@ public class JwtTokenProvider {
/**
* 获取签名密钥
* @return
*/
private
SecretKey
getSigningKey
()
{
try
{
...
...
@@ -175,6 +214,7 @@ public class JwtTokenProvider {
/**
* 生成符合HS512要求的密钥(用于生成配置文件中的密钥)
* @return
*/
public
static
String
generateSecureKey
()
{
try
{
...
...
@@ -202,7 +242,11 @@ public class JwtTokenProvider {
}
}
// 解析 JWT 声明
/**
* 解析 JWT 声明
* @param token
* @return
*/
public
Claims
parseClaims
(
String
token
)
{
return
Jwts
.
parserBuilder
()
.
setSigningKey
(
getSigningKey
())
...
...
@@ -211,7 +255,11 @@ public class JwtTokenProvider {
.
getBody
();
}
// 获取 JWT 头部信息
/**
* 获取 JWT 头部信息
* @param token
* @return
*/
public
Map
<
String
,
Object
>
getHeaders
(
String
token
)
{
return
Jwts
.
parserBuilder
()
.
setSigningKey
(
getSigningKey
())
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment