ResourceServerTokenServicesConfiguration 在 Spring Boot 2.0.0.M7 中消失
ResourceServerTokenServicesConfiguration disappeared in Spring Boot 2.0.0.M7
我有一个使用 OAuth2 的 Spring 启动应用程序并在 Spring Boot 2.0.0.M2 中成功运行 我将 Spring 启动版本切换到 2.0.0.M7 和应用程序停止工作。
经过一些调试,我发现 class 'org.springframework.boot.autoconfigure.security.oauth2.resource.ResourceServerTokenServicesConfiguration' 已从 2.0.0.M7 中的工件 'spring-boot-autoconfigure' 中删除,该工件正在执行以下初始化...
@Bean
@ConditionalOnMissingBean(ResourceServerTokenServices.class)
public UserInfoTokenServices userInfoTokenServices() {
UserInfoTokenServices services = new UserInfoTokenServices(
this.sso.getUserInfoUri(), this.sso.getClientId());
services.setRestTemplate(this.restTemplate);
services.setTokenType(this.sso.getTokenType());
if (this.authoritiesExtractor != null) {
services.setAuthoritiesExtractor(this.authoritiesExtractor);
}
if (this.principalExtractor != null) {
services.setPrincipalExtractor(this.principalExtractor);
}
return services;
}
现在删除了这个 class,没有初始化发生,'DefaultTokenServices' 在 class 'org.springframework.security.oauth2.config.annotation.web.configurers.ResourceServerSecurityConfigurer' 中初始化,我的应用程序失败了。
private ResourceServerTokenServices tokenServices(HttpSecurity http) {
if (resourceTokenServices != null) {
return resourceTokenServices;
}
DefaultTokenServices tokenServices = new DefaultTokenServices();
tokenServices.setTokenStore(tokenStore());
tokenServices.setSupportRefreshToken(true);
tokenServices.setClientDetailsService(clientDetails());
this.resourceTokenServices = tokenServices;
return tokenServices;
}
有人知道为什么这个 class 被删除或者有任何替代品吗?
感谢解答...
似乎自动配置将这些配置委托给 Spring Security 5,直到准备就绪,他们提供了一个临时 jar 文件来实现旧功能,可以通过以下问题实现...
https://github.com/spring-projects/spring-security-oauth/issues/1240
我有一个使用 OAuth2 的 Spring 启动应用程序并在 Spring Boot 2.0.0.M2 中成功运行 我将 Spring 启动版本切换到 2.0.0.M7 和应用程序停止工作。
经过一些调试,我发现 class 'org.springframework.boot.autoconfigure.security.oauth2.resource.ResourceServerTokenServicesConfiguration' 已从 2.0.0.M7 中的工件 'spring-boot-autoconfigure' 中删除,该工件正在执行以下初始化...
@Bean
@ConditionalOnMissingBean(ResourceServerTokenServices.class)
public UserInfoTokenServices userInfoTokenServices() {
UserInfoTokenServices services = new UserInfoTokenServices(
this.sso.getUserInfoUri(), this.sso.getClientId());
services.setRestTemplate(this.restTemplate);
services.setTokenType(this.sso.getTokenType());
if (this.authoritiesExtractor != null) {
services.setAuthoritiesExtractor(this.authoritiesExtractor);
}
if (this.principalExtractor != null) {
services.setPrincipalExtractor(this.principalExtractor);
}
return services;
}
现在删除了这个 class,没有初始化发生,'DefaultTokenServices' 在 class 'org.springframework.security.oauth2.config.annotation.web.configurers.ResourceServerSecurityConfigurer' 中初始化,我的应用程序失败了。
private ResourceServerTokenServices tokenServices(HttpSecurity http) {
if (resourceTokenServices != null) {
return resourceTokenServices;
}
DefaultTokenServices tokenServices = new DefaultTokenServices();
tokenServices.setTokenStore(tokenStore());
tokenServices.setSupportRefreshToken(true);
tokenServices.setClientDetailsService(clientDetails());
this.resourceTokenServices = tokenServices;
return tokenServices;
}
有人知道为什么这个 class 被删除或者有任何替代品吗?
感谢解答...
似乎自动配置将这些配置委托给 Spring Security 5,直到准备就绪,他们提供了一个临时 jar 文件来实现旧功能,可以通过以下问题实现...
https://github.com/spring-projects/spring-security-oauth/issues/1240