1 回答

TA貢獻(xiàn)1815條經(jīng)驗(yàn) 獲得超13個(gè)贊
授權(quán)服務(wù)器
如果您想將此功能添加到您的授權(quán)服務(wù)器,并且您有一個(gè)自定義AbstractTokenGranter(請(qǐng)參閱下面的對(duì)話),那么您可以在該方法中捕獲所需的異常getOAuth2Authentication。然后,您可以拋出一個(gè)自定義異常,用您需要的任何附加字段
擴(kuò)展OAuth2Exception和填充地圖。 有關(guān)如何執(zhí)行此操作的示例,您可以查看spring-security-oauth 項(xiàng)目中的ResourceOwnerPasswordTokenGranter 。additionalInformation
客戶
相反,如果您想將此功能添加到您的 OAuth2 客戶端,那么您可以使用自定義AuthenticationFailureHandler來(lái)捕獲LockedExceptionand DisabledException。
這是一個(gè)示例安全配置:
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.oauth2Login()
.failureHandler(new CustomAuthenticationFailureHandler());
}
一個(gè)自定義的例子AuthenticationFailureHandler:
public class CustomAuthenticationFailureHandler implements AuthenticationFailureHandler {
@Override
public void onAuthenticationFailure(HttpServletRequest request,
HttpServletResponse response, AuthenticationException exception) {
if (exception instanceof DisabledException) {
// throw new exception or modify response
}
}
}
添加回答
舉報(bào)