fix jwt过滤编写问题
This commit is contained in:
parent
92804151a3
commit
f7982ede73
@ -38,20 +38,24 @@ public class JwtAuthenticationTokenFilter extends OncePerRequestFilter
|
|||||||
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain chain)
|
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain chain)
|
||||||
throws ServletException, IOException
|
throws ServletException, IOException
|
||||||
{
|
{
|
||||||
// 匿名路径放行
|
// 匿名路径放行 默认拦截
|
||||||
|
boolean flag = true;
|
||||||
for (String anonymou : securityProperties.getAnonymous()) {
|
for (String anonymou : securityProperties.getAnonymous()) {
|
||||||
PathMatcher pm = new AntPathMatcher();
|
PathMatcher pm = new AntPathMatcher();
|
||||||
if (pm.matchStart(anonymou, request.getRequestURI())) {
|
if (pm.matchStart(anonymou, request.getRequestURI())) {
|
||||||
chain.doFilter(request, response);
|
flag = false;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
LoginUser loginUser = tokenService.getLoginUser(request);
|
if (flag) {
|
||||||
if (StringUtils.isNotNull(loginUser) && StringUtils.isNull(SecurityUtils.getAuthentication()))
|
LoginUser loginUser = tokenService.getLoginUser(request);
|
||||||
{
|
if (StringUtils.isNotNull(loginUser) && StringUtils.isNull(SecurityUtils.getAuthentication())) {
|
||||||
tokenService.verifyToken(loginUser);
|
tokenService.verifyToken(loginUser);
|
||||||
UsernamePasswordAuthenticationToken authenticationToken = new UsernamePasswordAuthenticationToken(loginUser, null, loginUser.getAuthorities());
|
UsernamePasswordAuthenticationToken authenticationToken = new UsernamePasswordAuthenticationToken(loginUser, null, loginUser.getAuthorities());
|
||||||
authenticationToken.setDetails(new WebAuthenticationDetailsSource().buildDetails(request));
|
authenticationToken.setDetails(new WebAuthenticationDetailsSource().buildDetails(request));
|
||||||
SecurityContextHolder.getContext().setAuthentication(authenticationToken);
|
SecurityContextHolder.getContext().setAuthentication(authenticationToken);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
chain.doFilter(request, response);
|
chain.doFilter(request, response);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user