Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
H
haoban-manage3.0
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
haoban3.0
haoban-manage3.0
Commits
170f6d9a
Commit
170f6d9a
authored
Jan 06, 2022
by
墨竹
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix:更改拦截器,删除无效拦截器
parent
af04cee1
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
7 additions
and
509 deletions
+7
-509
WellDoneLoginDTO.java
.../java/com/gic/haoban/manage/api/dto/WellDoneLoginDTO.java
+0
-53
spring-interceptor.xml
...ration-web/src/main/webapp/WEB-INF/spring-interceptor.xml
+0
-8
HttpLimit.java
...c/main/java/com/gic/haoban/manage/web/anno/HttpLimit.java
+0
-21
IgnoreLogin.java
...main/java/com/gic/haoban/manage/web/anno/IgnoreLogin.java
+0
-13
HttpLimitInterceptor.java
...c/haoban/manage/web/interceptor/HttpLimitInterceptor.java
+0
-94
TestLoginInterceptor.java
...c/haoban/manage/web/interceptor/TestLoginInterceptor.java
+0
-36
WebInterceptor.java
...com/gic/haoban/manage/web/interceptor/WebInterceptor.java
+0
-117
spring-interceptor.xml
...anage3-web/src/main/webapp/WEB-INF/spring-interceptor.xml
+2
-3
WebBaseController.java
...m/gic/haoban/manage/web/controller/WebBaseController.java
+2
-1
WxEnterpriseInfoController.java
...ban/manage/web/controller/WxEnterpriseInfoController.java
+1
-0
HttpLimitInterceptor.java
...c/haoban/manage/web/interceptor/HttpLimitInterceptor.java
+0
-71
MobileWebInterceptor.java
...c/haoban/manage/web/interceptor/MobileWebInterceptor.java
+0
-89
spring-interceptor.xml
...manage3-wx/src/main/webapp/WEB-INF/spring-interceptor.xml
+2
-3
No files found.
haoban-manage3-api/src/main/java/com/gic/haoban/manage/api/dto/WellDoneLoginDTO.java
deleted
100644 → 0
View file @
af04cee1
package
com
.
gic
.
haoban
.
manage
.
api
.
dto
;
import
java.io.Serializable
;
/**
* 好办登录信息
*
* @author mozhu
* @date 2021/12/14 17:37
*/
public
class
WellDoneLoginDTO
implements
Serializable
{
private
static
final
long
serialVersionUID
=
-
8035522410061849606L
;
/**
* 员工id
*/
private
String
staffId
;
/**
* wx企业id
*/
private
String
wxEnterpriseId
;
/**
* 导购电话号码
*/
private
String
phoneNumber
;
public
String
getStaffId
()
{
return
staffId
;
}
public
void
setStaffId
(
String
staffId
)
{
this
.
staffId
=
staffId
;
}
public
String
getWxEnterpriseId
()
{
return
wxEnterpriseId
;
}
public
void
setWxEnterpriseId
(
String
wxEnterpriseId
)
{
this
.
wxEnterpriseId
=
wxEnterpriseId
;
}
public
String
getPhoneNumber
()
{
return
phoneNumber
;
}
public
void
setPhoneNumber
(
String
phoneNumber
)
{
this
.
phoneNumber
=
phoneNumber
;
}
}
haoban-manage3-operation-web/src/main/webapp/WEB-INF/spring-interceptor.xml
View file @
170f6d9a
...
@@ -8,14 +8,6 @@
...
@@ -8,14 +8,6 @@
<bean
class=
"com.gic.haoban.common.ext.PropertyViewClearInterceptor"
/>
<bean
class=
"com.gic.haoban.common.ext.PropertyViewClearInterceptor"
/>
<mvc:interceptor>
<mvc:interceptor>
<mvc:mapping
path=
"/**"
/>
<mvc:mapping
path=
"/**"
/>
<!--<mvc:exclude-mapping path="/login.json"/>-->
<!--<mvc:exclude-mapping path="/login-*"/>-->
<!--<mvc:exclude-mapping path="/gic-login*"/>-->
<!--<mvc:exclude-mapping path="/*test.json"/>-->
<!--<mvc:exclude-mapping path="/test/*"/>-->
<!--<mvc:exclude-mapping path="/pay/*"/>-->
<!--<mvc:exclude-mapping path="/login"/>-->
<!--<mvc:exclude-mapping path="/nationcode/get-nationcode-list"/>-->
<mvc:exclude-mapping
path=
"/get-pic-code"
/>
<mvc:exclude-mapping
path=
"/get-pic-code"
/>
<mvc:exclude-mapping
path=
"/phone-login"
/>
<mvc:exclude-mapping
path=
"/phone-login"
/>
<mvc:exclude-mapping
path=
"/upload-file*"
/>
<mvc:exclude-mapping
path=
"/upload-file*"
/>
...
...
haoban-manage3-web/src/main/java/com/gic/haoban/manage/web/anno/HttpLimit.java
deleted
100644 → 0
View file @
af04cee1
package
com
.
gic
.
haoban
.
manage
.
web
.
anno
;
import
java.lang.annotation.ElementType
;
import
java.lang.annotation.Retention
;
import
java.lang.annotation.RetentionPolicy
;
import
java.lang.annotation.Target
;
import
java.util.concurrent.TimeUnit
;
/**
* 访问限制
* 默认1秒
* @author hzw
*
*/
@Target
({
ElementType
.
METHOD
})
@Retention
(
RetentionPolicy
.
RUNTIME
)
public
@interface
HttpLimit
{
long
time
()
default
1L
;
TimeUnit
unit
()
default
TimeUnit
.
SECONDS
;
int
times
()
default
2
;
}
\ No newline at end of file
haoban-manage3-web/src/main/java/com/gic/haoban/manage/web/anno/IgnoreLogin.java
deleted
100644 → 0
View file @
af04cee1
package
com
.
gic
.
haoban
.
manage
.
web
.
anno
;
import
java.lang.annotation.ElementType
;
import
java.lang.annotation.Retention
;
import
java.lang.annotation.RetentionPolicy
;
import
java.lang.annotation.Target
;
@Target
({
ElementType
.
METHOD
})
@Retention
(
RetentionPolicy
.
RUNTIME
)
public
@interface
IgnoreLogin
{
}
\ No newline at end of file
haoban-manage3-web/src/main/java/com/gic/haoban/manage/web/interceptor/HttpLimitInterceptor.java
deleted
100644 → 0
View file @
af04cee1
package
com
.
gic
.
haoban
.
manage
.
web
.
interceptor
;
import
java.io.IOException
;
import
java.io.PrintWriter
;
import
java.util.Map
;
import
com.alibaba.fastjson.JSONObject
;
import
com.gic.haoban.common.utils.HaobanResponse
;
import
com.gic.haoban.manage.web.anno.HttpLimit
;
import
com.gic.haoban.manage.web.errCode.HaoBanErrCode
;
import
com.gic.redis.data.util.RedisUtil
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.web.method.HandlerMethod
;
import
org.springframework.web.servlet.handler.HandlerInterceptorAdapter
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
/**
* 测试登录拦截器
*
* @author zhurz
*/
public
class
HttpLimitInterceptor
extends
HandlerInterceptorAdapter
{
private
static
Logger
logger
=
LoggerFactory
.
getLogger
(
HttpLimitInterceptor
.
class
);
private
void
errorResult
(
HttpServletResponse
httpServletResponse
,
HaoBanErrCode
errCode
)
{
HaobanResponse
response
=
new
HaobanResponse
();
response
.
setErrorCode
(
errCode
.
getCode
());
response
.
setMessage
(
errCode
.
getMsg
());
PrintWriter
writer
=
null
;
try
{
httpServletResponse
.
setHeader
(
"Content-type"
,
"application/json;charset=UTF-8"
);
writer
=
httpServletResponse
.
getWriter
();
writer
.
append
(
JSONObject
.
toJSONString
(
response
));
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
}
@Override
public
boolean
preHandle
(
HttpServletRequest
httpServletRequest
,
HttpServletResponse
httpServletResponse
,
Object
o
)
throws
Exception
{
String
requestURI
=
httpServletRequest
.
getRequestURI
();
logger
.
info
(
"post-url:{}"
,
requestURI
);
Map
<
String
,
String
[]>
parameterMap
=
httpServletRequest
.
getParameterMap
();
logger
.
info
(
"post-params:{}"
,
JSONObject
.
toJSONString
(
parameterMap
));
if
(!(
o
instanceof
HandlerMethod
))
{
return
true
;
}
HandlerMethod
handler
=
(
HandlerMethod
)
o
;
HttpLimit
httpLimit
=
handler
.
getMethodAnnotation
(
HttpLimit
.
class
);
if
(
httpLimit
!=
null
)
{
String
ip
=
getIpAddress
(
httpServletRequest
);
String
url
=
httpServletRequest
.
getRequestURL
().
toString
();
String
key
=
"http_limit_"
.
concat
(
url
);
key
=
key
+
ip
;
if
(
RedisUtil
.
getCache
(
key
)!=
null
){
this
.
errorResult
(
httpServletResponse
,
HaoBanErrCode
.
ERR_10008
);
logger
.
info
(
"过于频繁点击"
);
return
false
;
}
else
{
RedisUtil
.
setCache
(
key
,
1
,
httpLimit
.
time
());
}
}
return
true
;
}
private
String
getIpAddress
(
HttpServletRequest
request
)
{
String
ip
=
request
.
getHeader
(
"x-forwarded-for"
);
if
(
ip
==
null
||
ip
.
length
()
==
0
||
"unknown"
.
equalsIgnoreCase
(
ip
))
{
ip
=
request
.
getHeader
(
"Proxy-Client-IP"
);
}
if
(
ip
==
null
||
ip
.
length
()
==
0
||
"unknown"
.
equalsIgnoreCase
(
ip
))
{
ip
=
request
.
getHeader
(
"WL-Proxy-Client-IP"
);
}
if
(
ip
==
null
||
ip
.
length
()
==
0
||
"unknown"
.
equalsIgnoreCase
(
ip
))
{
ip
=
request
.
getHeader
(
"HTTP_CLIENT_IP"
);
}
if
(
ip
==
null
||
ip
.
length
()
==
0
||
"unknown"
.
equalsIgnoreCase
(
ip
))
{
ip
=
request
.
getHeader
(
"HTTP_X_FORWARDED_FOR"
);
}
if
(
ip
==
null
||
ip
.
length
()
==
0
||
"unknown"
.
equalsIgnoreCase
(
ip
))
{
ip
=
request
.
getRemoteAddr
();
}
return
ip
;
}
}
haoban-manage3-web/src/main/java/com/gic/haoban/manage/web/interceptor/TestLoginInterceptor.java
deleted
100644 → 0
View file @
af04cee1
package
com
.
gic
.
haoban
.
manage
.
web
.
interceptor
;
import
com.gic.haoban.auth.api.dto.UserRightDetailDTO
;
import
com.gic.haoban.common.utils.AuthRequestUtil
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.web.servlet.handler.HandlerInterceptorAdapter
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
/**
* 测试登录拦截器
*
* @author zhurz
*/
public
class
TestLoginInterceptor
extends
HandlerInterceptorAdapter
{
private
static
Logger
logger
=
LoggerFactory
.
getLogger
(
TestLoginInterceptor
.
class
);
@Override
public
boolean
preHandle
(
HttpServletRequest
httpServletRequest
,
HttpServletResponse
httpServletResponse
,
Object
o
)
throws
Exception
{
// 测试用
HttpServletRequest
request
=
AuthRequestUtil
.
getRequest
();
String
testFlag
=
request
.
getHeader
(
"testFlag"
);
if
(!
"Y"
.
equals
(
testFlag
))
return
true
;
String
testEnterpriseId
=
request
.
getHeader
(
"testEnterpriseId"
);
String
testUserId
=
request
.
getHeader
(
"testUserId"
);
UserRightDetailDTO
sessionUser
=
new
UserRightDetailDTO
();
sessionUser
.
setUserId
(
testUserId
);
sessionUser
.
setEnterpriseId
(
testEnterpriseId
);
AuthRequestUtil
.
setSessionUser
(
sessionUser
);
return
true
;
}
}
haoban-manage3-web/src/main/java/com/gic/haoban/manage/web/interceptor/WebInterceptor.java
deleted
100644 → 0
View file @
af04cee1
package
com
.
gic
.
haoban
.
manage
.
web
.
interceptor
;
import
com.alibaba.fastjson.JSONObject
;
import
com.gic.haoban.common.utils.HaobanResponse
;
import
com.gic.haoban.manage.api.dto.LoginDTO
;
import
com.gic.haoban.manage.web.anno.IgnoreLogin
;
import
com.gic.haoban.manage.web.auth.AuthRequestUtil
;
import
com.gic.haoban.manage.web.errCode.HaoBanErrCode
;
import
com.gic.redis.data.util.GicRateLimiter
;
import
org.apache.commons.lang3.StringUtils
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.web.method.HandlerMethod
;
import
org.springframework.web.servlet.ModelAndView
;
import
org.springframework.web.servlet.handler.HandlerInterceptorAdapter
;
import
javax.servlet.http.Cookie
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
java.io.IOException
;
import
java.io.PrintWriter
;
import
java.util.Map
;
/**
* Created 2018/7/20.
*
* @author hua
*/
public
class
WebInterceptor
extends
HandlerInterceptorAdapter
{
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
WebInterceptor
.
class
);
private
static
final
String
MOUDLE
=
"haoban-manage3-web"
;
private
void
errorResult
(
HttpServletResponse
httpServletResponse
,
HaoBanErrCode
errCode
)
{
HaobanResponse
response
=
new
HaobanResponse
();
response
.
setErrorCode
(
errCode
.
getCode
());
response
.
setMessage
(
errCode
.
getMsg
());
PrintWriter
writer
=
null
;
try
{
httpServletResponse
.
setHeader
(
"Content-type"
,
"application/json;charset=UTF-8"
);
writer
=
httpServletResponse
.
getWriter
();
writer
.
append
(
JSONObject
.
toJSONString
(
response
));
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
}
@Override
public
boolean
preHandle
(
HttpServletRequest
httpServletRequest
,
HttpServletResponse
httpServletResponse
,
Object
o
)
throws
Exception
{
String
requestURI
=
httpServletRequest
.
getRequestURI
();
logger
.
info
(
"post-url:{}"
,
requestURI
);
Map
<
String
,
String
[]>
parameterMap
=
httpServletRequest
.
getParameterMap
();
logger
.
info
(
"post-params:{}"
,
JSONObject
.
toJSONString
(
parameterMap
));
if
(!(
o
instanceof
HandlerMethod
))
{
return
true
;
}
HandlerMethod
handler
=
(
HandlerMethod
)
o
;
IgnoreLogin
ignoreLogin
=
handler
.
getMethodAnnotation
(
IgnoreLogin
.
class
);
if
(
null
!=
ignoreLogin
)
{
return
true
;
}
Cookie
[]
cookies
=
AuthRequestUtil
.
getRequest
().
getCookies
();
String
token
=
""
;
if
(
cookies
!=
null
){
for
(
Cookie
cookie
:
cookies
)
{
if
(
cookie
.
getName
().
equals
(
"token"
)){
token
=
cookie
.
getValue
();
}
}
}
LoginDTO
loginUser
=
(
LoginDTO
)
AuthRequestUtil
.
getAppLoginUser
(
token
);
if
(
loginUser
==
null
)
{
this
.
errorResult
(
httpServletResponse
,
HaoBanErrCode
.
ERR_4
);
logger
.
info
(
"用户不存在!"
);
return
false
;
}
HandlerMethod
method
=
null
;
if
(
o
instanceof
HandlerMethod
)
{
method
=
(
HandlerMethod
)
(
o
);
}
if
(
method
==
null
)
{
return
true
;
}
if
(
StringUtils
.
isNotBlank
(
loginUser
.
getWxEnterpriseId
()))
{
httpServletRequest
.
setAttribute
(
"wxEnterpriseId"
,
loginUser
.
getWxEnterpriseId
());
}
if
(
loginUser
.
getStaffDTO
()
!=
null
)
{
httpServletRequest
.
setAttribute
(
"staffDTO"
,
loginUser
.
getStaffDTO
());
}
String
wxEnterpriseId
=
loginUser
.
getWxEnterpriseId
();
GicRateLimiter
instance
=
GicRateLimiter
.
getInstance
(
MOUDLE
);
Long
acquire
=
instance
.
acquire
(
requestURI
,
wxEnterpriseId
);
logger
.
info
(
"限流返回值:{},{}"
,
requestURI
,
acquire
);
if
(
acquire
==
0L
)
{
this
.
errorResult
(
httpServletResponse
,
HaoBanErrCode
.
ERR_13
);
logger
.
info
(
"限流!"
);
return
false
;
}
return
true
;
}
@Override
public
void
postHandle
(
HttpServletRequest
httpServletRequest
,
HttpServletResponse
httpServletResponse
,
Object
o
,
ModelAndView
modelAndView
)
throws
Exception
{
logger
.
info
(
"end"
);
}
@Override
public
void
afterCompletion
(
HttpServletRequest
httpServletRequest
,
HttpServletResponse
httpServletResponse
,
Object
o
,
Exception
e
)
throws
Exception
{
logger
.
info
(
"end"
);
}
}
haoban-manage3-web/src/main/webapp/WEB-INF/spring-interceptor.xml
View file @
170f6d9a
...
@@ -3,10 +3,9 @@
...
@@ -3,10 +3,9 @@
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xmlns:mvc=
"http://www.springframework.org/schema/mvc"
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xmlns:mvc=
"http://www.springframework.org/schema/mvc"
xsi:schemaLocation=
"http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd"
>
xsi:schemaLocation=
"http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd"
>
<mvc:interceptors>
<mvc:interceptors>
<bean
class=
"com.gic.haoban.common.interceptor.
CORS
Interceptor"
/>
<bean
class=
"com.gic.haoban.common.interceptor.
HttpLimit
Interceptor"
/>
<bean
class=
"com.gic.commons.interceptor.HeaderTagInterceptor"
/>
<bean
class=
"com.gic.commons.interceptor.HeaderTagInterceptor"
/>
<bean
class=
"com.gic.haoban.common.ext.PropertyViewClearInterceptor"
/>
<bean
class=
"com.gic.haoban.common.ext.PropertyViewClearInterceptor"
/>
<bean
class=
"com.gic.haoban.manage.web.interceptor.HttpLimitInterceptor"
/>
<mvc:interceptor>
<mvc:interceptor>
<mvc:mapping
path=
"/**"
/>
<mvc:mapping
path=
"/**"
/>
<mvc:exclude-mapping
path=
"/login.json"
/>
<mvc:exclude-mapping
path=
"/login.json"
/>
...
@@ -23,7 +22,7 @@
...
@@ -23,7 +22,7 @@
<mvc:exclude-mapping
path=
"/upload-file*"
/>
<mvc:exclude-mapping
path=
"/upload-file*"
/>
<mvc:exclude-mapping
path=
"/upload-file-voice"
/>
<mvc:exclude-mapping
path=
"/upload-file-voice"
/>
<mvc:exclude-mapping
path=
"/get-login-qrcode"
/>
<mvc:exclude-mapping
path=
"/get-login-qrcode"
/>
<bean
class=
"com.gic.haoban.
manage.web.interceptor.
WebInterceptor"
/>
<bean
class=
"com.gic.haoban.
common.interceptor.Auth
WebInterceptor"
/>
</mvc:interceptor>
</mvc:interceptor>
</mvc:interceptors>
</mvc:interceptors>
...
...
haoban-manage3-wx/src/main/java/com/gic/haoban/manage/web/controller/WebBaseController.java
View file @
170f6d9a
package
com
.
gic
.
haoban
.
manage
.
web
.
controller
;
package
com
.
gic
.
haoban
.
manage
.
web
.
controller
;
import
com.gic.haoban.auth.api.dto.DisplayRelationShortInfoDTO
;
import
com.gic.haoban.auth.api.dto.DisplayRelationShortInfoDTO
;
import
com.gic.haoban.base.api.common.pojo.dto.WellDoneLoginDTO
;
import
com.gic.haoban.common.utils.AuthRequestWellDoneUtil
;
import
com.gic.haoban.common.utils.AuthRequestWellDoneUtil
;
import
com.gic.haoban.common.utils.HaobanResponse
;
import
com.gic.haoban.common.utils.HaobanResponse
;
import
com.gic.haoban.manage.api.dto.WellDoneLoginDTO
;
import
com.gic.haoban.manage.web.errCode.HaoBanErrCode
;
import
com.gic.haoban.manage.web.errCode.HaoBanErrCode
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.apache.commons.collections.CollectionUtils
;
...
...
haoban-manage3-wx/src/main/java/com/gic/haoban/manage/web/controller/WxEnterpriseInfoController.java
View file @
170f6d9a
...
@@ -15,6 +15,7 @@ import com.gic.enterprise.api.dto.StoreDTO;
...
@@ -15,6 +15,7 @@ import com.gic.enterprise.api.dto.StoreDTO;
import
com.gic.enterprise.api.service.EnterpriseService
;
import
com.gic.enterprise.api.service.EnterpriseService
;
import
com.gic.haoban.app.customer.dto.StaffOpenRelatedDTO
;
import
com.gic.haoban.app.customer.dto.StaffOpenRelatedDTO
;
import
com.gic.haoban.app.customer.service.api.service.StaffMemberRelationApiService
;
import
com.gic.haoban.app.customer.service.api.service.StaffMemberRelationApiService
;
import
com.gic.haoban.base.api.common.pojo.dto.WellDoneLoginDTO
;
import
com.gic.haoban.common.anno.IgnoreLogin
;
import
com.gic.haoban.common.anno.IgnoreLogin
;
import
com.gic.haoban.common.utils.AuthRequestWellDoneUtil
;
import
com.gic.haoban.common.utils.AuthRequestWellDoneUtil
;
import
com.gic.haoban.common.utils.EntityUtil
;
import
com.gic.haoban.common.utils.EntityUtil
;
...
...
haoban-manage3-wx/src/main/java/com/gic/haoban/manage/web/interceptor/HttpLimitInterceptor.java
deleted
100644 → 0
View file @
af04cee1
package
com
.
gic
.
haoban
.
manage
.
web
.
interceptor
;
import
com.alibaba.fastjson.JSONObject
;
import
com.gic.haoban.common.anno.HttpLimit
;
import
com.gic.haoban.common.utils.HaobanResponse
;
import
com.gic.haoban.manage.web.errCode.HaoBanErrCode
;
import
com.gic.haoban.manage.web.utils.IPAddressUtil
;
import
com.gic.redis.data.util.RedisUtil
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.web.method.HandlerMethod
;
import
org.springframework.web.servlet.handler.HandlerInterceptorAdapter
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
java.io.IOException
;
import
java.io.PrintWriter
;
import
java.util.Map
;
/**
* 测试登录拦截器
*
* @author zhurz
*/
public
class
HttpLimitInterceptor
extends
HandlerInterceptorAdapter
{
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
HttpLimitInterceptor
.
class
);
private
void
errorResult
(
HttpServletResponse
httpServletResponse
,
HaoBanErrCode
errCode
)
{
HaobanResponse
response
=
new
HaobanResponse
();
response
.
setErrorCode
(
errCode
.
getCode
());
response
.
setMessage
(
errCode
.
getMsg
());
PrintWriter
writer
=
null
;
try
{
httpServletResponse
.
setHeader
(
"Content-type"
,
"application/json;charset=UTF-8"
);
writer
=
httpServletResponse
.
getWriter
();
writer
.
append
(
JSONObject
.
toJSONString
(
response
));
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
}
@Override
public
boolean
preHandle
(
HttpServletRequest
httpServletRequest
,
HttpServletResponse
httpServletResponse
,
Object
o
)
throws
Exception
{
String
requestURI
=
httpServletRequest
.
getRequestURI
();
logger
.
info
(
"post-url:{}"
,
requestURI
);
Map
<
String
,
String
[]>
parameterMap
=
httpServletRequest
.
getParameterMap
();
logger
.
info
(
"post-params:{}"
,
JSONObject
.
toJSONString
(
parameterMap
));
if
(!(
o
instanceof
HandlerMethod
))
{
return
true
;
}
HandlerMethod
handler
=
(
HandlerMethod
)
o
;
HttpLimit
httpLimit
=
handler
.
getMethodAnnotation
(
HttpLimit
.
class
);
if
(
httpLimit
!=
null
)
{
String
ip
=
IPAddressUtil
.
getIpAddress
(
httpServletRequest
);
String
url
=
httpServletRequest
.
getRequestURL
().
toString
();
String
key
=
"http_limit_"
.
concat
(
url
);
key
=
key
+
ip
;
if
(
RedisUtil
.
getCache
(
key
)!=
null
){
this
.
errorResult
(
httpServletResponse
,
HaoBanErrCode
.
ERR_10008
);
logger
.
info
(
"过于频繁点击"
);
return
false
;
}
else
{
RedisUtil
.
setCache
(
key
,
1
,
httpLimit
.
time
());
}
}
return
true
;
}
}
haoban-manage3-wx/src/main/java/com/gic/haoban/manage/web/interceptor/MobileWebInterceptor.java
deleted
100644 → 0
View file @
af04cee1
package
com
.
gic
.
haoban
.
manage
.
web
.
interceptor
;
import
com.alibaba.fastjson.JSONObject
;
import
com.gic.haoban.common.anno.IgnoreLogin
;
import
com.gic.haoban.common.utils.AuthRequestWellDoneUtil
;
import
com.gic.haoban.common.utils.HaobanResponse
;
import
com.gic.haoban.manage.api.dto.WellDoneLoginDTO
;
import
com.gic.haoban.manage.web.errCode.HaoBanErrCode
;
import
com.gic.redis.data.util.GicRateLimiter
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.web.method.HandlerMethod
;
import
org.springframework.web.servlet.ModelAndView
;
import
org.springframework.web.servlet.handler.HandlerInterceptorAdapter
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
java.io.IOException
;
import
java.io.PrintWriter
;
import
java.util.Map
;
/**
* Created 2018/7/20.
*
* @author hua
*/
public
class
MobileWebInterceptor
extends
HandlerInterceptorAdapter
{
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
MobileWebInterceptor
.
class
);
private
static
final
String
MOUDLE
=
"haoban-manage3-wx"
;
private
void
errorResult
(
HttpServletResponse
httpServletResponse
,
HaoBanErrCode
errCode
)
{
HaobanResponse
response
=
new
HaobanResponse
();
response
.
setErrorCode
(
errCode
.
getCode
());
response
.
setMessage
(
errCode
.
getMsg
());
PrintWriter
writer
=
null
;
try
{
httpServletResponse
.
setHeader
(
"Content-type"
,
"application/json;charset=UTF-8"
);
writer
=
httpServletResponse
.
getWriter
();
writer
.
append
(
JSONObject
.
toJSONString
(
response
));
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
}
@Override
public
boolean
preHandle
(
HttpServletRequest
httpServletRequest
,
HttpServletResponse
httpServletResponse
,
Object
o
)
throws
Exception
{
String
requestURI
=
httpServletRequest
.
getRequestURI
();
logger
.
info
(
"post-url:{}"
,
requestURI
);
Map
<
String
,
String
[]>
parameterMap
=
httpServletRequest
.
getParameterMap
();
logger
.
info
(
"post-params:{}"
,
JSONObject
.
toJSONString
(
parameterMap
));
HandlerMethod
handler
=
(
HandlerMethod
)
o
;
IgnoreLogin
ignoreLogin
=
handler
.
getMethodAnnotation
(
IgnoreLogin
.
class
);
if
(
null
!=
ignoreLogin
)
{
return
true
;
}
if
(
true
)
{
return
true
;
}
WellDoneLoginDTO
wellDoneLoginDTO
=
(
WellDoneLoginDTO
)
AuthRequestWellDoneUtil
.
getLoginUser
();
if
(
wellDoneLoginDTO
==
null
)
{
this
.
errorResult
(
httpServletResponse
,
HaoBanErrCode
.
ERR_30009
);
logger
.
info
(
"用户不存在!"
);
return
false
;
}
String
wxEnterpriseId
=
wellDoneLoginDTO
.
getWxEnterpriseId
();
GicRateLimiter
instance
=
GicRateLimiter
.
getInstance
(
MOUDLE
);
Long
acquire
=
instance
.
acquire
(
requestURI
,
wxEnterpriseId
);
logger
.
info
(
"限流返回值:{},{}"
,
requestURI
,
acquire
);
if
(
acquire
==
0L
)
{
this
.
errorResult
(
httpServletResponse
,
HaoBanErrCode
.
ERR_13
);
logger
.
info
(
"wxEnterpriseId:{},限流!"
,
wxEnterpriseId
);
return
false
;
}
return
true
;
}
@Override
public
void
postHandle
(
HttpServletRequest
httpServletRequest
,
HttpServletResponse
httpServletResponse
,
Object
o
,
ModelAndView
modelAndView
)
throws
Exception
{
logger
.
info
(
"end"
);
}
@Override
public
void
afterCompletion
(
HttpServletRequest
httpServletRequest
,
HttpServletResponse
httpServletResponse
,
Object
o
,
Exception
e
)
throws
Exception
{
logger
.
info
(
"end"
);
}
}
haoban-manage3-wx/src/main/webapp/WEB-INF/spring-interceptor.xml
View file @
170f6d9a
...
@@ -3,10 +3,9 @@
...
@@ -3,10 +3,9 @@
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xmlns:mvc=
"http://www.springframework.org/schema/mvc"
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xmlns:mvc=
"http://www.springframework.org/schema/mvc"
xsi:schemaLocation=
"http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd"
>
xsi:schemaLocation=
"http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd"
>
<mvc:interceptors>
<mvc:interceptors>
<bean
class=
"com.gic.haoban.common.interceptor.
CORS
Interceptor"
/>
<bean
class=
"com.gic.haoban.common.interceptor.
HttpLimit
Interceptor"
/>
<bean
class=
"com.gic.commons.interceptor.HeaderTagInterceptor"
/>
<bean
class=
"com.gic.commons.interceptor.HeaderTagInterceptor"
/>
<bean
class=
"com.gic.haoban.common.ext.PropertyViewClearInterceptor"
/>
<bean
class=
"com.gic.haoban.common.ext.PropertyViewClearInterceptor"
/>
<bean
class=
"com.gic.haoban.manage.web.interceptor.HttpLimitInterceptor"
/>
<mvc:interceptor>
<mvc:interceptor>
<mvc:mapping
path=
"/**"
/>
<mvc:mapping
path=
"/**"
/>
<mvc:exclude-mapping
path=
"/login.json"
/>
<mvc:exclude-mapping
path=
"/login.json"
/>
...
@@ -20,7 +19,7 @@
...
@@ -20,7 +19,7 @@
<mvc:exclude-mapping
path=
"/phone-login"
/>
<mvc:exclude-mapping
path=
"/phone-login"
/>
<mvc:exclude-mapping
path=
"/upload-file*"
/>
<mvc:exclude-mapping
path=
"/upload-file*"
/>
<mvc:exclude-mapping
path=
"/upload-file-voice"
/>
<mvc:exclude-mapping
path=
"/upload-file-voice"
/>
<bean
class=
"com.gic.haoban.
manage.web.interceptor.
MobileWebInterceptor"
/>
<bean
class=
"com.gic.haoban.
common.interceptor.Auth
MobileWebInterceptor"
/>
</mvc:interceptor>
</mvc:interceptor>
</mvc:interceptors>
</mvc:interceptors>
...
...
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