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
63c9a97c
Commit
63c9a97c
authored
Oct 29, 2019
by
技术部-任文超
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
@Transactional(rollbackFor = Exception.class)
parent
d9b999bb
Changes
28
Hide whitespace changes
Inline
Side-by-side
Showing
28 changed files
with
96 additions
and
131 deletions
+96
-131
Constants.java
src/main/java/cn/quantgroup/xyqb/Constants.java
+4
-0
IpValidateAdvisor.java
.../quantgroup/xyqb/aspect/accessable/IpValidateAdvisor.java
+4
-4
CaptchaFiniteValidateAdvisor.java
...oup/xyqb/aspect/captcha/CaptchaFiniteValidateAdvisor.java
+3
-3
CaptchaNewValidateAdvisor.java
...tgroup/xyqb/aspect/captcha/CaptchaNewValidateAdvisor.java
+4
-4
CaptchaValidateAdvisor.java
...uantgroup/xyqb/aspect/captcha/CaptchaValidateAdvisor.java
+2
-2
PasswordFreeAccessValidateAdvisor.java
.../xyqb/aspect/limit/PasswordFreeAccessValidateAdvisor.java
+2
-2
PasswordErrorFiniteValidateAdvisor.java
.../xyqb/aspect/lock/PasswordErrorFiniteValidateAdvisor.java
+6
-6
LogCallHttpAspect.java
...n/quantgroup/xyqb/aspect/logcaller/LogCallHttpAspect.java
+2
-2
ExceptionHandlingController.java
...antgroup/xyqb/controller/ExceptionHandlingController.java
+3
-3
IBaseController.java
...n/java/cn/quantgroup/xyqb/controller/IBaseController.java
+2
-2
UserController.java
...n/quantgroup/xyqb/controller/external/UserController.java
+2
-2
NewCaptchaController.java
...yqb/controller/external/captcha/NewCaptchaController.java
+2
-2
SmsController.java
...uantgroup/xyqb/controller/external/sms/SmsController.java
+3
-3
AppController.java
...antgroup/xyqb/controller/internal/user/AppController.java
+4
-4
InnerController.java
...tgroup/xyqb/controller/internal/user/InnerController.java
+3
-3
IUserDetailRepository.java
.../cn/quantgroup/xyqb/repository/IUserDetailRepository.java
+5
-6
IUserQueryLogRepository.java
...n/quantgroup/xyqb/repository/IUserQueryLogRepository.java
+1
-1
IUserRepository.java
...n/java/cn/quantgroup/xyqb/repository/IUserRepository.java
+1
-1
IWeChatUserRepository.java
.../cn/quantgroup/xyqb/repository/IWeChatUserRepository.java
+2
-2
HttpServiceImpl.java
...cn/quantgroup/xyqb/service/http/impl/HttpServiceImpl.java
+3
-3
IUserDetailService.java
...a/cn/quantgroup/xyqb/service/user/IUserDetailService.java
+1
-1
LockIpv4ServiceImpl.java
...uantgroup/xyqb/service/user/impl/LockIpv4ServiceImpl.java
+3
-3
UserDetailServiceImpl.java
...ntgroup/xyqb/service/user/impl/UserDetailServiceImpl.java
+2
-2
UserExtInfoServiceImpl.java
...tgroup/xyqb/service/user/impl/UserExtInfoServiceImpl.java
+1
-1
WechatServiceImpl.java
...uantgroup/xyqb/service/wechat/impl/WechatServiceImpl.java
+7
-9
IpUtil.java
src/main/java/cn/quantgroup/xyqb/util/IpUtil.java
+5
-4
PasswordUtil.java
src/main/java/cn/quantgroup/xyqb/util/PasswordUtil.java
+19
-0
Utils.java
src/main/java/cn/quantgroup/xyqb/util/Utils.java
+0
-56
No files found.
src/main/java/cn/quantgroup/xyqb/Constants.java
View file @
63c9a97c
...
@@ -26,6 +26,9 @@ public interface Constants {
...
@@ -26,6 +26,9 @@ public interface Constants {
String
X_AUTH_TOKEN
=
"x-auth-token"
;
String
X_AUTH_TOKEN
=
"x-auth-token"
;
int
TOKEN_LENGTH
=
36
;
int
TOKEN_LENGTH
=
36
;
int
THOUSAND_SECOND
=
1000
;
int
MILLIS_PER_SECOND
=
1000
;
int
MILLIS_OF_TEN_SECOND
=
10000
;
/** 垃圾,前辈竟然用这个办法来识别UUID */
/** 垃圾,前辈竟然用这个办法来识别UUID */
int
UUID_MIN_LENGTH
=
10
;
int
UUID_MIN_LENGTH
=
10
;
String
CHECK_FAIL
=
"fail"
;
String
CHECK_FAIL
=
"fail"
;
...
@@ -42,6 +45,7 @@ public interface Constants {
...
@@ -42,6 +45,7 @@ public interface Constants {
* 微信标识参数名
* 微信标识参数名
*/
*/
String
WECHAT_OPEN_ID
=
"wechat_open_id"
;
String
WECHAT_OPEN_ID
=
"wechat_open_id"
;
String
PASSWORD
=
"password"
;
// -- Start -- IPV4安全策略常量组
// -- Start -- IPV4安全策略常量组
/**
/**
...
...
src/main/java/cn/quantgroup/xyqb/aspect/accessable/IpValidateAdvisor.java
View file @
63c9a97c
package
cn
.
quantgroup
.
xyqb
.
aspect
.
accessable
;
package
cn
.
quantgroup
.
xyqb
.
aspect
.
accessable
;
import
cn.quantgroup.xyqb.model.JsonResult
;
import
cn.quantgroup.xyqb.model.JsonResult
;
import
cn.quantgroup.xyqb.util.I
P
Util
;
import
cn.quantgroup.xyqb.util.I
p
Util
;
import
org.aspectj.lang.ProceedingJoinPoint
;
import
org.aspectj.lang.ProceedingJoinPoint
;
import
org.aspectj.lang.annotation.Around
;
import
org.aspectj.lang.annotation.Around
;
import
org.aspectj.lang.annotation.Aspect
;
import
org.aspectj.lang.annotation.Aspect
;
...
@@ -35,12 +35,12 @@ public class IpValidateAdvisor {
...
@@ -35,12 +35,12 @@ public class IpValidateAdvisor {
private
Object
doWhiteIpMatch
(
ProceedingJoinPoint
pjp
)
throws
Throwable
{
private
Object
doWhiteIpMatch
(
ProceedingJoinPoint
pjp
)
throws
Throwable
{
HttpServletRequest
request
=
((
ServletRequestAttributes
)
RequestContextHolder
.
getRequestAttributes
()).
getRequest
();
HttpServletRequest
request
=
((
ServletRequestAttributes
)
RequestContextHolder
.
getRequestAttributes
()).
getRequest
();
// 客户端IP
// 客户端IP
String
clientIp
=
I
P
Util
.
getRemoteIP
(
request
);
String
clientIp
=
I
p
Util
.
getRemoteIP
(
request
);
// 白名单
// 白名单
if
(
I
P
Util
.
whiteOf
(
clientIp
))
{
if
(
I
p
Util
.
whiteOf
(
clientIp
))
{
return
pjp
.
proceed
();
return
pjp
.
proceed
();
}
}
I
P
Util
.
logIp
(
LOGGER
,
request
);
I
p
Util
.
logIp
(
LOGGER
,
request
);
LOGGER
.
error
(
"Lock_ipv4: don't match white ip access:{}"
,
clientIp
);
LOGGER
.
error
(
"Lock_ipv4: don't match white ip access:{}"
,
clientIp
);
return
JsonResult
.
buildErrorStateResult
(
"非法访问"
,
null
);
return
JsonResult
.
buildErrorStateResult
(
"非法访问"
,
null
);
}
}
...
...
src/main/java/cn/quantgroup/xyqb/aspect/captcha/CaptchaFiniteValidateAdvisor.java
View file @
63c9a97c
...
@@ -4,7 +4,7 @@ package cn.quantgroup.xyqb.aspect.captcha;
...
@@ -4,7 +4,7 @@ package cn.quantgroup.xyqb.aspect.captcha;
import
cn.quantgroup.xyqb.Constants
;
import
cn.quantgroup.xyqb.Constants
;
import
cn.quantgroup.xyqb.model.JsonResult
;
import
cn.quantgroup.xyqb.model.JsonResult
;
import
cn.quantgroup.xyqb.thirdparty.jcaptcha.AbstractManageableImageCaptchaService
;
import
cn.quantgroup.xyqb.thirdparty.jcaptcha.AbstractManageableImageCaptchaService
;
import
cn.quantgroup.xyqb.util.I
P
Util
;
import
cn.quantgroup.xyqb.util.I
p
Util
;
import
cn.quantgroup.xyqb.util.ValidationUtil
;
import
cn.quantgroup.xyqb.util.ValidationUtil
;
import
com.octo.captcha.service.CaptchaServiceException
;
import
com.octo.captcha.service.CaptchaServiceException
;
import
org.apache.commons.codec.binary.Base64
;
import
org.apache.commons.codec.binary.Base64
;
...
@@ -84,7 +84,7 @@ public class CaptchaFiniteValidateAdvisor {
...
@@ -84,7 +84,7 @@ public class CaptchaFiniteValidateAdvisor {
String
phoneNo
=
phonePasswordMap
.
get
(
Constants
.
PHONE_NO
);
String
phoneNo
=
phonePasswordMap
.
get
(
Constants
.
PHONE_NO
);
Long
countErrorByPhone
=
getCount
(
phoneNo
);
Long
countErrorByPhone
=
getCount
(
phoneNo
);
if
(
countErrorByPhone
==
null
)
{
if
(
countErrorByPhone
==
null
)
{
LOGGER
.
info
(
"用户名或密码不正确, phoneNo={}, countErrorByPhone={}, clientIp={}"
,
phoneNo
,
countErrorByPhone
,
I
P
Util
.
getRemoteIP
(
request
));
LOGGER
.
info
(
"用户名或密码不正确, phoneNo={}, countErrorByPhone={}, clientIp={}"
,
phoneNo
,
countErrorByPhone
,
I
p
Util
.
getRemoteIP
(
request
));
return
JsonResult
.
buildErrorStateResult
(
"用户名或密码不正确"
,
null
);
return
JsonResult
.
buildErrorStateResult
(
"用户名或密码不正确"
,
null
);
}
}
if
(
countErrorByPhone
>
Constants
.
Image_Need_Count
)
{
if
(
countErrorByPhone
>
Constants
.
Image_Need_Count
)
{
...
@@ -92,7 +92,7 @@ public class CaptchaFiniteValidateAdvisor {
...
@@ -92,7 +92,7 @@ public class CaptchaFiniteValidateAdvisor {
String
captchaId
=
Optional
.
ofNullable
(
request
.
getParameter
(
Constants
.
QG_CAPTCHA_ID
)).
orElse
(
""
);
String
captchaId
=
Optional
.
ofNullable
(
request
.
getParameter
(
Constants
.
QG_CAPTCHA_ID
)).
orElse
(
""
);
String
captchaValue
=
request
.
getParameter
(
Constants
.
QG_CAPTCHA_VALUE
);
String
captchaValue
=
request
.
getParameter
(
Constants
.
QG_CAPTCHA_VALUE
);
if
(
shouldSkipCaptchaValidate
(
registerFrom
,
captchaId
,
captchaValue
))
{
if
(
shouldSkipCaptchaValidate
(
registerFrom
,
captchaId
,
captchaValue
))
{
LOGGER
.
info
(
"使用超级图形验证码校验, registerFrom={}, clientIp={}"
,
registerFrom
,
I
P
Util
.
getRemoteIP
(
request
));
LOGGER
.
info
(
"使用超级图形验证码校验, registerFrom={}, clientIp={}"
,
registerFrom
,
I
p
Util
.
getRemoteIP
(
request
));
return
pjp
.
proceed
();
return
pjp
.
proceed
();
}
}
if
(
StringUtils
.
isNotBlank
(
captchaValue
))
{
if
(
StringUtils
.
isNotBlank
(
captchaValue
))
{
...
...
src/main/java/cn/quantgroup/xyqb/aspect/captcha/CaptchaNewValidateAdvisor.java
View file @
63c9a97c
...
@@ -5,7 +5,7 @@ import cn.quantgroup.xyqb.model.ClientType;
...
@@ -5,7 +5,7 @@ import cn.quantgroup.xyqb.model.ClientType;
import
cn.quantgroup.xyqb.model.JsonResult
;
import
cn.quantgroup.xyqb.model.JsonResult
;
import
cn.quantgroup.xyqb.service.captcha.IGeetestCaptchaService
;
import
cn.quantgroup.xyqb.service.captcha.IGeetestCaptchaService
;
import
cn.quantgroup.xyqb.service.captcha.IQuantgroupCaptchaService
;
import
cn.quantgroup.xyqb.service.captcha.IQuantgroupCaptchaService
;
import
cn.quantgroup.xyqb.util.I
P
Util
;
import
cn.quantgroup.xyqb.util.I
p
Util
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.aspectj.lang.ProceedingJoinPoint
;
import
org.aspectj.lang.ProceedingJoinPoint
;
...
@@ -84,8 +84,8 @@ public class CaptchaNewValidateAdvisor {
...
@@ -84,8 +84,8 @@ public class CaptchaNewValidateAdvisor {
String
challenge
=
request
.
getParameter
(
Constants
.
FN_GEETEST_CHALLENGE
);
String
challenge
=
request
.
getParameter
(
Constants
.
FN_GEETEST_CHALLENGE
);
String
validate
=
request
.
getParameter
(
Constants
.
FN_GEETEST_VALIDATE
);
String
validate
=
request
.
getParameter
(
Constants
.
FN_GEETEST_VALIDATE
);
String
seccode
=
request
.
getParameter
(
Constants
.
FN_GEETEST_SECCODE
);
String
seccode
=
request
.
getParameter
(
Constants
.
FN_GEETEST_SECCODE
);
log
.
info
(
"Geetest - 极验二次校验, phoneNo:{}, uniqueKey:{}, clientType:{}, ip:{}, challenge:{}, validate:{}, seccode:{}"
,
phoneNo
,
uniqueKey
,
clientType
,
I
P
Util
.
getRemoteIP
(
request
),
challenge
,
validate
,
seccode
);
log
.
info
(
"Geetest - 极验二次校验, phoneNo:{}, uniqueKey:{}, clientType:{}, ip:{}, challenge:{}, validate:{}, seccode:{}"
,
phoneNo
,
uniqueKey
,
clientType
,
I
p
Util
.
getRemoteIP
(
request
),
challenge
,
validate
,
seccode
);
return
geetestCaptchaService
.
validGeetestCaptcha
(
uniqueKey
,
I
P
Util
.
getRemoteIP
(
request
),
ClientType
.
valueByName
(
clientType
),
challenge
,
validate
,
seccode
);
return
geetestCaptchaService
.
validGeetestCaptcha
(
uniqueKey
,
I
p
Util
.
getRemoteIP
(
request
),
ClientType
.
valueByName
(
clientType
),
challenge
,
validate
,
seccode
);
}
}
/**
/**
...
@@ -99,7 +99,7 @@ public class CaptchaNewValidateAdvisor {
...
@@ -99,7 +99,7 @@ public class CaptchaNewValidateAdvisor {
String
phoneNo
=
request
.
getParameter
(
Constants
.
PHONE_NO
);
String
phoneNo
=
request
.
getParameter
(
Constants
.
PHONE_NO
);
String
captchaId
=
Optional
.
ofNullable
(
request
.
getParameter
(
Constants
.
QG_CAPTCHA_ID
)).
orElse
(
""
);
String
captchaId
=
Optional
.
ofNullable
(
request
.
getParameter
(
Constants
.
QG_CAPTCHA_ID
)).
orElse
(
""
);
String
captchaValue
=
request
.
getParameter
(
Constants
.
QG_CAPTCHA_VALUE
);
String
captchaValue
=
request
.
getParameter
(
Constants
.
QG_CAPTCHA_VALUE
);
log
.
info
(
"Quantgroup - 图形验证码校验, phoneNo:{}, ip:{}, captchaId:{}, captchaValue:{}"
,
phoneNo
,
I
P
Util
.
getRemoteIP
(
request
),
captchaId
,
captchaValue
);
log
.
info
(
"Quantgroup - 图形验证码校验, phoneNo:{}, ip:{}, captchaId:{}, captchaValue:{}"
,
phoneNo
,
I
p
Util
.
getRemoteIP
(
request
),
captchaId
,
captchaValue
);
return
quantgroupCaptchaService
.
validQuantgroupCaptcha
(
captchaId
,
captchaValue
);
return
quantgroupCaptchaService
.
validQuantgroupCaptcha
(
captchaId
,
captchaValue
);
}
}
...
...
src/main/java/cn/quantgroup/xyqb/aspect/captcha/CaptchaValidateAdvisor.java
View file @
63c9a97c
...
@@ -3,7 +3,7 @@ package cn.quantgroup.xyqb.aspect.captcha;
...
@@ -3,7 +3,7 @@ package cn.quantgroup.xyqb.aspect.captcha;
import
cn.quantgroup.xyqb.Constants
;
import
cn.quantgroup.xyqb.Constants
;
import
cn.quantgroup.xyqb.model.JsonResult
;
import
cn.quantgroup.xyqb.model.JsonResult
;
import
cn.quantgroup.xyqb.thirdparty.jcaptcha.AbstractManageableImageCaptchaService
;
import
cn.quantgroup.xyqb.thirdparty.jcaptcha.AbstractManageableImageCaptchaService
;
import
cn.quantgroup.xyqb.util.I
P
Util
;
import
cn.quantgroup.xyqb.util.I
p
Util
;
import
com.octo.captcha.service.CaptchaServiceException
;
import
com.octo.captcha.service.CaptchaServiceException
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.aspectj.lang.ProceedingJoinPoint
;
import
org.aspectj.lang.ProceedingJoinPoint
;
...
@@ -79,7 +79,7 @@ public class CaptchaValidateAdvisor {
...
@@ -79,7 +79,7 @@ public class CaptchaValidateAdvisor {
String
captchaId
=
Optional
.
ofNullable
(
request
.
getParameter
(
Constants
.
QG_CAPTCHA_ID
)).
orElse
(
""
);
String
captchaId
=
Optional
.
ofNullable
(
request
.
getParameter
(
Constants
.
QG_CAPTCHA_ID
)).
orElse
(
""
);
String
captchaValue
=
request
.
getParameter
(
Constants
.
QG_CAPTCHA_VALUE
);
String
captchaValue
=
request
.
getParameter
(
Constants
.
QG_CAPTCHA_VALUE
);
if
(
shouldSkipCaptchaValidate
(
registerFrom
,
captchaId
,
captchaValue
))
{
if
(
shouldSkipCaptchaValidate
(
registerFrom
,
captchaId
,
captchaValue
))
{
LOGGER
.
info
(
"使用超级图形验证码校验, registerFrom={}, clientIp={}"
,
registerFrom
,
I
P
Util
.
getRemoteIP
(
request
));
LOGGER
.
info
(
"使用超级图形验证码校验, registerFrom={}, clientIp={}"
,
registerFrom
,
I
p
Util
.
getRemoteIP
(
request
));
return
pjp
.
proceed
();
return
pjp
.
proceed
();
}
}
JsonResult
result
=
JsonResult
.
buildSuccessResult
(
"验证码不正确"
,
""
);
JsonResult
result
=
JsonResult
.
buildSuccessResult
(
"验证码不正确"
,
""
);
...
...
src/main/java/cn/quantgroup/xyqb/aspect/limit/PasswordFreeAccessValidateAdvisor.java
View file @
63c9a97c
...
@@ -5,7 +5,7 @@ import cn.quantgroup.xyqb.entity.User;
...
@@ -5,7 +5,7 @@ import cn.quantgroup.xyqb.entity.User;
import
cn.quantgroup.xyqb.model.JsonResult
;
import
cn.quantgroup.xyqb.model.JsonResult
;
import
cn.quantgroup.xyqb.model.session.SessionStruct
;
import
cn.quantgroup.xyqb.model.session.SessionStruct
;
import
cn.quantgroup.xyqb.session.XyqbSessionContextHolder
;
import
cn.quantgroup.xyqb.session.XyqbSessionContextHolder
;
import
cn.quantgroup.xyqb.util.I
P
Util
;
import
cn.quantgroup.xyqb.util.I
p
Util
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.aspectj.lang.ProceedingJoinPoint
;
import
org.aspectj.lang.ProceedingJoinPoint
;
import
org.aspectj.lang.annotation.Around
;
import
org.aspectj.lang.annotation.Around
;
...
@@ -65,7 +65,7 @@ public class PasswordFreeAccessValidateAdvisor {
...
@@ -65,7 +65,7 @@ public class PasswordFreeAccessValidateAdvisor {
*/
*/
private
boolean
tokenValid
(
HttpServletRequest
request
)
{
private
boolean
tokenValid
(
HttpServletRequest
request
)
{
Objects
.
requireNonNull
(
request
,
"无效请求"
);
Objects
.
requireNonNull
(
request
,
"无效请求"
);
String
clientIp
=
I
P
Util
.
getRemoteIP
(
request
);
String
clientIp
=
I
p
Util
.
getRemoteIP
(
request
);
Set
<
String
>
paramKeys
=
request
.
getParameterMap
().
keySet
();
Set
<
String
>
paramKeys
=
request
.
getParameterMap
().
keySet
();
if
(!
paramKeys
.
contains
(
Constants
.
PHONE_NO
)
&&
!
paramKeys
.
contains
(
USER_ID
))
{
if
(!
paramKeys
.
contains
(
Constants
.
PHONE_NO
)
&&
!
paramKeys
.
contains
(
USER_ID
))
{
LOGGER
.
info
(
"非法请求 - 缺少参数, paramKeys={}, clientIp={}"
,
paramKeys
,
clientIp
);
LOGGER
.
info
(
"非法请求 - 缺少参数, paramKeys={}, clientIp={}"
,
paramKeys
,
clientIp
);
...
...
src/main/java/cn/quantgroup/xyqb/aspect/lock/PasswordErrorFiniteValidateAdvisor.java
View file @
63c9a97c
...
@@ -3,7 +3,7 @@ package cn.quantgroup.xyqb.aspect.lock;
...
@@ -3,7 +3,7 @@ package cn.quantgroup.xyqb.aspect.lock;
import
cn.quantgroup.xyqb.Constants
;
import
cn.quantgroup.xyqb.Constants
;
import
cn.quantgroup.xyqb.model.JsonResult
;
import
cn.quantgroup.xyqb.model.JsonResult
;
import
cn.quantgroup.xyqb.util.I
P
Util
;
import
cn.quantgroup.xyqb.util.I
p
Util
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.aspectj.lang.ProceedingJoinPoint
;
import
org.aspectj.lang.ProceedingJoinPoint
;
import
org.aspectj.lang.annotation.Around
;
import
org.aspectj.lang.annotation.Around
;
...
@@ -56,9 +56,9 @@ public class PasswordErrorFiniteValidateAdvisor {
...
@@ -56,9 +56,9 @@ public class PasswordErrorFiniteValidateAdvisor {
private
Object
doFiniteValidate
(
ProceedingJoinPoint
pjp
)
throws
Throwable
{
private
Object
doFiniteValidate
(
ProceedingJoinPoint
pjp
)
throws
Throwable
{
HttpServletRequest
request
=
((
ServletRequestAttributes
)
RequestContextHolder
.
getRequestAttributes
()).
getRequest
();
HttpServletRequest
request
=
((
ServletRequestAttributes
)
RequestContextHolder
.
getRequestAttributes
()).
getRequest
();
// 客户端IP
// 客户端IP
String
clientIp
=
I
P
Util
.
getRemoteIP
(
request
);
String
clientIp
=
I
p
Util
.
getRemoteIP
(
request
);
// 白名单
// 白名单
if
(
I
P
Util
.
whiteOf
(
clientIp
))
{
if
(
I
p
Util
.
whiteOf
(
clientIp
))
{
return
pjp
.
proceed
();
return
pjp
.
proceed
();
}
}
// 补充白名单
// 补充白名单
...
@@ -66,19 +66,19 @@ public class PasswordErrorFiniteValidateAdvisor {
...
@@ -66,19 +66,19 @@ public class PasswordErrorFiniteValidateAdvisor {
return
pjp
.
proceed
();
return
pjp
.
proceed
();
}
}
// 入口服务器IP
// 入口服务器IP
if
(
StringUtils
.
startsWith
(
clientIp
,
I
P
Util
.
IO_IP
))
{
if
(
StringUtils
.
startsWith
(
clientIp
,
I
p
Util
.
IO_IP
))
{
return
pjp
.
proceed
();
return
pjp
.
proceed
();
}
}
// 黑名单
// 黑名单
if
(
redisTemplate
.
opsForSet
().
isMember
(
Constants
.
IPV4_LOCK_BLACK
,
clientIp
))
{
if
(
redisTemplate
.
opsForSet
().
isMember
(
Constants
.
IPV4_LOCK_BLACK
,
clientIp
))
{
I
P
Util
.
logIp
(
LOGGER
,
request
);
I
p
Util
.
logIp
(
LOGGER
,
request
);
LOGGER
.
info
(
"Lock_ipv4: black ip access:{}"
,
clientIp
);
LOGGER
.
info
(
"Lock_ipv4: black ip access:{}"
,
clientIp
);
return
JsonResult
.
buildErrorStateResult
(
"登录失败"
,
null
);
return
JsonResult
.
buildErrorStateResult
(
"登录失败"
,
null
);
}
}
String
lockIpv4Key
=
getLockIpv4Key
(
clientIp
);
String
lockIpv4Key
=
getLockIpv4Key
(
clientIp
);
String
lock
=
redisTemplate
.
opsForValue
().
get
(
lockIpv4Key
);
String
lock
=
redisTemplate
.
opsForValue
().
get
(
lockIpv4Key
);
if
(
Objects
.
equals
(
Boolean
.
TRUE
.
toString
(),
lock
))
{
if
(
Objects
.
equals
(
Boolean
.
TRUE
.
toString
(),
lock
))
{
I
P
Util
.
logIp
(
LOGGER
,
request
);
I
p
Util
.
logIp
(
LOGGER
,
request
);
LOGGER
.
info
(
"Lock_ipv4: locked ip access:{}"
,
clientIp
);
LOGGER
.
info
(
"Lock_ipv4: locked ip access:{}"
,
clientIp
);
return
JsonResult
.
buildErrorStateResult
(
"登录失败"
,
null
);
return
JsonResult
.
buildErrorStateResult
(
"登录失败"
,
null
);
}
}
...
...
src/main/java/cn/quantgroup/xyqb/aspect/logcaller/LogCallHttpAspect.java
View file @
63c9a97c
package
cn
.
quantgroup
.
xyqb
.
aspect
.
logcaller
;
package
cn
.
quantgroup
.
xyqb
.
aspect
.
logcaller
;
import
cn.quantgroup.xyqb.util.I
P
Util
;
import
cn.quantgroup.xyqb.util.I
p
Util
;
import
com.google.common.base.Stopwatch
;
import
com.google.common.base.Stopwatch
;
import
org.aspectj.lang.ProceedingJoinPoint
;
import
org.aspectj.lang.ProceedingJoinPoint
;
import
org.aspectj.lang.annotation.Around
;
import
org.aspectj.lang.annotation.Around
;
...
@@ -38,7 +38,7 @@ public class LogCallHttpAspect {
...
@@ -38,7 +38,7 @@ public class LogCallHttpAspect {
Stopwatch
stopwatch
=
Stopwatch
.
createStarted
();
Stopwatch
stopwatch
=
Stopwatch
.
createStarted
();
ServletRequestAttributes
attrs
=
(
ServletRequestAttributes
)
RequestContextHolder
.
getRequestAttributes
();
ServletRequestAttributes
attrs
=
(
ServletRequestAttributes
)
RequestContextHolder
.
getRequestAttributes
();
HttpServletRequest
request
=
attrs
.
getRequest
();
HttpServletRequest
request
=
attrs
.
getRequest
();
String
remoteIP
=
I
P
Util
.
getRemoteIP
(
request
);
String
remoteIP
=
I
p
Util
.
getRemoteIP
(
request
);
Object
[]
args
=
pjp
.
getArgs
();
Object
[]
args
=
pjp
.
getArgs
();
boolean
hasException
=
false
;
boolean
hasException
=
false
;
Object
result
;
Object
result
;
...
...
src/main/java/cn/quantgroup/xyqb/controller/ExceptionHandlingController.java
View file @
63c9a97c
...
@@ -5,7 +5,7 @@ import cn.quantgroup.xyqb.exception.UserNotExistException;
...
@@ -5,7 +5,7 @@ import cn.quantgroup.xyqb.exception.UserNotExistException;
import
cn.quantgroup.xyqb.exception.VerificationCodeErrorException
;
import
cn.quantgroup.xyqb.exception.VerificationCodeErrorException
;
import
cn.quantgroup.xyqb.exception.WechatRelateUserException
;
import
cn.quantgroup.xyqb.exception.WechatRelateUserException
;
import
cn.quantgroup.xyqb.model.JsonResult
;
import
cn.quantgroup.xyqb.model.JsonResult
;
import
cn.quantgroup.xyqb.util.I
P
Util
;
import
cn.quantgroup.xyqb.util.I
p
Util
;
import
org.slf4j.Logger
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.http.HttpStatus
;
import
org.springframework.http.HttpStatus
;
...
@@ -40,7 +40,7 @@ public class ExceptionHandlingController implements IBaseController {
...
@@ -40,7 +40,7 @@ public class ExceptionHandlingController implements IBaseController {
*/
*/
@ExceptionHandler
(
PasswordErrorLimitException
.
class
)
@ExceptionHandler
(
PasswordErrorLimitException
.
class
)
public
JsonResult
passwordErrorLimitException
(
PasswordErrorLimitException
vce
)
{
public
JsonResult
passwordErrorLimitException
(
PasswordErrorLimitException
vce
)
{
LOGGER
.
info
(
"throw PasswordErrorLimitException,msg={},businessCode={}, clientIp={}"
,
vce
.
getMessage
(),
2L
,
I
P
Util
.
getRemoteIP
(
getRequest
()));
LOGGER
.
info
(
"throw PasswordErrorLimitException,msg={},businessCode={}, clientIp={}"
,
vce
.
getMessage
(),
2L
,
I
p
Util
.
getRemoteIP
(
getRequest
()));
return
JsonResult
.
buildErrorStateResult
(
vce
.
getMessage
(),
null
,
2L
);
return
JsonResult
.
buildErrorStateResult
(
vce
.
getMessage
(),
null
,
2L
);
}
}
...
@@ -52,7 +52,7 @@ public class ExceptionHandlingController implements IBaseController {
...
@@ -52,7 +52,7 @@ public class ExceptionHandlingController implements IBaseController {
*/
*/
@ExceptionHandler
(
VerificationCodeErrorException
.
class
)
@ExceptionHandler
(
VerificationCodeErrorException
.
class
)
public
JsonResult
verificationCodeErrorException
(
VerificationCodeErrorException
vce
)
{
public
JsonResult
verificationCodeErrorException
(
VerificationCodeErrorException
vce
)
{
LOGGER
.
info
(
"throw VerificationCodeErrorException,msg={},businessCode={}, clientIp={}"
,
vce
.
getMessage
(),
1L
,
I
P
Util
.
getRemoteIP
(
getRequest
()));
LOGGER
.
info
(
"throw VerificationCodeErrorException,msg={},businessCode={}, clientIp={}"
,
vce
.
getMessage
(),
1L
,
I
p
Util
.
getRemoteIP
(
getRequest
()));
return
JsonResult
.
buildErrorStateResult
(
vce
.
getMessage
(),
null
,
1L
);
return
JsonResult
.
buildErrorStateResult
(
vce
.
getMessage
(),
null
,
1L
);
}
}
...
...
src/main/java/cn/quantgroup/xyqb/controller/IBaseController.java
View file @
63c9a97c
...
@@ -2,7 +2,7 @@ package cn.quantgroup.xyqb.controller;
...
@@ -2,7 +2,7 @@ package cn.quantgroup.xyqb.controller;
import
cn.quantgroup.xyqb.entity.User
;
import
cn.quantgroup.xyqb.entity.User
;
import
cn.quantgroup.xyqb.model.session.SessionStruct
;
import
cn.quantgroup.xyqb.model.session.SessionStruct
;
import
cn.quantgroup.xyqb.util.I
P
Util
;
import
cn.quantgroup.xyqb.util.I
p
Util
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.web.context.request.RequestContextHolder
;
import
org.springframework.web.context.request.RequestContextHolder
;
import
org.springframework.web.context.request.ServletRequestAttributes
;
import
org.springframework.web.context.request.ServletRequestAttributes
;
...
@@ -56,7 +56,7 @@ public interface IBaseController {
...
@@ -56,7 +56,7 @@ public interface IBaseController {
default
String
getIp
()
{
default
String
getIp
()
{
HttpServletRequest
request
=
getRequest
();
HttpServletRequest
request
=
getRequest
();
return
I
P
Util
.
getRemoteIP
(
request
);
return
I
p
Util
.
getRemoteIP
(
request
);
}
}
default
String
getProtocol
()
{
default
String
getProtocol
()
{
...
...
src/main/java/cn/quantgroup/xyqb/controller/external/UserController.java
View file @
63c9a97c
...
@@ -24,7 +24,7 @@ import cn.quantgroup.xyqb.service.user.IUserDetailService;
...
@@ -24,7 +24,7 @@ import cn.quantgroup.xyqb.service.user.IUserDetailService;
import
cn.quantgroup.xyqb.service.user.IUserService
;
import
cn.quantgroup.xyqb.service.user.IUserService
;
import
cn.quantgroup.xyqb.service.user.UserCenterService
;
import
cn.quantgroup.xyqb.service.user.UserCenterService
;
import
cn.quantgroup.xyqb.service.wechat.IWechatService
;
import
cn.quantgroup.xyqb.service.wechat.IWechatService
;
import
cn.quantgroup.xyqb.util.I
P
Util
;
import
cn.quantgroup.xyqb.util.I
p
Util
;
import
cn.quantgroup.xyqb.util.MqUtils
;
import
cn.quantgroup.xyqb.util.MqUtils
;
import
cn.quantgroup.xyqb.util.PasswordUtil
;
import
cn.quantgroup.xyqb.util.PasswordUtil
;
import
cn.quantgroup.xyqb.util.ValidationUtil
;
import
cn.quantgroup.xyqb.util.ValidationUtil
;
...
@@ -528,7 +528,7 @@ public class UserController implements IBaseController {
...
@@ -528,7 +528,7 @@ public class UserController implements IBaseController {
*/
*/
private
boolean
wechatRelateUserIfNecessary
(
User
user
,
HttpServletRequest
request
)
{
private
boolean
wechatRelateUserIfNecessary
(
User
user
,
HttpServletRequest
request
)
{
Objects
.
requireNonNull
(
request
,
"无效请求"
);
Objects
.
requireNonNull
(
request
,
"无效请求"
);
String
clientIp
=
I
P
Util
.
getRemoteIP
(
request
);
String
clientIp
=
I
p
Util
.
getRemoteIP
(
request
);
Set
<
String
>
paramKeys
=
request
.
getParameterMap
().
keySet
();
Set
<
String
>
paramKeys
=
request
.
getParameterMap
().
keySet
();
boolean
ready
=
paramKeys
.
contains
(
Constants
.
WECHAT_OPEN_ID
);
boolean
ready
=
paramKeys
.
contains
(
Constants
.
WECHAT_OPEN_ID
);
if
(!
ready
)
{
if
(!
ready
)
{
...
...
src/main/java/cn/quantgroup/xyqb/controller/external/captcha/NewCaptchaController.java
View file @
63c9a97c
...
@@ -5,7 +5,7 @@ import cn.quantgroup.xyqb.model.ClientType;
...
@@ -5,7 +5,7 @@ import cn.quantgroup.xyqb.model.ClientType;
import
cn.quantgroup.xyqb.model.JsonResult
;
import
cn.quantgroup.xyqb.model.JsonResult
;
import
cn.quantgroup.xyqb.service.captcha.IGeetestCaptchaService
;
import
cn.quantgroup.xyqb.service.captcha.IGeetestCaptchaService
;
import
cn.quantgroup.xyqb.service.captcha.IQuantgroupCaptchaService
;
import
cn.quantgroup.xyqb.service.captcha.IQuantgroupCaptchaService
;
import
cn.quantgroup.xyqb.util.I
P
Util
;
import
cn.quantgroup.xyqb.util.I
p
Util
;
import
cn.quantgroup.xyqb.util.PasswordUtil
;
import
cn.quantgroup.xyqb.util.PasswordUtil
;
import
cn.quantgroup.xyqb.util.ValidationUtil
;
import
cn.quantgroup.xyqb.util.ValidationUtil
;
import
io.swagger.annotations.ApiOperation
;
import
io.swagger.annotations.ApiOperation
;
...
@@ -41,7 +41,7 @@ public class NewCaptchaController {
...
@@ -41,7 +41,7 @@ public class NewCaptchaController {
@RequestMapping
(
value
=
"/captcha/new"
)
@RequestMapping
(
value
=
"/captcha/new"
)
@ApiOperation
(
value
=
"获取新图形验证码"
,
notes
=
"获取新图形验证码"
,
httpMethod
=
"POST"
)
@ApiOperation
(
value
=
"获取新图形验证码"
,
notes
=
"获取新图形验证码"
,
httpMethod
=
"POST"
)
public
JsonResult
getCaptcha
(
String
phoneNo
,
String
clientType
,
HttpServletRequest
request
)
{
public
JsonResult
getCaptcha
(
String
phoneNo
,
String
clientType
,
HttpServletRequest
request
)
{
String
remoteIp
=
I
P
Util
.
getRemoteIP
(
request
);
String
remoteIp
=
I
p
Util
.
getRemoteIP
(
request
);
log
.
info
(
"获取验证码, phoneNo:{}, clientType:{}, ip:{}, verifyType-qg:{}"
,
phoneNo
,
clientType
,
remoteIp
,
geetestClose
);
log
.
info
(
"获取验证码, phoneNo:{}, clientType:{}, ip:{}, verifyType-qg:{}"
,
phoneNo
,
clientType
,
remoteIp
,
geetestClose
);
if
(
StringUtils
.
isNotBlank
(
phoneNo
)
&&
!
ValidationUtil
.
validatePhoneNo
(
phoneNo
))
{
if
(
StringUtils
.
isNotBlank
(
phoneNo
)
&&
!
ValidationUtil
.
validatePhoneNo
(
phoneNo
))
{
return
JsonResult
.
buildErrorStateResult
(
"手机号格式错误"
,
null
);
return
JsonResult
.
buildErrorStateResult
(
"手机号格式错误"
,
null
);
...
...
src/main/java/cn/quantgroup/xyqb/controller/external/sms/SmsController.java
View file @
63c9a97c
...
@@ -9,7 +9,7 @@ import cn.quantgroup.xyqb.model.JsonResult;
...
@@ -9,7 +9,7 @@ import cn.quantgroup.xyqb.model.JsonResult;
import
cn.quantgroup.xyqb.model.sms.SmsMerchant
;
import
cn.quantgroup.xyqb.model.sms.SmsMerchant
;
import
cn.quantgroup.xyqb.service.sms.ISmsService
;
import
cn.quantgroup.xyqb.service.sms.ISmsService
;
import
cn.quantgroup.xyqb.util.DateUtils
;
import
cn.quantgroup.xyqb.util.DateUtils
;
import
cn.quantgroup.xyqb.util.I
P
Util
;
import
cn.quantgroup.xyqb.util.I
p
Util
;
import
cn.quantgroup.xyqb.util.ValidationUtil
;
import
cn.quantgroup.xyqb.util.ValidationUtil
;
import
org.apache.commons.lang3.RandomStringUtils
;
import
org.apache.commons.lang3.RandomStringUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.commons.lang3.StringUtils
;
...
@@ -384,7 +384,7 @@ public class SmsController implements IBaseController {
...
@@ -384,7 +384,7 @@ public class SmsController implements IBaseController {
return
JsonResult
.
buildErrorStateResult
(
"您设备已经达到获取今天验证码上限"
,
null
);
return
JsonResult
.
buildErrorStateResult
(
"您设备已经达到获取今天验证码上限"
,
null
);
}
}
// IP上限检查
// IP上限检查
if
(!
I
P
Util
.
whiteOf
(
clientIp
)
&&
getIPVerificationCount
>
IP_MAX_PER_DAY
)
{
if
(!
I
p
Util
.
whiteOf
(
clientIp
)
&&
getIPVerificationCount
>
IP_MAX_PER_DAY
)
{
LOGGER
.
info
(
"您当前ip已经达到获取今天短信验证码上限:ip:{},count:{}"
,
clientIp
,
getIPVerificationCount
);
LOGGER
.
info
(
"您当前ip已经达到获取今天短信验证码上限:ip:{},count:{}"
,
clientIp
,
getIPVerificationCount
);
return
JsonResult
.
buildErrorStateResult
(
"您当前ip已经达到获取今天短信验证码上限"
,
null
);
return
JsonResult
.
buildErrorStateResult
(
"您当前ip已经达到获取今天短信验证码上限"
,
null
);
}
}
...
@@ -465,7 +465,7 @@ public class SmsController implements IBaseController {
...
@@ -465,7 +465,7 @@ public class SmsController implements IBaseController {
return
JsonResult
.
buildErrorStateResult
(
"您设备已经达到获取今天语音验证码上限"
,
null
);
return
JsonResult
.
buildErrorStateResult
(
"您设备已经达到获取今天语音验证码上限"
,
null
);
}
}
// IP上限检查
// IP上限检查
if
(!
I
P
Util
.
whiteOf
(
clientIp
)
&&
getIPVerificationCount
>
IP_MAX_PER_DAY
)
{
if
(!
I
p
Util
.
whiteOf
(
clientIp
)
&&
getIPVerificationCount
>
IP_MAX_PER_DAY
)
{
LOGGER
.
info
(
"您当前ip已经达到获取今天短信验证码上限:ip:{},count:{}"
,
clientIp
,
getIPVerificationCount
);
LOGGER
.
info
(
"您当前ip已经达到获取今天短信验证码上限:ip:{},count:{}"
,
clientIp
,
getIPVerificationCount
);
return
JsonResult
.
buildErrorStateResult
(
"您当前ip已经达到获取今天语音验证码上限"
,
null
);
return
JsonResult
.
buildErrorStateResult
(
"您当前ip已经达到获取今天语音验证码上限"
,
null
);
}
}
...
...
src/main/java/cn/quantgroup/xyqb/controller/internal/user/AppController.java
View file @
63c9a97c
...
@@ -13,7 +13,7 @@ import cn.quantgroup.xyqb.service.merchant.IMerchantService;
...
@@ -13,7 +13,7 @@ import cn.quantgroup.xyqb.service.merchant.IMerchantService;
import
cn.quantgroup.xyqb.service.register.IUserRegisterService
;
import
cn.quantgroup.xyqb.service.register.IUserRegisterService
;
import
cn.quantgroup.xyqb.service.session.ISessionService
;
import
cn.quantgroup.xyqb.service.session.ISessionService
;
import
cn.quantgroup.xyqb.service.user.IUserService
;
import
cn.quantgroup.xyqb.service.user.IUserService
;
import
cn.quantgroup.xyqb.util.I
P
Util
;
import
cn.quantgroup.xyqb.util.I
p
Util
;
import
cn.quantgroup.xyqb.util.ValidationUtil
;
import
cn.quantgroup.xyqb.util.ValidationUtil
;
import
io.swagger.annotations.ApiOperation
;
import
io.swagger.annotations.ApiOperation
;
import
org.slf4j.Logger
;
import
org.slf4j.Logger
;
...
@@ -77,7 +77,7 @@ public class AppController implements IBaseController {
...
@@ -77,7 +77,7 @@ public class AppController implements IBaseController {
if
(!
ValidationUtil
.
validatePhoneNo
(
phoneNo
))
{
if
(!
ValidationUtil
.
validatePhoneNo
(
phoneNo
))
{
return
JsonResult
.
buildErrorStateResult
(
USER_ERROR_OR_PASSWORD_ERROR
,
null
);
return
JsonResult
.
buildErrorStateResult
(
USER_ERROR_OR_PASSWORD_ERROR
,
null
);
}
}
LOGGER
.
info
(
"第三方用户登录 [AppController] login --> loginFrom:{},channelId:{},btRegisterChannelId:{} requestIp:{},idNo:{},name:{}"
,
registerFrom
,
channelId
,
btRegisterChannelId
,
I
P
Util
.
getRemoteIP
(
request
),
idNo
,
name
);
LOGGER
.
info
(
"第三方用户登录 [AppController] login --> loginFrom:{},channelId:{},btRegisterChannelId:{} requestIp:{},idNo:{},name:{}"
,
registerFrom
,
channelId
,
btRegisterChannelId
,
I
p
Util
.
getRemoteIP
(
request
),
idNo
,
name
);
User
user
=
userService
.
findByPhoneInDb
(
phoneNo
);
User
user
=
userService
.
findByPhoneInDb
(
phoneNo
);
if
(
user
==
null
)
{
if
(
user
==
null
)
{
user
=
userRegisterService
.
register
(
registerFrom
,
phoneNo
,
idNo
,
name
,
channelId
,
btRegisterChannelId
);
user
=
userRegisterService
.
register
(
registerFrom
,
phoneNo
,
idNo
,
name
,
channelId
,
btRegisterChannelId
);
...
@@ -128,7 +128,7 @@ public class AppController implements IBaseController {
...
@@ -128,7 +128,7 @@ public class AppController implements IBaseController {
if
(!
ValidationUtil
.
validatePhoneNo
(
phoneNo
))
{
if
(!
ValidationUtil
.
validatePhoneNo
(
phoneNo
))
{
return
JsonResult
.
buildErrorStateResult
(
USER_ERROR_OR_PASSWORD_ERROR
,
null
);
return
JsonResult
.
buildErrorStateResult
(
USER_ERROR_OR_PASSWORD_ERROR
,
null
);
}
}
LOGGER
.
info
(
"第三方用户登录 [AppController] loginSuper --> loginFrom:{},phoneNo:{},appChannel:{},channelId:{},btRegisterChannelId:{} requestIp:{},idNo:{},name:{}"
,
registerFrom
,
phoneNo
,
appChannel
,
channelId
,
btRegisterChannelId
,
I
P
Util
.
getRemoteIP
(
request
),
idNo
,
name
);
LOGGER
.
info
(
"第三方用户登录 [AppController] loginSuper --> loginFrom:{},phoneNo:{},appChannel:{},channelId:{},btRegisterChannelId:{} requestIp:{},idNo:{},name:{}"
,
registerFrom
,
phoneNo
,
appChannel
,
channelId
,
btRegisterChannelId
,
I
p
Util
.
getRemoteIP
(
request
),
idNo
,
name
);
User
user
=
userService
.
findByPhoneInDb
(
phoneNo
);
User
user
=
userService
.
findByPhoneInDb
(
phoneNo
);
if
(
user
==
null
)
{
if
(
user
==
null
)
{
try
{
try
{
...
@@ -187,7 +187,7 @@ public class AppController implements IBaseController {
...
@@ -187,7 +187,7 @@ public class AppController implements IBaseController {
if
(!
ValidationUtil
.
validatePhoneNo
(
phoneNo
))
{
if
(!
ValidationUtil
.
validatePhoneNo
(
phoneNo
))
{
return
JsonResult
.
buildErrorStateResult
(
USER_ERROR_OR_PASSWORD_ERROR
,
null
);
return
JsonResult
.
buildErrorStateResult
(
USER_ERROR_OR_PASSWORD_ERROR
,
null
);
}
}
LOGGER
.
info
(
"第三方用户登录 [AppController] login2 --> loginFrom:{},channelId:{}, requestIp:{}"
,
registerFrom
,
channelId
,
I
P
Util
.
getRemoteIP
(
request
));
LOGGER
.
info
(
"第三方用户登录 [AppController] login2 --> loginFrom:{},channelId:{}, requestIp:{}"
,
registerFrom
,
channelId
,
I
p
Util
.
getRemoteIP
(
request
));
User
user
=
userService
.
findByPhoneInDb
(
phoneNo
);
User
user
=
userService
.
findByPhoneInDb
(
phoneNo
);
if
(
user
==
null
)
{
if
(
user
==
null
)
{
return
JsonResult
.
buildErrorStateResult
(
USER_ERROR_OR_PASSWORD_ERROR
,
null
);
return
JsonResult
.
buildErrorStateResult
(
USER_ERROR_OR_PASSWORD_ERROR
,
null
);
...
...
src/main/java/cn/quantgroup/xyqb/controller/internal/user/InnerController.java
View file @
63c9a97c
...
@@ -411,7 +411,7 @@ public class InnerController implements IBaseController {
...
@@ -411,7 +411,7 @@ public class InnerController implements IBaseController {
return
JsonResult
.
buildErrorStateResult
(
"userId为空"
,
null
);
return
JsonResult
.
buildErrorStateResult
(
"userId为空"
,
null
);
}
}
if
(
StringUtils
.
isNotBlank
(
qq
))
{
if
(
StringUtils
.
isNotBlank
(
qq
))
{
userDetailService
.
updateUserQ
Q
(
userId
,
qq
);
userDetailService
.
updateUserQ
q
(
userId
,
qq
);
}
}
if
(
StringUtils
.
isNotBlank
(
email
))
{
if
(
StringUtils
.
isNotBlank
(
email
))
{
userDetailService
.
updateUserEmail
(
userId
,
email
);
userDetailService
.
updateUserEmail
(
userId
,
email
);
...
@@ -425,7 +425,7 @@ public class InnerController implements IBaseController {
...
@@ -425,7 +425,7 @@ public class InnerController implements IBaseController {
if
(
StringUtils
.
isEmpty
(
qq
)
||
userId
==
null
||
userId
==
0L
)
{
if
(
StringUtils
.
isEmpty
(
qq
)
||
userId
==
null
||
userId
==
0L
)
{
return
JsonResult
.
buildErrorStateResult
(
"参数校验失败,qq或用户id为空"
,
null
);
return
JsonResult
.
buildErrorStateResult
(
"参数校验失败,qq或用户id为空"
,
null
);
}
}
userDetailService
.
updateUserQ
Q
(
userId
,
qq
);
userDetailService
.
updateUserQ
q
(
userId
,
qq
);
return
JsonResult
.
buildSuccessResult
(
null
,
null
);
return
JsonResult
.
buildSuccessResult
(
null
,
null
);
}
}
...
@@ -495,7 +495,7 @@ public class InnerController implements IBaseController {
...
@@ -495,7 +495,7 @@ public class InnerController implements IBaseController {
return
JsonResult
.
buildErrorStateResult
(
"修改联系人不存在"
,
null
);
return
JsonResult
.
buildErrorStateResult
(
"修改联系人不存在"
,
null
);
}
}
contact
=
contactService
.
saveContact
(
name
,
phoneNo
,
relation
,
contact
);
contact
=
contactService
.
saveContact
(
name
,
phoneNo
,
relation
,
contact
);
log
.
info
(
"修改后联系人信息:{},修改原因:{},操作ip:{}"
,
contact
,
reason
,
I
P
Util
.
getRemoteIP
(
request
));
log
.
info
(
"修改后联系人信息:{},修改原因:{},操作ip:{}"
,
contact
,
reason
,
I
p
Util
.
getRemoteIP
(
request
));
return
JsonResult
.
buildSuccessResult
(
"修改联系人成功"
,
contact
);
return
JsonResult
.
buildSuccessResult
(
"修改联系人成功"
,
contact
);
}
}
...
...
src/main/java/cn/quantgroup/xyqb/repository/IUserDetailRepository.java
View file @
63c9a97c
...
@@ -20,17 +20,17 @@ public interface IUserDetailRepository extends JpaRepository<UserDetail, Long>,
...
@@ -20,17 +20,17 @@ public interface IUserDetailRepository extends JpaRepository<UserDetail, Long>,
UserDetail
findByPhoneNo
(
String
phone
);
UserDetail
findByPhoneNo
(
String
phone
);
@Transactional
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Modifying
@Modifying
@Query
(
value
=
"update user_detail set qq = ?1 where user_id = ?2"
,
nativeQuery
=
true
)
@Query
(
value
=
"update user_detail set qq = ?1 where user_id = ?2"
,
nativeQuery
=
true
)
void
updateUserQ
Q
(
String
qq
,
Long
userId
);
void
updateUserQ
q
(
String
qq
,
Long
userId
);
@Transactional
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Modifying
@Modifying
@Query
(
value
=
"update user_detail set email = ?1 where user_id = ?2"
,
nativeQuery
=
true
)
@Query
(
value
=
"update user_detail set email = ?1 where user_id = ?2"
,
nativeQuery
=
true
)
void
updateUserEmail
(
String
email
,
Long
userId
);
void
updateUserEmail
(
String
email
,
Long
userId
);
@Transactional
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Modifying
@Modifying
@Query
(
value
=
"update user_detail set gender = ?1 where user_id = ?2"
,
nativeQuery
=
true
)
@Query
(
value
=
"update user_detail set gender = ?1 where user_id = ?2"
,
nativeQuery
=
true
)
void
updateGender
(
int
gender
,
Long
userId
);
void
updateGender
(
int
gender
,
Long
userId
);
...
@@ -42,11 +42,10 @@ public interface IUserDetailRepository extends JpaRepository<UserDetail, Long>,
...
@@ -42,11 +42,10 @@ public interface IUserDetailRepository extends JpaRepository<UserDetail, Long>,
*
*
* @return
* @return
*/
*/
@Modifying
@Query
(
value
=
"select * from user_detail where gender!=1 and gender!=2 and id_no is not null"
,
nativeQuery
=
true
)
@Query
(
value
=
"select * from user_detail where gender!=1 and gender!=2 and id_no is not null"
,
nativeQuery
=
true
)
List
<
UserDetail
>
selectUserDetailsBy
();
List
<
UserDetail
>
selectUserDetailsBy
();
@Transactional
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Modifying
@Modifying
@Query
(
value
=
"update user_detail set name=?1,id_no=?2,gender=?3 where phone_no=?4"
,
nativeQuery
=
true
)
@Query
(
value
=
"update user_detail set name=?1,id_no=?2,gender=?3 where phone_no=?4"
,
nativeQuery
=
true
)
int
updateNameAndIdNoByPhoneNo
(
String
name
,
String
idNo
,
int
gender
,
String
phoneNo
);
int
updateNameAndIdNoByPhoneNo
(
String
name
,
String
idNo
,
int
gender
,
String
phoneNo
);
...
...
src/main/java/cn/quantgroup/xyqb/repository/IUserQueryLogRepository.java
View file @
63c9a97c
...
@@ -14,7 +14,7 @@ import java.util.List;
...
@@ -14,7 +14,7 @@ import java.util.List;
*/
*/
public
interface
IUserQueryLogRepository
extends
JpaRepository
<
UserQueryLog
,
Long
>
{
public
interface
IUserQueryLogRepository
extends
JpaRepository
<
UserQueryLog
,
Long
>
{
@Transactional
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Modifying
@Modifying
@Query
(
nativeQuery
=
true
,
value
=
"select * from user_query_log ul where created_At between ?1 and ?2 limit ?3 ,?4 "
)
@Query
(
nativeQuery
=
true
,
value
=
"select * from user_query_log ul where created_At between ?1 and ?2 limit ?3 ,?4 "
)
List
<
UserQueryLog
>
findQueryLogCreatedAt
(
Date
beginDate
,
Date
endDate
,
Integer
pageId
,
Integer
pageSize
);
List
<
UserQueryLog
>
findQueryLogCreatedAt
(
Date
beginDate
,
Date
endDate
,
Integer
pageId
,
Integer
pageSize
);
...
...
src/main/java/cn/quantgroup/xyqb/repository/IUserRepository.java
View file @
63c9a97c
...
@@ -42,7 +42,7 @@ public interface IUserRepository extends JpaRepository<User, Long>, JpaSpecifica
...
@@ -42,7 +42,7 @@ public interface IUserRepository extends JpaRepository<User, Long>, JpaSpecifica
@Query
(
value
=
"select * from user where created_at>=?1 and created_at<?2 "
,
nativeQuery
=
true
)
@Query
(
value
=
"select * from user where created_at>=?1 and created_at<?2 "
,
nativeQuery
=
true
)
List
<
User
>
findRegisterUserByTime
(
String
beginTime
,
String
endTime
);
List
<
User
>
findRegisterUserByTime
(
String
beginTime
,
String
endTime
);
@Transactional
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Modifying
@Modifying
@Query
(
value
=
"update user set enable=?1 where phone_no=?2"
,
nativeQuery
=
true
)
@Query
(
value
=
"update user set enable=?1 where phone_no=?2"
,
nativeQuery
=
true
)
int
forbiddenUser
(
Boolean
enable
,
String
phoneNo
);
int
forbiddenUser
(
Boolean
enable
,
String
phoneNo
);
...
...
src/main/java/cn/quantgroup/xyqb/repository/IWeChatUserRepository.java
View file @
63c9a97c
...
@@ -28,7 +28,7 @@ public interface IWeChatUserRepository extends JpaRepository<WechatUserInfo, Lon
...
@@ -28,7 +28,7 @@ public interface IWeChatUserRepository extends JpaRepository<WechatUserInfo, Lon
* @param userId
* @param userId
* @return
* @return
*/
*/
@Transactional
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Modifying
@Modifying
@Query
(
value
=
"update wechat_userinfo set user_id=null,phone_no='*' where user_id=?1"
,
nativeQuery
=
true
)
@Query
(
value
=
"update wechat_userinfo set user_id=null,phone_no='*' where user_id=?1"
,
nativeQuery
=
true
)
int
dissociateByUserId
(
Long
userId
);
int
dissociateByUserId
(
Long
userId
);
...
@@ -41,7 +41,7 @@ public interface IWeChatUserRepository extends JpaRepository<WechatUserInfo, Lon
...
@@ -41,7 +41,7 @@ public interface IWeChatUserRepository extends JpaRepository<WechatUserInfo, Lon
* @param openId - 微信标识
* @param openId - 微信标识
* @return 记录更新行数
* @return 记录更新行数
*/
*/
@Transactional
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Modifying
@Modifying
@Query
(
value
=
"update wechat_userinfo set user_id=?1,phone_no=?2 where open_id=?3 and user_id is null"
,
nativeQuery
=
true
)
@Query
(
value
=
"update wechat_userinfo set user_id=?1,phone_no=?2 where open_id=?3 and user_id is null"
,
nativeQuery
=
true
)
int
relateUser
(
Long
userId
,
String
phoneNo
,
String
openId
);
int
relateUser
(
Long
userId
,
String
phoneNo
,
String
openId
);
...
...
src/main/java/cn/quantgroup/xyqb/service/http/impl/HttpServiceImpl.java
View file @
63c9a97c
...
@@ -2,7 +2,7 @@ package cn.quantgroup.xyqb.service.http.impl;
...
@@ -2,7 +2,7 @@ package cn.quantgroup.xyqb.service.http.impl;
import
cn.quantgroup.tech.brave.service.ITechHttpClient
;
import
cn.quantgroup.tech.brave.service.ITechHttpClient
;
import
cn.quantgroup.xyqb.service.http.IHttpService
;
import
cn.quantgroup.xyqb.service.http.IHttpService
;
import
cn.quantgroup.xyqb.util.
Utils
;
import
cn.quantgroup.xyqb.util.
PasswordUtil
;
import
com.google.common.collect.Maps
;
import
com.google.common.collect.Maps
;
import
org.apache.commons.codec.Charsets
;
import
org.apache.commons.codec.Charsets
;
import
org.apache.commons.collections.MapUtils
;
import
org.apache.commons.collections.MapUtils
;
...
@@ -108,7 +108,7 @@ public class HttpServiceImpl implements IHttpService {
...
@@ -108,7 +108,7 @@ public class HttpServiceImpl implements IHttpService {
}
}
String
method
=
requestBuilder
.
getMethod
();
String
method
=
requestBuilder
.
getMethod
();
LOGGER
.
info
(
"{}, uri:{}, headers:{}, parameters:{}"
,
method
,
uri
,
headers
,
StringUtils
.
substring
(
Utils
.
safeMap2Str
(
parameters
),
0
,
200
));
LOGGER
.
info
(
"{}, uri:{}, headers:{}, parameters:{}"
,
method
,
uri
,
headers
,
StringUtils
.
substring
(
PasswordUtil
.
filterPasswordToString
(
parameters
),
0
,
200
));
HttpEntity
httpEntity
=
null
;
HttpEntity
httpEntity
=
null
;
CloseableHttpResponse
httpResponse
=
null
;
CloseableHttpResponse
httpResponse
=
null
;
try
{
try
{
...
@@ -133,7 +133,7 @@ public class HttpServiceImpl implements IHttpService {
...
@@ -133,7 +133,7 @@ public class HttpServiceImpl implements IHttpService {
return
response
;
return
response
;
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
LOGGER
.
info
(
"{}, uri:{}, headers:{}, parameters:{}"
,
method
,
uri
,
headers
,
StringUtils
.
substring
(
Utils
.
safeMap2Str
(
parameters
),
0
,
200
),
e
);
LOGGER
.
info
(
"{}, uri:{}, headers:{}, parameters:{}"
,
method
,
uri
,
headers
,
StringUtils
.
substring
(
PasswordUtil
.
filterPasswordToString
(
parameters
),
0
,
200
),
e
);
return
null
;
return
null
;
}
finally
{
}
finally
{
EntityUtils
.
consumeQuietly
(
httpEntity
);
EntityUtils
.
consumeQuietly
(
httpEntity
);
...
...
src/main/java/cn/quantgroup/xyqb/service/user/IUserDetailService.java
View file @
63c9a97c
...
@@ -17,7 +17,7 @@ public interface IUserDetailService {
...
@@ -17,7 +17,7 @@ public interface IUserDetailService {
UserDetail
findByPhoneNo
(
String
phoneNo
);
UserDetail
findByPhoneNo
(
String
phoneNo
);
void
updateUserQ
Q
(
Long
userId
,
String
qq
);
void
updateUserQ
q
(
Long
userId
,
String
qq
);
void
updateUserEmail
(
Long
userId
,
String
email
);
void
updateUserEmail
(
Long
userId
,
String
email
);
...
...
src/main/java/cn/quantgroup/xyqb/service/user/impl/LockIpv4ServiceImpl.java
View file @
63c9a97c
...
@@ -5,7 +5,7 @@ import cn.quantgroup.xyqb.Constants;
...
@@ -5,7 +5,7 @@ import cn.quantgroup.xyqb.Constants;
import
cn.quantgroup.xyqb.exception.PasswordErrorLimitException
;
import
cn.quantgroup.xyqb.exception.PasswordErrorLimitException
;
import
cn.quantgroup.xyqb.service.user.ILockIpv4Service
;
import
cn.quantgroup.xyqb.service.user.ILockIpv4Service
;
import
cn.quantgroup.xyqb.util.DateUtils
;
import
cn.quantgroup.xyqb.util.DateUtils
;
import
cn.quantgroup.xyqb.util.I
P
Util
;
import
cn.quantgroup.xyqb.util.I
p
Util
;
import
cn.quantgroup.xyqb.util.ValidationUtil
;
import
cn.quantgroup.xyqb.util.ValidationUtil
;
import
org.apache.commons.lang.StringUtils
;
import
org.apache.commons.lang.StringUtils
;
import
org.slf4j.Logger
;
import
org.slf4j.Logger
;
...
@@ -57,7 +57,7 @@ public class LockIpv4ServiceImpl implements ILockIpv4Service {
...
@@ -57,7 +57,7 @@ public class LockIpv4ServiceImpl implements ILockIpv4Service {
*/
*/
@Override
@Override
public
void
countErrorByIpv4
(
String
ipv4
)
{
public
void
countErrorByIpv4
(
String
ipv4
)
{
if
(
ValidationUtil
.
validateIpv4
(
ipv4
)
&&
!
I
P
Util
.
whiteOf
(
ipv4
))
{
if
(
ValidationUtil
.
validateIpv4
(
ipv4
)
&&
!
I
p
Util
.
whiteOf
(
ipv4
))
{
String
ipv4Key
=
getErrorIpKey
(
ipv4
);
String
ipv4Key
=
getErrorIpKey
(
ipv4
);
if
(!
stringRedisTemplate
.
hasKey
(
ipv4Key
))
{
if
(!
stringRedisTemplate
.
hasKey
(
ipv4Key
))
{
// 计数周期1分钟
// 计数周期1分钟
...
@@ -98,7 +98,7 @@ public class LockIpv4ServiceImpl implements ILockIpv4Service {
...
@@ -98,7 +98,7 @@ public class LockIpv4ServiceImpl implements ILockIpv4Service {
*/
*/
@Override
@Override
public
void
countSuccessByIpv4
(
String
ipv4
)
{
public
void
countSuccessByIpv4
(
String
ipv4
)
{
if
(
ValidationUtil
.
validateIpv4
(
ipv4
)
&&
!
I
P
Util
.
whiteOf
(
ipv4
))
{
if
(
ValidationUtil
.
validateIpv4
(
ipv4
)
&&
!
I
p
Util
.
whiteOf
(
ipv4
))
{
String
ipv4Key
=
getSuccessIpKey
(
ipv4
);
String
ipv4Key
=
getSuccessIpKey
(
ipv4
);
if
(!
stringRedisTemplate
.
hasKey
(
ipv4Key
))
{
if
(!
stringRedisTemplate
.
hasKey
(
ipv4Key
))
{
// 计数周期1分钟
// 计数周期1分钟
...
...
src/main/java/cn/quantgroup/xyqb/service/user/impl/UserDetailServiceImpl.java
View file @
63c9a97c
...
@@ -68,8 +68,8 @@ public class UserDetailServiceImpl implements IUserDetailService {
...
@@ -68,8 +68,8 @@ public class UserDetailServiceImpl implements IUserDetailService {
}
}
@Override
@Override
public
void
updateUserQ
Q
(
Long
userId
,
String
qq
)
{
public
void
updateUserQ
q
(
Long
userId
,
String
qq
)
{
userDetailRepository
.
updateUserQ
Q
(
qq
,
userId
);
userDetailRepository
.
updateUserQ
q
(
qq
,
userId
);
}
}
@Override
@Override
...
...
src/main/java/cn/quantgroup/xyqb/service/user/impl/UserExtInfoServiceImpl.java
View file @
63c9a97c
...
@@ -25,7 +25,7 @@ public class UserExtInfoServiceImpl implements IUserExtInfoService {
...
@@ -25,7 +25,7 @@ public class UserExtInfoServiceImpl implements IUserExtInfoService {
}
}
@Override
@Override
@Transactional
@Transactional
(
rollbackFor
=
Exception
.
class
)
@CacheEvict
(
value
=
"userextinfocache"
,
key
=
"'extinfo' + #info.userId"
,
cacheManager
=
"cacheManager"
)
@CacheEvict
(
value
=
"userextinfocache"
,
key
=
"'extinfo' + #info.userId"
,
cacheManager
=
"cacheManager"
)
public
UserExtInfo
save
(
UserExtInfo
info
)
{
public
UserExtInfo
save
(
UserExtInfo
info
)
{
return
userExtInfoRepository
.
save
(
info
);
return
userExtInfoRepository
.
save
(
info
);
...
...
src/main/java/cn/quantgroup/xyqb/service/wechat/impl/WechatServiceImpl.java
View file @
63c9a97c
package
cn
.
quantgroup
.
xyqb
.
service
.
wechat
.
impl
;
package
cn
.
quantgroup
.
xyqb
.
service
.
wechat
.
impl
;
import
cn.quantgroup.xyqb.Constants
;
import
cn.quantgroup.xyqb.entity.WechatUserInfo
;
import
cn.quantgroup.xyqb.entity.WechatUserInfo
;
import
cn.quantgroup.xyqb.exception.WechatRelateUserException
;
import
cn.quantgroup.xyqb.exception.WechatRelateUserException
;
import
cn.quantgroup.xyqb.model.webchat.AccessTokenResponse
;
import
cn.quantgroup.xyqb.model.webchat.AccessTokenResponse
;
...
@@ -32,7 +33,6 @@ import java.util.concurrent.TimeUnit;
...
@@ -32,7 +33,6 @@ import java.util.concurrent.TimeUnit;
@Service
@Service
public
class
WechatServiceImpl
implements
IWechatService
{
public
class
WechatServiceImpl
implements
IWechatService
{
private
static
final
String
WECHAT_TOKEN_KEY_PREFIX
=
"wechat:token:"
;
private
static
final
String
WECHAT_TOKEN_KEY_PREFIX
=
"wechat:token:"
;
private
static
final
String
WECHAT_USERINFO_KEY_PREFIX
=
"wechat:userinfo:"
;
@Value
(
"${wechat.appid}"
)
@Value
(
"${wechat.appid}"
)
private
String
appId
;
private
String
appId
;
@Value
(
"${wechat.secret}"
)
@Value
(
"${wechat.secret}"
)
...
@@ -42,8 +42,6 @@ public class WechatServiceImpl implements IWechatService {
...
@@ -42,8 +42,6 @@ public class WechatServiceImpl implements IWechatService {
@Resource
@Resource
private
IHttpService
httpService
;
private
IHttpService
httpService
;
@Resource
@Resource
private
ISessionService
sessionService
;
@Resource
private
IWeChatUserRepository
weChatUserRepository
;
private
IWeChatUserRepository
weChatUserRepository
;
@Autowired
@Autowired
@Qualifier
(
"stringRedisTemplate"
)
@Qualifier
(
"stringRedisTemplate"
)
...
@@ -75,8 +73,8 @@ public class WechatServiceImpl implements IWechatService {
...
@@ -75,8 +73,8 @@ public class WechatServiceImpl implements IWechatService {
if
(
accessTokenResponse
==
null
)
{
if
(
accessTokenResponse
==
null
)
{
return
null
;
return
null
;
}
}
accessTokenResponse
.
setInitialTime
(
System
.
currentTimeMillis
()
-
10000
);
accessTokenResponse
.
setInitialTime
(
System
.
currentTimeMillis
()
-
Constants
.
MILLIS_OF_TEN_SECOND
);
redisTemplate
.
opsForValue
().
set
(
key
,
JSONObject
.
toJSONString
(
accessTokenResponse
),
accessTokenResponse
.
getExpiresIn
()
+
1000
,
TimeUnit
.
SECONDS
);
redisTemplate
.
opsForValue
().
set
(
key
,
JSONObject
.
toJSONString
(
accessTokenResponse
),
accessTokenResponse
.
getExpiresIn
()
+
Constants
.
THOUSAND_SECOND
,
TimeUnit
.
SECONDS
);
return
accessTokenResponse
;
return
accessTokenResponse
;
}
catch
(
Exception
ex
)
{
}
catch
(
Exception
ex
)
{
return
null
;
return
null
;
...
@@ -85,15 +83,15 @@ public class WechatServiceImpl implements IWechatService {
...
@@ -85,15 +83,15 @@ public class WechatServiceImpl implements IWechatService {
try
{
try
{
AccessTokenResponse
response
=
JSONObject
.
parseObject
(
resultStr
,
AccessTokenResponse
.
class
);
AccessTokenResponse
response
=
JSONObject
.
parseObject
(
resultStr
,
AccessTokenResponse
.
class
);
// 刷新
// 刷新
if
(
response
.
getInitialTime
()
+
response
.
getExpiresIn
()
*
1000
>
System
.
currentTimeMillis
())
{
if
(
response
.
getInitialTime
()
+
response
.
getExpiresIn
()
*
Constants
.
MILLIS_PER_SECOND
>
System
.
currentTimeMillis
())
{
String
refreshTokenStr
=
refreshToken
(
response
.
getRefreshToken
());
String
refreshTokenStr
=
refreshToken
(
response
.
getRefreshToken
());
response
=
JSONObject
.
parseObject
(
refreshTokenStr
,
AccessTokenResponse
.
class
);
response
=
JSONObject
.
parseObject
(
refreshTokenStr
,
AccessTokenResponse
.
class
);
if
(
response
==
null
)
{
if
(
response
==
null
)
{
return
null
;
return
null
;
}
}
response
.
setInitialTime
(
System
.
currentTimeMillis
()
-
10000
);
response
.
setInitialTime
(
System
.
currentTimeMillis
()
-
Constants
.
MILLIS_OF_TEN_SECOND
);
}
}
redisTemplate
.
opsForValue
().
set
(
key
,
JSONObject
.
toJSONString
(
response
),
response
.
getExpiresIn
()
+
1000
,
TimeUnit
.
SECONDS
);
redisTemplate
.
opsForValue
().
set
(
key
,
JSONObject
.
toJSONString
(
response
),
response
.
getExpiresIn
()
+
Constants
.
THOUSAND_SECOND
,
TimeUnit
.
SECONDS
);
return
response
;
return
response
;
}
catch
(
Exception
ex
)
{
}
catch
(
Exception
ex
)
{
return
null
;
return
null
;
...
@@ -118,7 +116,7 @@ public class WechatServiceImpl implements IWechatService {
...
@@ -118,7 +116,7 @@ public class WechatServiceImpl implements IWechatService {
}
}
@Override
@Override
@Transactional
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
WechatUserInfo
saveWechatUserInfo
(
WechatUserInfo
userInfo
)
{
public
WechatUserInfo
saveWechatUserInfo
(
WechatUserInfo
userInfo
)
{
if
(
Objects
.
isNull
(
userInfo
)
||
Objects
.
isNull
(
userInfo
.
getOpenId
()))
{
if
(
Objects
.
isNull
(
userInfo
)
||
Objects
.
isNull
(
userInfo
.
getOpenId
()))
{
return
null
;
return
null
;
...
...
src/main/java/cn/quantgroup/xyqb/util/I
P
Util.java
→
src/main/java/cn/quantgroup/xyqb/util/I
p
Util.java
View file @
63c9a97c
...
@@ -16,7 +16,7 @@ import java.util.Set;
...
@@ -16,7 +16,7 @@ import java.util.Set;
* @author renwc
* @author renwc
* @date 2017-12-01
* @date 2017-12-01
*/
*/
public
class
I
P
Util
{
public
class
I
p
Util
{
/**
/**
* IP白名单
* IP白名单
* <p>
* <p>
...
@@ -98,13 +98,14 @@ public class IPUtil {
...
@@ -98,13 +98,14 @@ public class IPUtil {
}
}
//过滤反向代理的ip
//过滤反向代理的ip
String
[]
stemps
=
ip
.
split
(
","
);
String
[]
stemps
=
ip
.
split
(
","
);
if
(
stemps
!=
null
&&
stemps
.
length
>
=
1
)
{
if
(
stemps
!=
null
&&
stemps
.
length
>
0
)
{
//得到第一个IP,即客户端真实IP
//得到第一个IP,即客户端真实IP
ip
=
stemps
[
0
];
ip
=
stemps
[
0
];
}
}
ip
=
ip
.
trim
();
ip
=
ip
.
trim
();
if
(
ip
.
length
()
>
23
)
{
int
twentyThree
=
23
;
ip
=
ip
.
substring
(
0
,
23
);
if
(
ip
.
length
()
>
twentyThree
)
{
ip
=
ip
.
substring
(
0
,
twentyThree
);
}
}
return
ip
;
return
ip
;
}
}
...
...
src/main/java/cn/quantgroup/xyqb/util/PasswordUtil.java
View file @
63c9a97c
package
cn
.
quantgroup
.
xyqb
.
util
;
package
cn
.
quantgroup
.
xyqb
.
util
;
import
cn.quantgroup.xyqb.Constants
;
import
com.alibaba.fastjson.JSON
;
import
com.google.common.base.Preconditions
;
import
com.google.common.base.Preconditions
;
import
org.apache.commons.lang.StringUtils
;
import
org.apache.commons.lang.StringUtils
;
import
java.security.MessageDigest
;
import
java.security.MessageDigest
;
import
java.util.Map
;
import
java.util.Objects
;
import
java.util.Objects
;
import
java.util.concurrent.ThreadLocalRandom
;
import
java.util.concurrent.ThreadLocalRandom
;
...
@@ -89,4 +92,20 @@ public class PasswordUtil {
...
@@ -89,4 +92,20 @@ public class PasswordUtil {
return
Objects
.
equals
(
thePassword
,
targetPassword
);
return
Objects
.
equals
(
thePassword
,
targetPassword
);
}
}
public
static
String
filterPasswordToString
(
Map
<
String
,
String
>
info
)
{
if
(
null
==
info
)
{
return
null
;
}
if
(!
info
.
containsKey
(
Constants
.
PASSWORD
)){
return
JSON
.
toJSONString
(
info
);
}
String
password
=
info
.
get
(
Constants
.
PASSWORD
);
// 先删掉
info
.
remove
(
Constants
.
PASSWORD
);
String
infoString
=
JSON
.
toJSONString
(
info
);
// 再回填
info
.
put
(
Constants
.
PASSWORD
,
password
);
return
infoString
;
}
}
}
src/main/java/cn/quantgroup/xyqb/util/Utils.java
deleted
100644 → 0
View file @
d9b999bb
package
cn
.
quantgroup
.
xyqb
.
util
;
import
java.util.HashMap
;
import
java.util.Map
;
import
java.util.Set
;
import
java.util.regex.Matcher
;
import
java.util.regex.Pattern
;
/**
* @author mengfan.feng
*/
public
class
Utils
{
private
static
Pattern
pattern
=
Pattern
.
compile
(
"(?<!\\d)(?:(?:1[34578]\\d{9})|(?:861[34578]\\d{9}))(?!\\d)"
);
public
static
String
safeMap2Str
(
Map
<
String
,
String
>
info
)
{
if
(
null
==
info
)
{
return
null
;
}
StringBuilder
builder
=
new
StringBuilder
();
builder
.
append
(
"{"
);
info
.
forEach
((
key
,
value
)
->
{
if
(
"password"
.
equals
(
key
))
{
return
;
}
builder
.
append
(
key
);
builder
.
append
(
"="
);
builder
.
append
(
value
);
builder
.
append
(
","
);
});
builder
.
append
(
"}"
);
return
builder
.
toString
();
}
public
static
String
coverPhone
(
String
str
)
{
if
(
str
.
length
()
<=
0
)
{
return
""
;
}
if
(
str
.
length
()
>
1024
)
//长度超过1024的字符串不走正则匹配过滤手机号
{
return
""
;
}
Matcher
matcher
=
pattern
.
matcher
(
str
);
Map
<
String
,
String
>
replaceMap
=
new
HashMap
<>();
while
(
matcher
.
find
())
{
String
group
=
matcher
.
group
();
String
replace
=
group
.
substring
(
0
,
3
).
concat
(
"****"
).
concat
(
group
.
substring
(
7
)).
concat
(
" ["
.
concat
(
PasswordUtil
.
MD5
(
group
)).
concat
(
"]"
));
replaceMap
.
put
(
group
,
replace
);
}
Set
<
Map
.
Entry
<
String
,
String
>>
entries
=
replaceMap
.
entrySet
();
for
(
Map
.
Entry
<
String
,
String
>
entry
:
entries
)
{
str
=
str
.
replaceAll
(
entry
.
getKey
(),
entry
.
getValue
());
}
return
str
;
}
}
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