前端页面用户登录的问题
This commit is contained in:
parent
ad718495d3
commit
5c590b3f52
@ -7,12 +7,14 @@ import ink.wgink.login.oauth2.client.auth.manager.UserToken;
|
||||
import ink.wgink.pojo.bos.UserInfoBO;
|
||||
import org.springframework.core.Ordered;
|
||||
import org.springframework.core.annotation.Order;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
|
||||
import org.springframework.security.core.context.SecurityContext;
|
||||
import org.springframework.security.core.context.SecurityContextHolder;
|
||||
import org.springframework.security.core.context.SecurityContextHolderStrategy;
|
||||
import org.springframework.security.web.context.SecurityContextRepository;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.util.AntPathMatcher;
|
||||
import org.springframework.web.filter.OncePerRequestFilter;
|
||||
|
||||
import javax.servlet.FilterChain;
|
||||
@ -27,10 +29,23 @@ import java.io.IOException;
|
||||
@WebFilter(filterName = "ContentCachingFilter", urlPatterns = "/*")
|
||||
public class UserTokenFilter extends OncePerRequestFilter {
|
||||
|
||||
private static final AntPathMatcher ANT_PATH_MATCHER = new AntPathMatcher();
|
||||
|
||||
@Override
|
||||
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException {
|
||||
String userId = request.getHeader("X-USER-ID");
|
||||
String source = request.getHeader("X-SOURCE");
|
||||
if (StringUtils.isBlank(userId)) {
|
||||
Object springSecurityContext = request.getSession().getAttribute("SPRING_SECURITY_CONTEXT");
|
||||
if(!StringUtils.equals(source, "page")) {
|
||||
filterChain.doFilter(request, response);
|
||||
return;
|
||||
}
|
||||
String requestUri = request.getRequestURI().replaceFirst(request.getContextPath(), "");
|
||||
if (springSecurityContext == null && ANT_PATH_MATCHER.match("/api/**", requestUri)) {
|
||||
response.setStatus(HttpStatus.UNAUTHORIZED.value());
|
||||
return;
|
||||
}
|
||||
filterChain.doFilter(request, response);
|
||||
return;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user