spring-oauth2 - 如何在获取访问 token 时使用 OAuth2RestTemplate 设置连接超时

标签 spring-oauth2

我们能够使用附加的代码快照获取访问 token ,但没有找到任何方法来设置连接超时,就像我们使用 Spring RestTemplate 所做的那样。有没有办法使用 OAuth2RestTemplate 设置连接超时。

<bean id="bean" class="com.test.Provider">
            <constructor-arg name="context" ref="context" />
            <constructor-arg name="detail" ref="resourceDetails" />
        </bean>

        <bean id="context" class="org.springframework.security.oauth2.client.DefaultOAuth2ClientContext">
            <constructor-arg name="accessTokenRequest" ref="request" />
        </bean>

        <bean id="request" class="org.springframework.security.oauth2.client.token.DefaultAccessTokenRequest"/>

        <bean id="resourceDetails" class="org.springframework.security.oauth2.client.token.grant.client.ClientCredentialsResourceDetails"/>

最佳答案

有点晚了,但如果你想知道如何使用 springboot 做到这一点,这是一种方法:

    @Bean
    protected OAuth2RestTemplate oauth2RestTemplate(ClientHttpRequestFactory clientHttpRequestFactory) {
        OAuth2RestTemplate oAuth2RestTemplate = new OAuth2RestTemplate(oAuthDetails());
        oAuth2RestTemplate.setRequestFactory(clientHttpRequestFactory);
        return oAuth2RestTemplate;
    }

    @Bean
    protected ClientHttpRequestFactory requestFactory() {
        SimpleClientHttpRequestFactory requestFactory = new SimpleClientHttpRequestFactory();
        requestFactory.setConnectTimeout(10000); //timeout in milliseconds
        requestFactory.setReadTimeout(10000); //timeout in milliseconds
        return requestFactory;
    }

其中oAuthDetails()是读取oauth配置属性的方法,类似于:

    @Bean
    @ConfigurationProperties("path.to.your.oauth.properties.on.yml")
    protected ClientCredentialsResourceDetails oAuthDetails() {
        return new ClientCredentialsResourceDetails();
    }

关于spring-oauth2 - 如何在获取访问 token 时使用 OAuth2RestTemplate 设置连接超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54085582/

相关文章:

java - 尽管authorizeRequests().anyRequest().permitAll(),spring-security仍返回401

java - Spring Boot : error =“invalid_grant” , error_description =“Bad credentials”

spring - 将自定义 UserDetailsS​​ervice 添加到 Spring Security OAuth2 应用程序

Spring 安全: How to pass oauth2 access token in request headers

spring - 如何 Autowiring 此 TokenStore

java - Spring OAuth2 授权服务器替代方案

spring - 调用 spring 授权服务器 OAuth2 REST 端点

spring - 如何将 header 添加到 `AuthenticationKeyGenerator` 中?

java - Spring : How to get Oauth2 token from Postman?