gpt4 book ai didi

java - 如何基于 URL 模式应用 Spring Boot 过滤器?

转载 作者:IT老高 更新时间:2023-10-28 13:55:52 26 4
gpt4 key购买 nike

我创建了一个 Spring Boot 过滤器 - 使用 @Component 注释实现 GenericFilterBean

@Component 
public class MyAuthenticationFilter extends GenericFilterBean {
...
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
...
}
}

过滤器由 Spring Boot Framework 自动识别,适用于所有 REST API。我希望此过滤器仅适用于某个 URL 路径,例如 /api/secure/* 但我找不到正确的方法。我试过 @WebFilter 但没有用。我没有使用 XML 配置或 servlet 初始化程序 - 只是注释。

什么是让它工作的正确方法?

最佳答案

如果您能够扩展 OncePerRequestFilter,还有另一种选择。例如:

public class SomeFilter extends OncePerRequestFilter {

@Override
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException {
// your filter logic ....
}

@Override
protected boolean shouldNotFilter(HttpServletRequest request) {
String path = request.getServletPath();
return !path.startsWith("/api/secure/");
}
}

关于java - 如何基于 URL 模式应用 Spring Boot 过滤器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39710526/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com