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

时间:2018-04-24 12:31:17

标签: java spring spring-oauth2

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

问题是此过滤器正在处理进入服务器的所有请求。我只想处理来到/oauth/token端点的请求。

是否可以在Spring OAuth2 Auth Server中实现它?

3 个答案:

答案 0 :(得分:6)

您的问题有两个方面,一个是筛选顺序,另外两个是仅筛选特定的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;
}

答案 1 :(得分:1)

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

@Order(SecurityProperties.ACCESS_OVERRIDE_ORDER) 

对您的WebSecurityConfiguration应该有所帮助。

答案 2 :(得分:1)

如果您的自定义过滤器扩展了public class DraggablePage extends BaseExtendablePage { @FindBy(xpath = "//a[@href= '#tabs-1']") WebElement defaultFunctionalityTableHeader; @FindBy(xpath = "//a[@href= '#tabs-3']") WebElement constraintMovementTableHeader; @FindBy(xpath = "//a[@href= '#tabs-4']") WebElement cursorStyleTableHeader; ... ,则可以覆盖OncePerRequestFilter方法。

shouldNotFilter

来自Doc

  

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