扩展OAuth2RestTemplate类

时间:2018-06-01 19:17:28

标签: spring spring-boot spring-security-oauth2 oauth2resttemplate

在我的应用程序中,我有两个OAuth2RestTemplate bean,一个在我的代码中创建,另一个是使用自定义库创建的。

@Bean(name = "apsRestTemplate")    
    public OAuth2RestOperations restTemplate() {
        AccessTokenRequest atr = new DefaultAccessTokenRequest();

        return new OAuth2RestTemplate(resource(), new DefaultOAuth2ClientContext(atr));
    }

和一个从库

创建的
OAuth2RestTemplate oAuth2RestTemplate =  beanFactory.getBean(OAuth2RestTemplate.class, this.resourceId);

由于我在上下文中有两个bean,Spring抱怨它找到了两种相同类型的bean。

我不能给第二个bean一个名字,因为它是从外部库创建的。 为了解决这个问题,我想扩展OAuth2RestTemplate类,以便我将使用相同的所有OAuth2RestTemplate方法使用不同的类,所以我的spring不会抱怨两个bean。

我只是将其扩展如下

public class OAuthTemplateExtention extends OAuth2RestTemplate{

    public OAuthTemplateExtention(OAuth2ProtectedResourceDetails resource, OAuth2ClientContext context) {
            super(resource, context);           
        }       
    }

现在我使用扩展类来关闭oAuth2RestTemplate

OAuthTemplateExtention oAuth2RestTemplate = (OAuthTemplateExtention) beanFactory.getBean(OAuth2RestTemplate.class, this.resourceId);

我正在获得班级异常

"org.springframework.security.oauth2.client.OAuth2RestTemplate$$EnhancerBySpringCGLIB$$7e29ac2d cannot be cast to .config.OAuthTemplateExtention",

我这样做了吗?

0 个答案:

没有答案