mirror of
https://codeup.aliyun.com/64f7d6b8ce01efaafef1e678/coal/coal.git
synced 2026-01-25 07:46:40 +08:00
auth 支持上下文路径
This commit is contained in:
@@ -18,6 +18,7 @@ import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.http.entity.ContentType;
|
||||
import org.slf4j.MDC;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.core.annotation.Order;
|
||||
import org.springframework.http.server.PathContainer;
|
||||
import org.springframework.stereotype.Component;
|
||||
@@ -48,6 +49,10 @@ public class AuthFilter extends OncePerRequestFilter {
|
||||
@Autowired
|
||||
PlatformTransactionManager transactionManager;
|
||||
|
||||
|
||||
@Value("${server.servlet.context-path}")
|
||||
private String contextPath;
|
||||
|
||||
@Override
|
||||
public void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException {
|
||||
|
||||
@@ -73,7 +78,7 @@ public class AuthFilter extends OncePerRequestFilter {
|
||||
String sessionId = request.getHeader("X-Token");
|
||||
|
||||
|
||||
Optional<ResourceEntity> resource = resourceService.findByCode(request.getRequestURI());
|
||||
Optional<ResourceEntity> resource = resourceService.findByCode(getRequestURI(request));
|
||||
|
||||
|
||||
if (resource.isEmpty()) {
|
||||
@@ -150,7 +155,7 @@ public class AuthFilter extends OncePerRequestFilter {
|
||||
boolean matches = false;
|
||||
for (String url : systemConfig.getAnonymous().getUrl()) {
|
||||
|
||||
matches = PathPatternParser.defaultInstance.parse(url).matches(PathContainer.parsePath(request.getRequestURI()));
|
||||
matches = PathPatternParser.defaultInstance.parse(url).matches(PathContainer.parsePath(getRequestURI(request)));
|
||||
if (matches) {
|
||||
break;
|
||||
}
|
||||
@@ -158,6 +163,17 @@ public class AuthFilter extends OncePerRequestFilter {
|
||||
return matches;
|
||||
}
|
||||
|
||||
private String getRequestURI(HttpServletRequest request) {
|
||||
if (StringUtils.equalsIgnoreCase(contextPath, "/")) {
|
||||
|
||||
return request.getRequestURI();
|
||||
}else {
|
||||
|
||||
return request.getRequestURI().replace(contextPath, "/");
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@Autowired
|
||||
ObjectMapper objectMapper;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user