[英]Spring security oauth2 - add filter after oauth/token call
[英]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.