Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
Y
yanxuan-wx-store-sharer
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
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wx
yanxuan-wx-store-sharer
Commits
66970561
Commit
66970561
authored
Mar 14, 2025
by
fanjiaxin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
联调问题处理
parent
cdee69b2
Pipeline
#71579
passed with stages
in 1 minute 11 seconds
Changes
8
Pipelines
1
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
80 additions
and
49 deletions
+80
-49
WebConfig.java
...netease/yanxuan/wx/store/sharer/biz/config/WebConfig.java
+21
-0
LoginUserContextHolder.java
...xuan/wx/store/sharer/biz/core/LoginUserContextHolder.java
+3
-5
LoginUserHelper.java
...ase/yanxuan/wx/store/sharer/biz/core/LoginUserHelper.java
+0
-1
AuthInterceptor.java
...xuan/wx/store/sharer/biz/interceptor/AuthInterceptor.java
+2
-19
UserInterceptor.java
...xuan/wx/store/sharer/biz/interceptor/UserInterceptor.java
+46
-0
UserServiceImpl.java
...uan/wx/store/sharer/biz/service/impl/UserServiceImpl.java
+7
-2
LoginRequired.java
...xuan/wx/store/sharer/common/annotation/LoginRequired.java
+0
-17
UserController.java
...anxuan/wx/store/sharer/web/controller/UserController.java
+1
-5
No files found.
yanxuan-wx-store-sharer-biz/src/main/java/com/netease/yanxuan/wx/store/sharer/biz/config/WebConfig.java
View file @
66970561
package
com
.
netease
.
yanxuan
.
wx
.
store
.
sharer
.
biz
.
config
;
package
com
.
netease
.
yanxuan
.
wx
.
store
.
sharer
.
biz
.
config
;
import
com.netease.yanxuan.wx.store.sharer.biz.interceptor.AuthInterceptor
;
import
com.netease.yanxuan.wx.store.sharer.biz.interceptor.AuthInterceptor
;
import
com.netease.yanxuan.wx.store.sharer.biz.interceptor.UserInterceptor
;
import
lombok.RequiredArgsConstructor
;
import
lombok.RequiredArgsConstructor
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.web.servlet.config.annotation.InterceptorRegistry
;
import
org.springframework.web.servlet.config.annotation.InterceptorRegistry
;
import
org.springframework.web.servlet.config.annotation.WebMvcConfigurer
;
import
org.springframework.web.servlet.config.annotation.WebMvcConfigurer
;
import
java.util.ArrayList
;
import
java.util.Collections
;
/**
/**
* @Description 配置
* @Description 配置
* @Author fanjiaxin
* @Author fanjiaxin
...
@@ -15,10 +19,27 @@ import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
...
@@ -15,10 +19,27 @@ import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@RequiredArgsConstructor
@RequiredArgsConstructor
public
class
WebConfig
implements
WebMvcConfigurer
{
public
class
WebConfig
implements
WebMvcConfigurer
{
private
final
AuthInterceptor
authInterceptor
;
private
final
AuthInterceptor
authInterceptor
;
private
final
UserInterceptor
userInterceptor
;
private
static
final
String
[]
EXCLUDE_URLS
=
{
"/i/health"
,
"/sharer/open/**"
,
"/sharer/test/**"
,
"/sharer/user/login"
,
"/sharer/product/page/list"
};
@Override
@Override
public
void
addInterceptors
(
InterceptorRegistry
registry
)
{
public
void
addInterceptors
(
InterceptorRegistry
registry
)
{
registry
.
addInterceptor
(
authInterceptor
)
registry
.
addInterceptor
(
authInterceptor
)
.
addPathPatterns
(
"/**"
)
.
excludePathPatterns
(
getExcludePathPatterns
());
registry
.
addInterceptor
(
userInterceptor
)
.
addPathPatterns
(
"/**"
);
.
addPathPatterns
(
"/**"
);
}
}
/**
* 白名单
*/
private
ArrayList
<
String
>
getExcludePathPatterns
()
{
ArrayList
<
String
>
list
=
new
ArrayList
<>();
Collections
.
addAll
(
list
,
EXCLUDE_URLS
);
return
list
;
}
}
}
yanxuan-wx-store-sharer-biz/src/main/java/com/netease/yanxuan/wx/store/sharer/biz/core/LoginUserContextHolder.java
View file @
66970561
...
@@ -3,8 +3,6 @@ package com.netease.yanxuan.wx.store.sharer.biz.core;
...
@@ -3,8 +3,6 @@ package com.netease.yanxuan.wx.store.sharer.biz.core;
import
io.jsonwebtoken.Jwts
;
import
io.jsonwebtoken.Jwts
;
import
io.jsonwebtoken.SignatureAlgorithm
;
import
io.jsonwebtoken.SignatureAlgorithm
;
import
java.util.Date
;
/**
/**
* @Description 授权上下文
* @Description 授权上下文
* @Author fanjiaxin
* @Author fanjiaxin
...
@@ -29,10 +27,10 @@ public class LoginUserContextHolder {
...
@@ -29,10 +27,10 @@ public class LoginUserContextHolder {
/**
/**
* 生成用户Token
* 生成用户Token
*/
*/
public
static
String
generateToken
(
String
code
)
{
public
static
String
generateToken
(
String
code
,
String
openId
)
{
return
Jwts
.
builder
()
return
Jwts
.
builder
()
.
claim
(
"
time"
,
new
Date
().
getTime
()
)
.
claim
(
"
code"
,
code
)
.
signWith
(
SignatureAlgorithm
.
HS256
,
code
)
.
signWith
(
SignatureAlgorithm
.
HS256
,
openId
)
.
compact
();
.
compact
();
}
}
}
}
yanxuan-wx-store-sharer-biz/src/main/java/com/netease/yanxuan/wx/store/sharer/biz/core/LoginUserHelper.java
View file @
66970561
...
@@ -35,7 +35,6 @@ public class LoginUserHelper {
...
@@ -35,7 +35,6 @@ public class LoginUserHelper {
* 保存用户认证信息
* 保存用户认证信息
*/
*/
public
void
setLoginUserInfo
(
String
token
,
LoginUserInfo
loginUserInfo
)
{
public
void
setLoginUserInfo
(
String
token
,
LoginUserInfo
loginUserInfo
)
{
LoginUserContextHolder
.
set
(
loginUserInfo
);
redisClient
.
setStr
(
CoreConstant
.
REDIS_TOKEN_USER_KEY
+
token
,
redisClient
.
setStr
(
CoreConstant
.
REDIS_TOKEN_USER_KEY
+
token
,
JSON
.
toJSONString
(
loginUserInfo
),
CoreConstant
.
REDIS_TOKEN_EXPIRE_SECONDS
);
JSON
.
toJSONString
(
loginUserInfo
),
CoreConstant
.
REDIS_TOKEN_EXPIRE_SECONDS
);
}
}
...
...
yanxuan-wx-store-sharer-biz/src/main/java/com/netease/yanxuan/wx/store/sharer/biz/interceptor/AuthInterceptor.java
View file @
66970561
...
@@ -3,20 +3,16 @@ package com.netease.yanxuan.wx.store.sharer.biz.interceptor;
...
@@ -3,20 +3,16 @@ package com.netease.yanxuan.wx.store.sharer.biz.interceptor;
import
com.netease.yanxuan.wx.store.sharer.biz.core.LoginUserContextHolder
;
import
com.netease.yanxuan.wx.store.sharer.biz.core.LoginUserContextHolder
;
import
com.netease.yanxuan.wx.store.sharer.biz.core.LoginUserHelper
;
import
com.netease.yanxuan.wx.store.sharer.biz.core.LoginUserHelper
;
import
com.netease.yanxuan.wx.store.sharer.biz.core.LoginUserInfo
;
import
com.netease.yanxuan.wx.store.sharer.biz.core.LoginUserInfo
;
import
com.netease.yanxuan.wx.store.sharer.common.annotation.LoginRequired
;
import
com.netease.yanxuan.wx.store.sharer.common.constant.CoreConstant
;
import
com.netease.yanxuan.wx.store.sharer.common.constant.CoreConstant
;
import
com.netease.yanxuan.wx.store.sharer.common.exception.NoAuthException
;
import
com.netease.yanxuan.wx.store.sharer.common.exception.NoAuthException
;
import
com.netease.yanxuan.wx.store.sharer.common.handler.RedisClient
;
import
lombok.RequiredArgsConstructor
;
import
lombok.RequiredArgsConstructor
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang.StringUtils
;
import
org.apache.commons.lang.StringUtils
;
import
org.springframework.stereotype.Component
;
import
org.springframework.stereotype.Component
;
import
org.springframework.web.method.HandlerMethod
;
import
org.springframework.web.servlet.HandlerInterceptor
;
import
org.springframework.web.servlet.HandlerInterceptor
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
javax.servlet.http.HttpServletResponse
;
import
java.lang.reflect.Method
;
/**
/**
* @Description 鉴权拦截器
* @Description 鉴权拦截器
...
@@ -27,35 +23,22 @@ import java.lang.reflect.Method;
...
@@ -27,35 +23,22 @@ import java.lang.reflect.Method;
@RequiredArgsConstructor
@RequiredArgsConstructor
@Component
@Component
public
class
AuthInterceptor
implements
HandlerInterceptor
{
public
class
AuthInterceptor
implements
HandlerInterceptor
{
private
final
RedisClient
redisClient
;
private
final
LoginUserHelper
loginUserHelper
;
private
final
LoginUserHelper
jwtHelper
;
@Override
@Override
public
boolean
preHandle
(
HttpServletRequest
request
,
HttpServletResponse
response
,
Object
handler
)
{
public
boolean
preHandle
(
HttpServletRequest
request
,
HttpServletResponse
response
,
Object
handler
)
{
log
.
info
(
"AuthInterceptor preHandle execute, url:{}"
,
request
.
getRequestURI
());
log
.
info
(
"AuthInterceptor preHandle execute, url:{}"
,
request
.
getRequestURI
());
HandlerMethod
handlerMethod
=
(
HandlerMethod
)
handler
;
Method
method
=
handlerMethod
.
getMethod
();
LoginRequired
validateAnnotation
=
method
.
getAnnotation
(
LoginRequired
.
class
);
String
token
=
request
.
getHeader
(
CoreConstant
.
AUTH_HEADER_TOKEN_KEY
);
String
token
=
request
.
getHeader
(
CoreConstant
.
AUTH_HEADER_TOKEN_KEY
);
log
.
info
(
"AuthInterceptor preHandle token:{}"
,
token
);
log
.
info
(
"AuthInterceptor preHandle token:{}"
,
token
);
LoginUserInfo
loginUserInfo
;
if
(
null
!=
validateAnnotation
)
{
if
(
StringUtils
.
isBlank
(
token
))
{
if
(
StringUtils
.
isBlank
(
token
))
{
throw
new
NoAuthException
(
"用户认证失败,TOKEN为空"
);
throw
new
NoAuthException
(
"用户认证失败,TOKEN为空"
);
}
}
loginUserInfo
=
jwt
Helper
.
getLoginUserInfo
(
token
);
LoginUserInfo
loginUserInfo
=
loginUser
Helper
.
getLoginUserInfo
(
token
);
if
(
null
==
loginUserInfo
)
{
if
(
null
==
loginUserInfo
)
{
log
.
info
(
"用户登录状态过期,token缓存失效,path:{}"
,
request
.
getServletPath
());
log
.
info
(
"用户登录状态过期,token缓存失效,path:{}"
,
request
.
getServletPath
());
throw
new
NoAuthException
(
"用户登录状态过期"
);
throw
new
NoAuthException
(
"用户登录状态过期"
);
}
}
}
else
if
(
StringUtils
.
isNotBlank
(
token
))
{
loginUserInfo
=
jwtHelper
.
getLoginUserInfo
(
token
);
if
(
null
!=
loginUserInfo
)
{
// 刷新缓存
jwtHelper
.
setLoginUserInfo
(
token
,
loginUserInfo
);
}
}
return
true
;
return
true
;
}
}
...
...
yanxuan-wx-store-sharer-biz/src/main/java/com/netease/yanxuan/wx/store/sharer/biz/interceptor/UserInterceptor.java
0 → 100644
View file @
66970561
package
com
.
netease
.
yanxuan
.
wx
.
store
.
sharer
.
biz
.
interceptor
;
import
com.netease.yanxuan.wx.store.sharer.biz.core.LoginUserContextHolder
;
import
com.netease.yanxuan.wx.store.sharer.biz.core.LoginUserHelper
;
import
com.netease.yanxuan.wx.store.sharer.biz.core.LoginUserInfo
;
import
com.netease.yanxuan.wx.store.sharer.common.constant.CoreConstant
;
import
lombok.RequiredArgsConstructor
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.stereotype.Component
;
import
org.springframework.web.servlet.HandlerInterceptor
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
/**
* @Description 用户信息拦截器
* @Author fanjiaxin
* @Date 2025/3/10 10:20
*/
@Slf4j
@RequiredArgsConstructor
@Component
public
class
UserInterceptor
implements
HandlerInterceptor
{
private
final
LoginUserHelper
loginUserHelper
;
@Override
public
boolean
preHandle
(
HttpServletRequest
request
,
HttpServletResponse
response
,
Object
handler
)
{
log
.
info
(
"UserInterceptor preHandle execute, url:{}"
,
request
.
getRequestURI
());
String
token
=
request
.
getHeader
(
CoreConstant
.
AUTH_HEADER_TOKEN_KEY
);
log
.
info
(
"UserInterceptor preHandle token:{}"
,
token
);
LoginUserInfo
loginUserInfo
=
loginUserHelper
.
getLoginUserInfo
(
token
);
if
(
null
!=
loginUserInfo
)
{
// 刷新缓存
loginUserHelper
.
setLoginUserInfo
(
token
,
loginUserInfo
);
LoginUserContextHolder
.
set
(
loginUserInfo
);
}
return
true
;
}
@Override
public
void
afterCompletion
(
HttpServletRequest
request
,
HttpServletResponse
response
,
Object
handler
,
Exception
ex
)
{
LoginUserContextHolder
.
remove
();
}
}
yanxuan-wx-store-sharer-biz/src/main/java/com/netease/yanxuan/wx/store/sharer/biz/service/impl/UserServiceImpl.java
View file @
66970561
...
@@ -43,7 +43,7 @@ public class UserServiceImpl implements IUserService {
...
@@ -43,7 +43,7 @@ public class UserServiceImpl implements IUserService {
private
final
SharerInfoMapper
sharerInfoMapper
;
private
final
SharerInfoMapper
sharerInfoMapper
;
private
final
DrmSharerConfig
drmSharerConfig
;
private
final
DrmSharerConfig
drmSharerConfig
;
private
final
LoginUserHelper
jwt
Helper
;
private
final
LoginUserHelper
loginUser
Helper
;
private
final
WeChatUserInfoRequest
weChatUserRequest
;
private
final
WeChatUserInfoRequest
weChatUserRequest
;
private
final
WeChatShopSharerRegisterBindRequest
weChatShopSharerRegisterBindRequest
;
private
final
WeChatShopSharerRegisterBindRequest
weChatShopSharerRegisterBindRequest
;
private
final
WeChatShopSharerListRequest
weChatShopSharerListRequest
;
private
final
WeChatShopSharerListRequest
weChatShopSharerListRequest
;
...
@@ -69,8 +69,13 @@ public class UserServiceImpl implements IUserService {
...
@@ -69,8 +69,13 @@ public class UserServiceImpl implements IUserService {
sharerInfo
.
setUpdateTime
(
now
);
sharerInfo
.
setUpdateTime
(
now
);
sharerInfoMapper
.
insert
(
sharerInfo
);
sharerInfoMapper
.
insert
(
sharerInfo
);
}
}
LoginUserInfo
loginUserInfo
=
new
LoginUserInfo
();
loginUserInfo
.
setOpenId
(
sharerInfo
.
getOpenId
());
loginUserInfo
.
setSharerAppId
(
null
);
// 生成token
// 生成token
String
token
=
LoginUserContextHolder
.
generateToken
(
bo
.
getCode
());
String
token
=
LoginUserContextHolder
.
generateToken
(
bo
.
getCode
(),
loginUserInfo
.
getOpenId
());
loginUserInfo
.
setAccessToken
(
token
);
loginUserHelper
.
setLoginUserInfo
(
token
,
loginUserInfo
);
return
UserTokenVO
.
builder
().
token
(
token
).
build
();
return
UserTokenVO
.
builder
().
token
(
token
).
build
();
}
}
...
...
yanxuan-wx-store-sharer-common/src/main/java/com/netease/yanxuan/wx/store/sharer/common/annotation/LoginRequired.java
deleted
100644 → 0
View file @
cdee69b2
package
com
.
netease
.
yanxuan
.
wx
.
store
.
sharer
.
common
.
annotation
;
import
java.lang.annotation.ElementType
;
import
java.lang.annotation.Retention
;
import
java.lang.annotation.RetentionPolicy
;
import
java.lang.annotation.Target
;
/**
* des: 登录注解
* 限制只有登录才能访问的接口加此注解
* @author :XDD
* @ date : 2020/9/11 14:09
*/
@Target
({
ElementType
.
METHOD
})
@Retention
(
RetentionPolicy
.
RUNTIME
)
public
@interface
LoginRequired
{
}
yanxuan-wx-store-sharer-web/src/main/java/com/netease/yanxuan/wx/store/sharer/web/controller/UserController.java
View file @
66970561
package
com
.
netease
.
yanxuan
.
wx
.
store
.
sharer
.
web
.
controller
;
package
com
.
netease
.
yanxuan
.
wx
.
store
.
sharer
.
web
.
controller
;
import
com.netease.yanxuan.wx.store.sharer.biz.meta.model.bo.LoginBO
;
import
com.netease.yanxuan.wx.store.sharer.biz.meta.model.bo.LoginBO
;
import
com.netease.yanxuan.wx.store.sharer.biz.meta.model.vo.SharerInfoVO
;
import
com.netease.yanxuan.wx.store.sharer.biz.meta.model.vo.UserCommissionRatioVO
;
import
com.netease.yanxuan.wx.store.sharer.biz.meta.model.vo.UserCommissionRatioVO
;
import
com.netease.yanxuan.wx.store.sharer.biz.meta.model.vo.UserTokenVO
;
import
com.netease.yanxuan.wx.store.sharer.biz.meta.model.vo.UserTokenVO
;
import
com.netease.yanxuan.wx.store.sharer.biz.meta.model.vo.SharerInfoVO
;
import
com.netease.yanxuan.wx.store.sharer.biz.service.IUserService
;
import
com.netease.yanxuan.wx.store.sharer.biz.service.IUserService
;
import
com.netease.yanxuan.wx.store.sharer.common.annotation.LoginRequired
;
import
com.netease.yanxuan.wx.store.sharer.common.core.Result
;
import
com.netease.yanxuan.wx.store.sharer.common.core.Result
;
import
lombok.RequiredArgsConstructor
;
import
lombok.RequiredArgsConstructor
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.validation.annotation.Validated
;
...
@@ -37,7 +36,6 @@ public class UserController extends BaseController {
...
@@ -37,7 +36,6 @@ public class UserController extends BaseController {
/**
/**
* 刷新用户信息
* 刷新用户信息
*/
*/
@LoginRequired
@PostMapping
(
"/refreshUserInfo"
)
@PostMapping
(
"/refreshUserInfo"
)
public
Result
<
SharerInfoVO
>
refreshUserInfo
()
{
public
Result
<
SharerInfoVO
>
refreshUserInfo
()
{
SharerInfoVO
result
=
iUserService
.
refreshUserInfo
();
SharerInfoVO
result
=
iUserService
.
refreshUserInfo
();
...
@@ -47,7 +45,6 @@ public class UserController extends BaseController {
...
@@ -47,7 +45,6 @@ public class UserController extends BaseController {
/**
/**
* 用户信息
* 用户信息
*/
*/
@LoginRequired
@PostMapping
(
"/getUserInfo"
)
@PostMapping
(
"/getUserInfo"
)
public
Result
<
SharerInfoVO
>
getUserInfo
()
{
public
Result
<
SharerInfoVO
>
getUserInfo
()
{
SharerInfoVO
result
=
iUserService
.
getUserInfo
();
SharerInfoVO
result
=
iUserService
.
getUserInfo
();
...
@@ -57,7 +54,6 @@ public class UserController extends BaseController {
...
@@ -57,7 +54,6 @@ public class UserController extends BaseController {
/**
/**
* 查询平台默认的分佣比例
* 查询平台默认的分佣比例
*/
*/
@LoginRequired
@PostMapping
(
"/getCommissionRatioDefault"
)
@PostMapping
(
"/getCommissionRatioDefault"
)
public
Result
<
UserCommissionRatioVO
>
getCommissionRatioDefault
()
{
public
Result
<
UserCommissionRatioVO
>
getCommissionRatioDefault
()
{
UserCommissionRatioVO
result
=
iUserService
.
getCommissionRatioDefault
();
UserCommissionRatioVO
result
=
iUserService
.
getCommissionRatioDefault
();
...
...
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