【发布时间】:2020-07-14 17:32:42
【问题描述】:
我已经在我的 springboot 应用程序中实现了 OncePerRequestFilter,但是在添加过滤器 swagger 后没有打开它给出 401 错误(这很明显)。我的问题是如何绕过过滤器中的招摇。
我在我的 pom 文件中只添加了这个依赖项
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-ui</artifactId>
<version>${swagger.springdoc.openapi}</version>
</dependency>
这是我的过滤器文件的代码
@Component
public class RequestResponseFilter extends OncePerRequestFilter{
@Inject
private AuthService authService;
@Override
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain)
throws ServletException, IOException {
if(request.getServletPath().contains(ApiResource.PING)) {
response.setStatus(HttpServletResponse.SC_OK);
return;
}else if(request.getServletPath().contains("swagger-ui.html")){
//return;
}else if(request.getServletPath().contains("swagger-ui/index.html")){
//return;
}
else {
// Get the HTTP Authorization header from the request
final String authorizationHeader = request.getHeader(HttpHeaders.AUTHORIZATION);
final boolean authStatus = authService.authenticate(authorizationHeader);
if (!authStatus) {
response.sendError(HttpServletResponse.SC_UNAUTHORIZED,
"REST signature failed validation.");
return;
}
}
filterChain.doFilter(request, response);
}
}
我尝试添加我的招摇网址,正如您在 else 条件下看到的那样(作为一种解决方法),但这也不起作用..
任何帮助将不胜感激。
TIA
【问题讨论】:
标签: java spring-boot filter swagger