31
31
import org .slf4j .Logger ;
32
32
import org .slf4j .LoggerFactory ;
33
33
34
- import javax .servlet .*;
34
+ import javax .servlet .FilterChain ;
35
+ import javax .servlet .ServletException ;
36
+ import javax .servlet .ServletRequest ;
37
+ import javax .servlet .ServletResponse ;
35
38
import javax .servlet .http .HttpServletRequest ;
36
39
import javax .servlet .http .HttpServletResponse ;
37
40
import java .io .IOException ;
38
- import java .util .List ;
39
41
40
42
/**
41
43
* 单体应用解析,需要签名认证
42
44
*/
43
- public class MonolithicLoginUserFilter implements Filter {
45
+ public class MonolithicLoginUserFilter extends AbstractLoginFilter {
44
46
private static Logger logger = LoggerFactory .getLogger (MonolithicLoginUserFilter .class );
45
47
46
- public MonolithicLoginUserFilter (Authenticator authenticator , Boolean mockLoginUser , List <String > whiteList , String tokenKey ) {
48
+ public MonolithicLoginUserFilter (Authenticator authenticator ,
49
+ Boolean mockLoginUser ,
50
+ String tokenKey ,
51
+ Boolean supportTemplate ,
52
+ String apiPrefix ) {
47
53
this .authenticator = authenticator ;
48
54
this .mockLoginUser = mockLoginUser ;
49
- this .whiteList = whiteList ;
55
+ this .supportTemplate = supportTemplate ;
56
+ this .apiPrefix = apiPrefix ;
50
57
if (StringUtility .isNullOrEmpty (tokenKey )) {
51
58
this .tokenKey = Constant .REQUEST_HEADER_KEY_LOGIN_TOKEN ;
52
59
} else {
@@ -56,15 +63,9 @@ public MonolithicLoginUserFilter(Authenticator authenticator, Boolean mockLoginU
56
63
57
64
private Boolean mockLoginUser ;
58
65
private Authenticator authenticator ;
59
- private List <String > whiteList ;
60
66
private String tokenKey ;
61
67
62
68
63
- @ Override
64
- public void init (FilterConfig config ) throws ServletException {
65
-
66
- }
67
-
68
69
private void loginSuccess (LoginUser loginUser , FilterChain filterChain , HttpServletRequest request , HttpServletResponse response ) {
69
70
ThreadContext .bindLoginToken (loginUser );
70
71
try {
@@ -77,7 +78,7 @@ private void loginSuccess(LoginUser loginUser, FilterChain filterChain, HttpServ
77
78
}
78
79
79
80
private void loginFail (HttpServletRequest request , HttpServletResponse servletResponse , ErrorSupport e ) throws IOException {
80
- boolean isAjax = ServletUtility . getInstance () .isAjax (request );
81
+ boolean isAjax = this .isAjax (request );
81
82
if (isAjax ) {
82
83
servletResponse .setContentType (Constant .CONTENT_TYPE_JSON );
83
84
Result result = Result .fail (e );
@@ -119,7 +120,7 @@ public void doFilter(ServletRequest servletRequest, ServletResponse servletRespo
119
120
HttpServletResponse rep = (HttpServletResponse ) servletResponse ;
120
121
121
122
String currentUrl = req .getServletPath ();
122
- if (this .whiteList . contains (currentUrl )) {
123
+ if (this .matchExcludePatterns (currentUrl )) {
123
124
filterChain .doFilter (servletRequest , servletResponse );
124
125
return ;
125
126
}
@@ -141,7 +142,7 @@ public void doFilter(ServletRequest servletRequest, ServletResponse servletRespo
141
142
return ;
142
143
}
143
144
if (mockLoginUser ) {
144
- loginUser = LoginUser .create (1L ,1 , "mock-user" , "mock-nick-name" , "header" , "device id" , 3 );
145
+ loginUser = LoginUser .create (1L , 1 , "mock-user" , "mock-nick-name" , "header" , "device id" , 3 );
145
146
this .loginSuccess (loginUser , filterChain , req , rep );
146
147
return ;
147
148
}
0 commit comments