Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
X
xyqb-user2
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
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
head_group
xyqb-user2
Commits
660b9156
Commit
660b9156
authored
Jul 25, 2023
by
唐峰
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
合同签署处理登录渠道
parent
e88fe98e
Changes
9
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
35 additions
and
13 deletions
+35
-13
Constants.java
src/main/java/cn/quantgroup/xyqb/Constants.java
+2
-0
PasswordFreeAccessValidateAdvisor.java
.../xyqb/aspect/limit/PasswordFreeAccessValidateAdvisor.java
+2
-1
IBaseController.java
...n/java/cn/quantgroup/xyqb/controller/IBaseController.java
+12
-0
UserController.java
...n/quantgroup/xyqb/controller/external/UserController.java
+5
-4
UserApiController.java
...roup/xyqb/controller/internal/user/UserApiController.java
+4
-2
InnerInterceptor.java
...main/java/cn/quantgroup/xyqb/filter/InnerInterceptor.java
+2
-1
UserServiceImpl.java
...cn/quantgroup/xyqb/service/user/impl/UserServiceImpl.java
+1
-1
LoginContext.java
...main/java/cn/quantgroup/xyqb/service/v2/LoginContext.java
+1
-1
XyqbSessionContextHolder.java
.../cn/quantgroup/xyqb/session/XyqbSessionContextHolder.java
+6
-3
No files found.
src/main/java/cn/quantgroup/xyqb/Constants.java
View file @
660b9156
...
@@ -37,6 +37,8 @@ public interface Constants {
...
@@ -37,6 +37,8 @@ public interface Constants {
String
X_AUTH_APP_ID
=
"qg-app-id"
;
String
X_AUTH_APP_ID
=
"qg-app-id"
;
String
X_AUTH_FROM
=
"qg-registered-from"
;
String
X_AUTH_FROM
=
"qg-registered-from"
;
//兼容可能的渠道
String
X_AUTH_FROM_
=
"vccChannel"
;
String
X_STMS_TOKEN
=
"qg-stms-token"
;
String
X_STMS_TOKEN
=
"qg-stms-token"
;
String
X_BEHAVIOR_TYPE
=
"qg-behavior-type"
;
String
X_BEHAVIOR_TYPE
=
"qg-behavior-type"
;
...
...
src/main/java/cn/quantgroup/xyqb/aspect/limit/PasswordFreeAccessValidateAdvisor.java
View file @
660b9156
...
@@ -76,6 +76,7 @@ public class PasswordFreeAccessValidateAdvisor {
...
@@ -76,6 +76,7 @@ public class PasswordFreeAccessValidateAdvisor {
// 当前请求的phoneNo/userId
// 当前请求的phoneNo/userId
String
phoneNo
=
request
.
getParameter
(
Constants
.
PHONE_NO
);
String
phoneNo
=
request
.
getParameter
(
Constants
.
PHONE_NO
);
String
userId
=
request
.
getParameter
(
USER_ID
);
String
userId
=
request
.
getParameter
(
USER_ID
);
String
from
=
request
.
getParameter
(
Constants
.
X_AUTH_FROM
);
if
(
StringUtils
.
isBlank
(
phoneNo
)
&&
StringUtils
.
isBlank
(
userId
))
{
if
(
StringUtils
.
isBlank
(
phoneNo
)
&&
StringUtils
.
isBlank
(
userId
))
{
log
.
info
(
"非法请求 - 缺少参数, phoneNo={}, userId={}, clientIp={}"
,
phoneNo
,
userId
,
clientIp
);
log
.
info
(
"非法请求 - 缺少参数, phoneNo={}, userId={}, clientIp={}"
,
phoneNo
,
userId
,
clientIp
);
return
false
;
return
false
;
...
@@ -97,7 +98,7 @@ public class PasswordFreeAccessValidateAdvisor {
...
@@ -97,7 +98,7 @@ public class PasswordFreeAccessValidateAdvisor {
// }
// }
// 当前session
// 当前session
SessionStruct
session
=
XyqbSessionContextHolder
.
getXSessionFromRedis
(
token
,
tenantId
);
SessionStruct
session
=
XyqbSessionContextHolder
.
getXSessionFromRedis
(
token
,
tenantId
,
from
==
null
?
null
:
Long
.
parseLong
(
from
)
);
if
(
Objects
.
isNull
(
session
)
||
Objects
.
isNull
(
session
.
getValues
())
||
Objects
.
isNull
(
session
.
getValues
().
getUser
()))
{
if
(
Objects
.
isNull
(
session
)
||
Objects
.
isNull
(
session
.
getValues
())
||
Objects
.
isNull
(
session
.
getValues
().
getUser
()))
{
log
.
info
(
"非法请求 - 未登录, token={}, phoneNo={}, userId={}, clientIp={}"
,
token
,
phoneNo
,
userId
,
clientIp
);
log
.
info
(
"非法请求 - 未登录, token={}, phoneNo={}, userId={}, clientIp={}"
,
token
,
phoneNo
,
userId
,
clientIp
);
return
false
;
return
false
;
...
...
src/main/java/cn/quantgroup/xyqb/controller/IBaseController.java
View file @
660b9156
...
@@ -62,6 +62,18 @@ public interface IBaseController {
...
@@ -62,6 +62,18 @@ public interface IBaseController {
return
Integer
.
parseInt
(
tenantIdStr
);
return
Integer
.
parseInt
(
tenantIdStr
);
}
}
default
Long
getRegisteredFrom
()
{
String
from
=
getRequest
().
getHeader
(
Constants
.
X_AUTH_FROM
);
if
(
StringUtils
.
isNotEmpty
(
from
))
{
return
Long
.
parseLong
(
from
);
}
from
=
getRequest
().
getHeader
(
Constants
.
X_AUTH_FROM_
);
if
(
StringUtils
.
isNotEmpty
(
from
))
{
return
Long
.
parseLong
(
from
);
}
return
null
;
}
default
SessionStruct
getCurrentSessionFromRedis
()
{
default
SessionStruct
getCurrentSessionFromRedis
()
{
return
getXSessionFromRedis
();
return
getXSessionFromRedis
();
}
}
...
...
src/main/java/cn/quantgroup/xyqb/controller/external/UserController.java
View file @
660b9156
...
@@ -550,6 +550,7 @@ public class UserController implements IBaseController {
...
@@ -550,6 +550,7 @@ public class UserController implements IBaseController {
if
(
tenantId
==
null
)
{
if
(
tenantId
==
null
)
{
tenantId
=
tenantIdHeader
;
tenantId
=
tenantIdHeader
;
}
}
Long
registeredFrom
=
getRegisteredFrom
();
Map
<
String
,
Object
>
result
=
new
HashMap
<>();
Map
<
String
,
Object
>
result
=
new
HashMap
<>();
result
.
put
(
"exist"
,
false
);
result
.
put
(
"exist"
,
false
);
if
(
StringUtils
.
isEmpty
(
token
))
{
if
(
StringUtils
.
isEmpty
(
token
))
{
...
@@ -558,12 +559,12 @@ public class UserController implements IBaseController {
...
@@ -558,12 +559,12 @@ public class UserController implements IBaseController {
if
(
token
.
contains
(
Constants
.
TOKEN_MASTER
))
{
if
(
token
.
contains
(
Constants
.
TOKEN_MASTER
))
{
return
JsonResult
.
buildSuccessResult
(
null
,
result
);
return
JsonResult
.
buildSuccessResult
(
null
,
result
);
}
}
SessionStruct
sessionStruct
=
XyqbSessionContextHolder
.
getXSessionFromRedis
(
token
,
tenantId
);
SessionStruct
sessionStruct
=
XyqbSessionContextHolder
.
getXSessionFromRedis
(
token
,
tenantId
,
registeredFrom
);
if
(
sessionStruct
==
null
||
sessionStruct
.
getValues
()
==
null
)
{
if
(
sessionStruct
==
null
||
sessionStruct
.
getValues
()
==
null
)
{
// 使用token去电商查询信息, 如果token 不包含本系统token前缀
// 使用token去电商查询信息, 如果token 不包含本系统token前缀
if
(!
token
.
contains
(
prefix
))
{
if
(!
token
.
contains
(
prefix
))
{
findTokenExchange
(
token
,
tenantId
);
findTokenExchange
(
token
,
tenantId
);
sessionStruct
=
XyqbSessionContextHolder
.
getXSessionFromRedis
(
token
,
tenantId
);
sessionStruct
=
XyqbSessionContextHolder
.
getXSessionFromRedis
(
token
,
tenantId
,
registeredFrom
);
if
(
sessionStruct
==
null
||
sessionStruct
.
getValues
()
==
null
)
{
if
(
sessionStruct
==
null
||
sessionStruct
.
getValues
()
==
null
)
{
return
JsonResult
.
buildSuccessResult
(
null
,
result
);
return
JsonResult
.
buildSuccessResult
(
null
,
result
);
}
}
...
@@ -596,7 +597,7 @@ public class UserController implements IBaseController {
...
@@ -596,7 +597,7 @@ public class UserController implements IBaseController {
if
(
tenantId
==
null
)
{
if
(
tenantId
==
null
)
{
tenantId
=
tenantIdHeader
;
tenantId
=
tenantIdHeader
;
}
}
Long
registeredFrom
=
getRegisteredFrom
();
TokenExchange
tokenExchange
=
new
TokenExchange
();
TokenExchange
tokenExchange
=
new
TokenExchange
();
if
(
StringUtils
.
isEmpty
(
token
))
{
if
(
StringUtils
.
isEmpty
(
token
))
{
return
JsonResult
.
buildSuccessResult
(
null
,
tokenExchange
);
return
JsonResult
.
buildSuccessResult
(
null
,
tokenExchange
);
...
@@ -604,7 +605,7 @@ public class UserController implements IBaseController {
...
@@ -604,7 +605,7 @@ public class UserController implements IBaseController {
if
(
token
.
contains
(
Constants
.
TOKEN_MASTER
))
{
if
(
token
.
contains
(
Constants
.
TOKEN_MASTER
))
{
return
JsonResult
.
buildSuccessResult
(
null
,
tokenExchange
);
return
JsonResult
.
buildSuccessResult
(
null
,
tokenExchange
);
}
}
SessionStruct
sessionStruct
=
XyqbSessionContextHolder
.
getXSessionFromRedis
(
token
,
tenantId
);
SessionStruct
sessionStruct
=
XyqbSessionContextHolder
.
getXSessionFromRedis
(
token
,
tenantId
,
registeredFrom
);
if
(
sessionStruct
==
null
||
sessionStruct
.
getValues
()
==
null
)
{
if
(
sessionStruct
==
null
||
sessionStruct
.
getValues
()
==
null
)
{
return
JsonResult
.
buildSuccessResult
(
null
,
tokenExchange
);
return
JsonResult
.
buildSuccessResult
(
null
,
tokenExchange
);
}
}
...
...
src/main/java/cn/quantgroup/xyqb/controller/internal/user/UserApiController.java
View file @
660b9156
...
@@ -3,6 +3,7 @@ package cn.quantgroup.xyqb.controller.internal.user;
...
@@ -3,6 +3,7 @@ package cn.quantgroup.xyqb.controller.internal.user;
import
cn.quantgroup.xyqb.Constants
;
import
cn.quantgroup.xyqb.Constants
;
import
cn.quantgroup.xyqb.aspect.accessable.IpValidator
;
import
cn.quantgroup.xyqb.aspect.accessable.IpValidator
;
import
cn.quantgroup.xyqb.constant.UserConstant
;
import
cn.quantgroup.xyqb.constant.UserConstant
;
import
cn.quantgroup.xyqb.controller.IBaseController
;
import
cn.quantgroup.xyqb.entity.User
;
import
cn.quantgroup.xyqb.entity.User
;
import
cn.quantgroup.xyqb.exception.VerificationCodeErrorException
;
import
cn.quantgroup.xyqb.exception.VerificationCodeErrorException
;
import
cn.quantgroup.xyqb.model.JsonResult
;
import
cn.quantgroup.xyqb.model.JsonResult
;
...
@@ -27,7 +28,7 @@ import java.util.Objects;
...
@@ -27,7 +28,7 @@ import java.util.Objects;
@Slf4j
@Slf4j
@RestController
@RestController
@RequestMapping
(
"/api"
)
@RequestMapping
(
"/api"
)
public
class
UserApiController
{
public
class
UserApiController
implements
IBaseController
{
@Resource
@Resource
private
IUserService
userService
;
private
IUserService
userService
;
...
@@ -71,6 +72,7 @@ public class UserApiController {
...
@@ -71,6 +72,7 @@ public class UserApiController {
if
(
Objects
.
isNull
(
token
)
||
!
ValidationUtil
.
validateToken
(
token
))
{
if
(
Objects
.
isNull
(
token
)
||
!
ValidationUtil
.
validateToken
(
token
))
{
return
JsonResult
.
buildErrorStateResult
(
"token regular invalid "
,
token
);
return
JsonResult
.
buildErrorStateResult
(
"token regular invalid "
,
token
);
}
}
Long
registeredFrom
=
getRegisteredFrom
();
String
tokenKey
=
Constants
.
SESSION_PREFIX
+
token
;
String
tokenKey
=
Constants
.
SESSION_PREFIX
+
token
;
String
tokenKey2
;
String
tokenKey2
;
...
@@ -85,7 +87,7 @@ public class UserApiController {
...
@@ -85,7 +87,7 @@ public class UserApiController {
/* token存在且需要延续时,进一步判断session是否有效,有效时,自动续期 */
/* token存在且需要延续时,进一步判断session是否有效,有效时,自动续期 */
if
(
Boolean
.
logicalAnd
(
exist
,
prolong
))
{
if
(
Boolean
.
logicalAnd
(
exist
,
prolong
))
{
// 获取session信息
// 获取session信息
SessionStruct
sessionStruct
=
XyqbSessionContextHolder
.
getXSessionFromRedis
(
token
,
tenantId
);
SessionStruct
sessionStruct
=
XyqbSessionContextHolder
.
getXSessionFromRedis
(
token
,
tenantId
,
registeredFrom
);
if
(
Objects
.
isNull
(
sessionStruct
))
{
if
(
Objects
.
isNull
(
sessionStruct
))
{
log
.
info
(
"延续token:[{}]生命期,result:[{}],SessionStruct:{}"
,
token
,
false
,
sessionStruct
);
log
.
info
(
"延续token:[{}]生命期,result:[{}],SessionStruct:{}"
,
token
,
false
,
sessionStruct
);
/* 如果没有获取到session信息则返回错误信息 */
/* 如果没有获取到session信息则返回错误信息 */
...
...
src/main/java/cn/quantgroup/xyqb/filter/InnerInterceptor.java
View file @
660b9156
...
@@ -40,6 +40,7 @@ public class InnerInterceptor implements HandlerInterceptor {
...
@@ -40,6 +40,7 @@ public class InnerInterceptor implements HandlerInterceptor {
//所有开放出去的外部接口,都需要验证租户id和注册来源
//所有开放出去的外部接口,都需要验证租户id和注册来源
String
tenantId
=
request
.
getHeader
(
Constants
.
X_AUTH_TENANT
);
String
tenantId
=
request
.
getHeader
(
Constants
.
X_AUTH_TENANT
);
String
registeredFrom
=
request
.
getHeader
(
Constants
.
X_AUTH_FROM
);
String
registeredFrom
=
request
.
getHeader
(
Constants
.
X_AUTH_FROM
);
registeredFrom
=
org
.
apache
.
commons
.
lang3
.
StringUtils
.
isEmpty
(
registeredFrom
)
?
request
.
getHeader
(
Constants
.
X_AUTH_FROM_
)
:
registeredFrom
;
String
stmsToken
=
request
.
getHeader
(
Constants
.
X_AUTH_TOKEN
);
String
stmsToken
=
request
.
getHeader
(
Constants
.
X_AUTH_TOKEN
);
if
(
StringUtils
.
isEmpty
(
tenantId
))
{
if
(
StringUtils
.
isEmpty
(
tenantId
))
{
throw
new
BizException
(
BizExceptionEnum
.
UN_EXIT_TENANT_ID
);
throw
new
BizException
(
BizExceptionEnum
.
UN_EXIT_TENANT_ID
);
...
@@ -49,7 +50,7 @@ public class InnerInterceptor implements HandlerInterceptor {
...
@@ -49,7 +50,7 @@ public class InnerInterceptor implements HandlerInterceptor {
throw
new
BizException
(
BizExceptionEnum
.
UN_EXIT_STMS_TOKEN
);
throw
new
BizException
(
BizExceptionEnum
.
UN_EXIT_STMS_TOKEN
);
}
}
SessionStruct
sessionStruct
=
XyqbSessionContextHolder
.
getXSessionFromRedis
(
stmsToken
,
Integer
.
valueOf
(
tenantId
));
SessionStruct
sessionStruct
=
XyqbSessionContextHolder
.
getXSessionFromRedis
(
stmsToken
,
Integer
.
valueOf
(
tenantId
)
,
org
.
apache
.
commons
.
lang3
.
StringUtils
.
isEmpty
(
registeredFrom
)
?
null
:
Long
.
valueOf
(
registeredFrom
)
);
if
(
sessionStruct
==
null
)
{
if
(
sessionStruct
==
null
)
{
OauthResult
oauthResult
=
stmsRemoteService
.
checkToken
(
stmsToken
);
OauthResult
oauthResult
=
stmsRemoteService
.
checkToken
(
stmsToken
);
...
...
src/main/java/cn/quantgroup/xyqb/service/user/impl/UserServiceImpl.java
View file @
660b9156
...
@@ -582,7 +582,7 @@ public class UserServiceImpl implements IUserService, IBaseController {
...
@@ -582,7 +582,7 @@ public class UserServiceImpl implements IUserService, IBaseController {
JSONArray
array
=
new
JSONArray
();
JSONArray
array
=
new
JSONArray
();
array
.
add
(
json
);
array
.
add
(
json
);
registeredNotifyBlackHoleRabbitTemplate
.
convertAndSend
(
exchange
,
routingKey
,
array
.
toString
());
registeredNotifyBlackHoleRabbitTemplate
.
convertAndSend
(
exchange
,
routingKey
,
array
.
toString
());
log
.
info
(
"登录补签合同事件:userId:{},templateIds:{}"
,
user
.
getId
(),
templateId
);
});
});
log
.
info
(
"登录补签合同事件:userId:{},templateIds:{}"
,
user
.
getId
(),
templates
);
}
}
}
}
src/main/java/cn/quantgroup/xyqb/service/v2/LoginContext.java
View file @
660b9156
...
@@ -70,7 +70,7 @@ public class LoginContext {
...
@@ -70,7 +70,7 @@ public class LoginContext {
//第三步、发送登录成功消息
//第三步、发送登录成功消息
SessionStruct
sessionStruct
=
XyqbSessionContextHolder
.
getXSession
();
SessionStruct
sessionStruct
=
XyqbSessionContextHolder
.
getXSession
();
Long
registeredFrom
=
sessionStruct
.
getRegisteredFrom
();
Long
registeredFrom
=
sessionStruct
.
getRegisteredFrom
();
if
(
sessionStruct
.
getValues
()
!=
null
&&
sessionStruct
.
getValues
().
getLoginProperties
()
!=
null
)
{
if
(
registeredFrom
==
null
&&
sessionStruct
.
getValues
()
!=
null
&&
sessionStruct
.
getValues
().
getLoginProperties
()
!=
null
)
{
registeredFrom
=
sessionStruct
.
getValues
().
getLoginProperties
().
getCreatedFrom
();
registeredFrom
=
sessionStruct
.
getValues
().
getLoginProperties
().
getCreatedFrom
();
}
}
...
...
src/main/java/cn/quantgroup/xyqb/session/XyqbSessionContextHolder.java
View file @
660b9156
...
@@ -130,12 +130,14 @@ public class XyqbSessionContextHolder {
...
@@ -130,12 +130,14 @@ public class XyqbSessionContextHolder {
public
static
SessionStruct
getXSessionFromRedis
()
{
public
static
SessionStruct
getXSessionFromRedis
()
{
HttpServletRequest
request
=
((
ServletRequestAttributes
)
RequestContextHolder
.
getRequestAttributes
()).
getRequest
();
HttpServletRequest
request
=
((
ServletRequestAttributes
)
RequestContextHolder
.
getRequestAttributes
()).
getRequest
();
String
token
=
request
.
getHeader
(
Constants
.
X_AUTH_TOKEN
);
String
token
=
request
.
getHeader
(
Constants
.
X_AUTH_TOKEN
);
String
from
=
request
.
getHeader
(
Constants
.
X_AUTH_FROM
);
from
=
StringUtils
.
isEmpty
(
from
)
?
request
.
getHeader
(
Constants
.
X_AUTH_FROM_
)
:
from
;
int
tenantId
=
UserConstant
.
defaultTenantId
;
int
tenantId
=
UserConstant
.
defaultTenantId
;
String
tenantIdString
=
request
.
getHeader
(
Constants
.
X_AUTH_TENANT
);
String
tenantIdString
=
request
.
getHeader
(
Constants
.
X_AUTH_TENANT
);
if
(
StringUtils
.
isNotEmpty
(
tenantIdString
)){
if
(
StringUtils
.
isNotEmpty
(
tenantIdString
)){
tenantId
=
Integer
.
parseInt
(
tenantIdString
);
tenantId
=
Integer
.
parseInt
(
tenantIdString
);
}
}
return
getXSessionFromRedis
(
token
,
tenantId
);
return
getXSessionFromRedis
(
token
,
tenantId
,
StringUtils
.
isEmpty
(
from
)
?
null
:
Long
.
valueOf
(
from
)
);
}
}
public
static
String
getXSessionFromTenantRedis
()
{
public
static
String
getXSessionFromTenantRedis
()
{
...
@@ -143,7 +145,7 @@ public class XyqbSessionContextHolder {
...
@@ -143,7 +145,7 @@ public class XyqbSessionContextHolder {
return
request
.
getHeader
(
Constants
.
X_AUTH_TENANT
);
return
request
.
getHeader
(
Constants
.
X_AUTH_TENANT
);
}
}
public
static
SessionStruct
getXSessionFromRedis
(
String
token
,
Integer
tenantId
)
{
public
static
SessionStruct
getXSessionFromRedis
(
String
token
,
Integer
tenantId
,
Long
registeredFrom
)
{
String
linkToken
;
String
linkToken
;
if
(
UserConstant
.
defaultTenantId
.
equals
(
tenantId
))
{
if
(
UserConstant
.
defaultTenantId
.
equals
(
tenantId
))
{
linkToken
=
Constants
.
Session
.
USER_SESSION_CACHE
+
token
;
linkToken
=
Constants
.
Session
.
USER_SESSION_CACHE
+
token
;
...
@@ -165,7 +167,8 @@ public class XyqbSessionContextHolder {
...
@@ -165,7 +167,8 @@ public class XyqbSessionContextHolder {
}
else
{
}
else
{
if
(
values
.
getLoginProperties
()
!=
null
)
{
if
(
values
.
getLoginProperties
()
!=
null
)
{
sessionStruct
.
setTenantId
(
values
.
getLoginProperties
().
getTenantId
());
sessionStruct
.
setTenantId
(
values
.
getLoginProperties
().
getTenantId
());
sessionStruct
.
setRegisteredFrom
(
values
.
getLoginProperties
().
getCreatedFrom
());
//sessionStruct.setRegisteredFrom(values.getLoginProperties().getCreatedFrom());
sessionStruct
.
setRegisteredFrom
(
registeredFrom
);
}
}
}
}
sessionStruct
.
setSid
(
token
);
sessionStruct
.
setSid
(
token
);
...
...
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