0

我是 Java 新手,我们有一个使用 oauth2RestTemplate 使用 SSO 实现的应用程序,由于某种原因,SSO 在非常罕见的情况下不会成功,我们无法追踪,SSO 系统由不同的团队管理。

这是我们配置的代码

@Bean
    public AccessTokenProvider accessTokenProviderChain() {
        return new AccessTokenProviderChain(Arrays.<AccessTokenProvider>asList(new OpenIDTokenProvider(),
                new AuthorizationCodeAccessTokenProvider(), new ImplicitAccessTokenProvider(),
                new ResourceOwnerPasswordAccessTokenProvider(), new ClientCredentialsAccessTokenProvider()));
    }

    @Bean
    @Primary
    public OAuth2RestTemplate oauth2RestTemplate(OAuth2ClientContext oauth2ClientContext,
            OAuth2ProtectedResourceDetails details) {
        OAuth2RestTemplate oauth2RestTemplate = new OAuth2RestTemplate(details, oauth2ClientContext);
        oauth2RestTemplate.setAccessTokenProvider(accessTokenProviderChain());      
        return oauth2RestTemplate;

on pre handler 


Map<?, ?> userInfoResponse = oauth2RestTemplate.getForObject("{ssoServiceUrl}/userinfo", Map.class,
                ssoServiceUrl);

OAuth2AccessToken accessToken = oauth2RestTemplate.getOAuth2ClientContext().getAccessToken();

我的问题是有什么方法可以在 SSO 不成功时重新尝试请求,或者在 SSO 失败时重定向到给定的 URL,现在 SSO 正在重定向到它自己的错误页面,该页面没有向用户提供任何信息

任何建议将不胜感激。

4

0 回答 0