gpt4 book ai didi

java - 如何设置自定义 OAuth2RestTemplate 或自定义 OAuth2ProtectedResourceDetails?

转载 作者:行者123 更新时间:2023-11-30 03:03:33 24 4
gpt4 key购买 nike

我有启用了 @EnableOAuth2Sso 的前端应用程序。另外,我想使用自定义 OAuth2ProtectedResourceDetails 注入(inject)所有 OAuth2RestTemplate beans(特别是重新定义 OAuth2RestOperationsConfiguration 中 OAuth2RestTemplate 的行为)。我刚刚为 OAuth2ProtectedResourceDetails 定义了自己的 bean,但 OAuth2RestTemplate 仍然使用 AuthorizationCodeResourceDetails)。

@SpringBootApplication(scanBasePackages = {"base.package"})
@EnableOAuth2Sso
@EnableZuulProxy
public class Application extends WebSecurityConfigurerAdapter {

public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}

@Autowired
private RedirectUriResolver redirectUriResolver;

@Override
public void configure(HttpSecurity http) throws Exception {
// some http configuration
}

@Bean
public OAuth2ProtectedResourceDetails resource() {
AuthorizationCodeResourceDetails resource = new CustomAuthorizationCodeResourceDetails(redirectUriResolver);
return resource;
}
}

我应该以某种方式重新定义整个 OAuth2RestTemplate bean 还是只是这个 OAuth2ProtectedResourceDetails?

最佳答案

您应该能够使用自己的方法重载在 OAuth2RestOperationsConfiguration 中设置的 Bean

    @Bean
@ConfigurationProperties("security.oauth2.client")
public ClientCredentialsResourceDetails oauth2RemoteResource() {
ClientCredentialsResourceDetails details = new ClientCredentialsResourceDetails();
return details;
}

如果没有,只需创建自己的bean

@Bean
@ConfigurationProperties("security.oauth2.client")
public ClientCredentialsResourceDetails customOauth2RemoteResource() {
ClientCredentialsResourceDetails details = new ClientCredentialsResourceDetails();
return details;
}

@Bean
public OAuth2RestTemplate customOauth2RestTemplate() {
OAuth2RestTemplate template = new OAuth2RestTemplate(customOauth2RemoteResource(),
new DefaultOAuth2ClientContext());
return template;
}

然后使用@Qualifier来引用它们

@Autowired
@Qualifier("customOauth2RestTemplate")
private RestTemplate restTemplate;

关于java - 如何设置自定义 OAuth2RestTemplate 或自定义 OAuth2ProtectedResourceDetails?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35363550/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com