簡體   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