update 回滚配置

This commit is contained in:
疯狂的狮子li 2021-09-26 16:42:42 +08:00
parent aed8969498
commit 369438a46d

View File

@ -4,14 +4,11 @@ import com.ruoyi.common.core.domain.model.LoginUser;
import com.ruoyi.common.core.service.TokenService; import com.ruoyi.common.core.service.TokenService;
import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.framework.config.properties.SecurityProperties;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.security.web.authentication.WebAuthenticationDetailsSource; import org.springframework.security.web.authentication.WebAuthenticationDetailsSource;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.util.AntPathMatcher;
import org.springframework.util.PathMatcher;
import org.springframework.web.filter.OncePerRequestFilter; import org.springframework.web.filter.OncePerRequestFilter;
import javax.servlet.FilterChain; import javax.servlet.FilterChain;
@ -31,30 +28,16 @@ public class JwtAuthenticationTokenFilter extends OncePerRequestFilter
@Autowired @Autowired
private TokenService tokenService; private TokenService tokenService;
@Autowired
private SecurityProperties securityProperties;
@Override @Override
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain chain) protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain chain)
throws ServletException, IOException throws ServletException, IOException
{ {
// 匿名路径放行 默认拦截 LoginUser loginUser = tokenService.getLoginUser(request);
boolean flag = true; if (StringUtils.isNotNull(loginUser) && StringUtils.isNull(SecurityUtils.getAuthentication())) {
PathMatcher pm = new AntPathMatcher(); tokenService.verifyToken(loginUser);
for (String anonymou : securityProperties.getAnonymous()) { UsernamePasswordAuthenticationToken authenticationToken = new UsernamePasswordAuthenticationToken(loginUser, null, loginUser.getAuthorities());
if (pm.match(anonymou, request.getRequestURI())) { authenticationToken.setDetails(new WebAuthenticationDetailsSource().buildDetails(request));
flag = false; SecurityContextHolder.getContext().setAuthentication(authenticationToken);
break;
}
}
if (flag) {
LoginUser loginUser = tokenService.getLoginUser(request);
if (StringUtils.isNotNull(loginUser) && StringUtils.isNull(SecurityUtils.getAuthentication())) {
tokenService.verifyToken(loginUser);
UsernamePasswordAuthenticationToken authenticationToken = new UsernamePasswordAuthenticationToken(loginUser, null, loginUser.getAuthorities());
authenticationToken.setDetails(new WebAuthenticationDetailsSource().buildDetails(request));
SecurityContextHolder.getContext().setAuthentication(authenticationToken);
}
} }
chain.doFilter(request, response); chain.doFilter(request, response);
} }