繁体   English   中英

Spring OAuth2 Auth Server:特定的/ oauth / token过滤器?

[英]Spring OAuth2 Auth Server: a specific /oauth/token filter?

我目前正在检查所有传入的Authorization标头中的JWT令牌值,以便可以检查这些令牌是否被列入黑名单。 我已经为此实现了一个自定义Filter

问题在于该过滤器正在处理进入服务器的所有请求。 我只想处理即将到达/oauth/token端点的请求。

是否可以在Spring OAuth2 Auth Server中实现该功能?

您的问题有两个方面,一个是“过滤顺序”,两个仅过滤特定的URL路径。 都可以通过使用FilterRegistrationBean注入过滤器来解决。 请参见下面的示例。

@Bean
public FilterRegistrationBean securityFilter() {
    Filter f = new MySecurityFilter();
    FilterRegistrationBean frb = new FilterRegistrationBean(f);
    frb.setOrder(SecurityProperties.ACCESS_OVERRIDE_ORDER);
    frb.setUrlPatterns(Arrays.asList("/oauth/token"));
    return frb;
}

这是过滤器优先级的问题。 添加:

@Order(SecurityProperties.ACCESS_OVERRIDE_ORDER) 

到您的WebSecurityConfiguration应该可以帮助您。

如果您的自定义过滤器扩展了OncePerRequestFilter ,则可以覆盖shouldNotFilter方法。

@Override
protected boolean shouldNotFilter(HttpServletRequest request) throws ServletException {
    return !new AntPathMatcher().match("/oauth/token", request.getServletPath());
}

从文件

可以在子类中重写以进行自定义过滤控制,返回true以避免过滤给定的请求。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM