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
2d1a4134
Commit
2d1a4134
authored
Nov 28, 2017
by
技术部-任文超
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' into feature/20171121
parents
24342a64
0656edcf
Changes
8
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
285 additions
and
75 deletions
+285
-75
Constants.java
src/main/java/cn/quantgroup/xyqb/Constants.java
+8
-2
PasswordErrorFiniteValidateAdvisor.java
.../xyqb/aspect/lock/PasswordErrorFiniteValidateAdvisor.java
+13
-3
PasswordFineteValidator.java
.../quantgroup/xyqb/aspect/lock/PasswordFineteValidator.java
+1
-1
InterceptorConfig.java
...java/cn/quantgroup/xyqb/config/web/InterceptorConfig.java
+5
-7
LockIpv4Controller.java
...oup/xyqb/controller/external/lock/LockIpv4Controller.java
+255
-0
UserController.java
...ntgroup/xyqb/controller/internal/user/UserController.java
+1
-1
RequestFilter.java
src/main/java/cn/quantgroup/xyqb/filter/RequestFilter.java
+2
-6
ChannelIdInterceptor.java
...cn/quantgroup/xyqb/interceptors/ChannelIdInterceptor.java
+0
-55
No files found.
src/main/java/cn/quantgroup/xyqb/Constants.java
View file @
2d1a4134
...
@@ -41,16 +41,22 @@ public interface Constants {
...
@@ -41,16 +41,22 @@ public interface Constants {
String
X_AUTH_TOKEN
=
"x-auth-token"
;
String
X_AUTH_TOKEN
=
"x-auth-token"
;
String
ONE_TIME_TOKEN
=
"oneTimeToken"
;
String
ONE_TIME_TOKEN
=
"oneTimeToken"
;
// -- Start -- IPV4安全策略常量组
String
REDIS_PASSWORD_ERROR_COUNT
=
"password_error_count:"
;
String
REDIS_PASSWORD_ERROR_COUNT
=
"password_error_count:"
;
String
REDIS_PASSWORD_ERROR_COUNT_FOR_IPV4
=
"password_error_count_4_ipv4:"
;
String
REDIS_PASSWORD_ERROR_COUNT_FOR_IPV4
=
"password_error_count_4_ipv4:"
;
String
IPV4_LOCK_WHITE
=
"lock_ipv4:white:"
;
String
IPV4_LOCK_BLACK
=
"lock_ipv4:black:"
;
String
IPV4_LOCK_MINUTES_REDIS
=
"lock_ipv4:minutes:"
;
String
IPV4_LOCK_ON_COUNTS_REDIS
=
"lock_ipv4:on_counts:"
;
String
IPV4_LOCK
=
"lock_ipv4:"
;
String
IPV4_LOCK
=
"lock_ipv4:"
;
Long
IPV4_LOCK_MINUTES
=
6
*
60L
;
Long
IPV4_LOCK_MINUTES
=
3
*
60L
;
Long
IPV4_COUNT_MINUTES
=
1L
;
Long
IPV4_COUNT_MINUTES
=
1L
;
Long
IPV4_LOCK_ON_COUNTS
=
20
0L
;
Long
IPV4_LOCK_ON_COUNTS
=
6
0L
;
int
DANGEROUS_TIME_START
=
22
;
int
DANGEROUS_TIME_START
=
22
;
int
DANGEROUS_TIME_END
=
6
;
int
DANGEROUS_TIME_END
=
6
;
String
CLEAR_LOCK_FOR_IPV4
=
"x-clear-lock-11241842-y"
;
String
CLEAR_LOCK_FOR_IPV4
=
"x-clear-lock-11241842-y"
;
String
CLEAR_LOCK_FOR_IPV4_KEY
=
"lhp.family.dwy.sjs.yym.cxy.cpg"
;
String
CLEAR_LOCK_FOR_IPV4_KEY
=
"lhp.family.dwy.sjs.yym.cxy.cpg"
;
// -- End -- IPV4安全策略常量组
/**
/**
* redis中token的key值前缀
* redis中token的key值前缀
*/
*/
...
...
src/main/java/cn/quantgroup/xyqb/aspect/
captcha
/PasswordErrorFiniteValidateAdvisor.java
→
src/main/java/cn/quantgroup/xyqb/aspect/
lock
/PasswordErrorFiniteValidateAdvisor.java
View file @
2d1a4134
package
cn
.
quantgroup
.
xyqb
.
aspect
.
captcha
;
package
cn
.
quantgroup
.
xyqb
.
aspect
.
lock
;
import
cn.quantgroup.xyqb.Constants
;
import
cn.quantgroup.xyqb.Constants
;
...
@@ -39,7 +39,7 @@ public class PasswordErrorFiniteValidateAdvisor {
...
@@ -39,7 +39,7 @@ public class PasswordErrorFiniteValidateAdvisor {
/**
/**
* 密码错误限次切面
* 密码错误限次切面
*/
*/
@Pointcut
(
"@annotation(cn.quantgroup.xyqb.aspect.
captcha
.PasswordFineteValidator)"
)
@Pointcut
(
"@annotation(cn.quantgroup.xyqb.aspect.
lock
.PasswordFineteValidator)"
)
private
void
passwordErrorFiniteValidate
()
{
private
void
passwordErrorFiniteValidate
()
{
}
}
...
@@ -59,9 +59,19 @@ public class PasswordErrorFiniteValidateAdvisor {
...
@@ -59,9 +59,19 @@ public class PasswordErrorFiniteValidateAdvisor {
HttpServletRequest
request
=
((
ServletRequestAttributes
)
RequestContextHolder
.
getRequestAttributes
()).
getRequest
();
HttpServletRequest
request
=
((
ServletRequestAttributes
)
RequestContextHolder
.
getRequestAttributes
()).
getRequest
();
// 客户端IP
// 客户端IP
String
clientIp
=
getIp
(
request
);
String
clientIp
=
getIp
(
request
);
if
(
StringUtils
.
startsWith
(
clientIp
,
"139.198."
)){
// 入口服务器IP
if
(
StringUtils
.
startsWith
(
clientIp
,
"139.198."
)){
return
pjp
.
proceed
();
return
pjp
.
proceed
();
}
}
// 白名单
if
(
redisTemplate
.
opsForSet
().
isMember
(
Constants
.
IPV4_LOCK_WHITE
,
clientIp
)){
return
pjp
.
proceed
();
}
// 黑名单
if
(
redisTemplate
.
opsForSet
().
isMember
(
Constants
.
IPV4_LOCK_BLACK
,
clientIp
)){
LOGGER
.
info
(
"Locked ip access:{}"
,
clientIp
);
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
)){
...
...
src/main/java/cn/quantgroup/xyqb/aspect/
captcha
/PasswordFineteValidator.java
→
src/main/java/cn/quantgroup/xyqb/aspect/
lock
/PasswordFineteValidator.java
View file @
2d1a4134
package
cn
.
quantgroup
.
xyqb
.
aspect
.
captcha
;
package
cn
.
quantgroup
.
xyqb
.
aspect
.
lock
;
import
java.lang.annotation.*
;
import
java.lang.annotation.*
;
...
...
src/main/java/cn/quantgroup/xyqb/config/web/InterceptorConfig.java
View file @
2d1a4134
package
cn
.
quantgroup
.
xyqb
.
config
.
web
;
package
cn
.
quantgroup
.
xyqb
.
config
.
web
;
import
cn.quantgroup.xyqb.interceptors.ChannelIdInterceptor
;
import
cn.quantgroup.xyqb.interceptors.IPWhiteListInterceptor
;
import
cn.quantgroup.xyqb.interceptors.IPWhiteListInterceptor
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.context.annotation.Configuration
;
...
@@ -13,12 +12,11 @@ import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter
...
@@ -13,12 +12,11 @@ import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter
@Configuration
@Configuration
public
class
InterceptorConfig
extends
WebMvcConfigurerAdapter
{
public
class
InterceptorConfig
extends
WebMvcConfigurerAdapter
{
@Value
(
"${configserver.disable}"
)
@Value
(
"${configserver.disable}"
)
private
Integer
isDebug
;
private
Integer
isDebug
;
public
void
addInterceptors
(
InterceptorRegistry
registry
)
{
public
void
addInterceptors
(
InterceptorRegistry
registry
)
{
registry
.
addInterceptor
(
new
IPWhiteListInterceptor
(
isDebug
)).
addPathPatterns
(
"/innerapi/**"
);
registry
.
addInterceptor
(
new
IPWhiteListInterceptor
(
isDebug
)).
addPathPatterns
(
"/innerapi/**"
);
registry
.
addInterceptor
(
new
ChannelIdInterceptor
()).
addPathPatterns
(
"/**"
);
}
}
}
}
src/main/java/cn/quantgroup/xyqb/controller/external/lock/LockIpv4Controller.java
0 → 100644
View file @
2d1a4134
This diff is collapsed.
Click to expand it.
src/main/java/cn/quantgroup/xyqb/controller/internal/user/UserController.java
View file @
2d1a4134
...
@@ -2,7 +2,7 @@ package cn.quantgroup.xyqb.controller.internal.user;
...
@@ -2,7 +2,7 @@ package cn.quantgroup.xyqb.controller.internal.user;
import
cn.quantgroup.xyqb.Constants
;
import
cn.quantgroup.xyqb.Constants
;
import
cn.quantgroup.xyqb.aspect.captcha.CaptchaFineteValidator
;
import
cn.quantgroup.xyqb.aspect.captcha.CaptchaFineteValidator
;
import
cn.quantgroup.xyqb.aspect.
captcha
.PasswordFineteValidator
;
import
cn.quantgroup.xyqb.aspect.
lock
.PasswordFineteValidator
;
import
cn.quantgroup.xyqb.aspect.logcaller.LogHttpCaller
;
import
cn.quantgroup.xyqb.aspect.logcaller.LogHttpCaller
;
import
cn.quantgroup.xyqb.controller.IBaseController
;
import
cn.quantgroup.xyqb.controller.IBaseController
;
import
cn.quantgroup.xyqb.entity.Merchant
;
import
cn.quantgroup.xyqb.entity.Merchant
;
...
...
src/main/java/cn/quantgroup/xyqb/filter/RequestFilter.java
View file @
2d1a4134
...
@@ -26,12 +26,8 @@ import java.io.PrintWriter;
...
@@ -26,12 +26,8 @@ import java.io.PrintWriter;
public
class
RequestFilter
implements
Filter
{
public
class
RequestFilter
implements
Filter
{
private
static
final
String
[]
ALLOWED_PATTERNS
=
{
private
static
final
String
[]
ALLOWED_PATTERNS
=
{
"/user_detail/**"
,
"/hello/**"
,
"/innerapi/**"
,
"/user/exist"
,
"/motan/**"
,
"/user/register"
,
"/user/login"
,
"/user/register/fast"
,
"/wechat/**"
,
"/config/**"
,
"/api/**"
,
"/query/**"
,
"/user_detail/**"
,
"/hello/**"
,
"/innerapi/**"
,
"/motan/**"
,
"/user/**"
,
"/lock/**"
,
"/token/oneTime"
,
"/user/loginV1"
,
"/user/login/fastV1"
,
"/user/**"
,
"/api/sms/send_login_code_new_forH5"
,
"/user/lock_ipv4"
,
"/auth/info/login"
,
"/app/login"
,
"/app/login_super"
,
"/app/login2"
,
"/platform/api/page/return_url"
,
"/MP_verify_AWiagUn4kZiwmTt0.txt"
"/auth/info/login"
,
"/user/login/fast"
,
"/user/reset_password"
,
"/user/exist_check"
,
"/user/center/**"
,
"/jr58/**"
,
"/app/login"
,
"/app/login_super"
,
"/app/login2"
,
"/user/login2"
,
"/wechat/**"
,
"/config/**"
,
"/api/**"
,
"/user/exists_token"
,
"/query/**"
,
"/platform/api/page/return_url"
,
"/MP_"
+
"verify_AWiagUn4kZiwmTt0.txt"
};
};
private
static
final
String
UNAUTH_RESULT
=
JSONObject
.
toJSONString
(
JsonResult
.
buildErrorStateResult
(
"登录失败"
,
null
));
private
static
final
String
UNAUTH_RESULT
=
JSONObject
.
toJSONString
(
JsonResult
.
buildErrorStateResult
(
"登录失败"
,
null
));
@Autowired
@Autowired
...
...
src/main/java/cn/quantgroup/xyqb/interceptors/ChannelIdInterceptor.java
deleted
100644 → 0
View file @
24342a64
package
cn
.
quantgroup
.
xyqb
.
interceptors
;
import
org.springframework.web.servlet.HandlerInterceptor
;
import
org.springframework.web.servlet.ModelAndView
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
/**
* Created by Miraculous on 15/7/10.
*/
public
class
ChannelIdInterceptor
implements
HandlerInterceptor
{
private
static
final
String
CHANNEL_ID
=
"channelId"
;
private
static
final
String
CREATED_FROM
=
"createdFrom"
;
private
static
final
String
APP_CHANNEL
=
"appChannel"
;
@Override
public
boolean
preHandle
(
HttpServletRequest
request
,
HttpServletResponse
response
,
Object
o
)
throws
Exception
{
String
channelId
=
request
.
getParameter
(
CHANNEL_ID
);
if
(
channelId
==
null
)
{
channelId
=
(
String
)
request
.
getAttribute
(
CHANNEL_ID
);
}
if
(
channelId
!=
null
)
{
request
.
getSession
().
setAttribute
(
CHANNEL_ID
,
channelId
);
}
String
createdFrom
=
request
.
getParameter
(
CREATED_FROM
);
if
(
createdFrom
==
null
)
{
createdFrom
=
(
String
)
request
.
getAttribute
(
CREATED_FROM
);
}
if
(
createdFrom
!=
null
)
{
request
.
getSession
().
setAttribute
(
CREATED_FROM
,
createdFrom
);
}
String
appChannel
=
request
.
getParameter
(
APP_CHANNEL
);
if
(
appChannel
==
null
)
{
appChannel
=
(
String
)
request
.
getAttribute
(
APP_CHANNEL
);
}
if
(
appChannel
!=
null
)
{
request
.
getSession
().
setAttribute
(
APP_CHANNEL
,
appChannel
);
}
return
true
;
}
@Override
public
void
postHandle
(
HttpServletRequest
request
,
HttpServletResponse
response
,
Object
o
,
ModelAndView
modelAndView
)
throws
Exception
{
}
@Override
public
void
afterCompletion
(
HttpServletRequest
request
,
HttpServletResponse
response
,
Object
o
,
Exception
e
)
throws
Exception
{
}
}
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