我想覆盖CheckTokenEndpoint以提供我自己的自定义输出作为Map到资源服务器。我尝试了以下,但没有工作。
使用a覆盖bean'checkTokenEndpoint'的bean定义 不同的定义:替换[Generic bean:class [com.datami.auth.security.CheckTokenEndpoint];范围=单; 抽象= FALSE; lazyInit = FALSE; autowireMode = 0; dependencyCheck = 0; autowireCandidate = TRUE;初级= FALSE; factoryBeanName = NULL; factoryMethodName = NULL; initMethodName = NULL; destroyMethodName = NULL; 在文件中定义 [/usr/local/Cellar/tomcat/8.5.5/libexec/webapps/oauth-server/WEB-INF/classes/com/datami/auth/security/CheckTokenEndpoint.class]] 用[Root bean:class [null];范围=;抽象= FALSE; lazyInit = FALSE; autowireMode = 3; dependencyCheck = 0; autowireCandidate = TRUE; 初级= FALSE; factoryBeanName = org.springframework.security.oauth2.config.annotation.web.configuration.AuthorizationServerEndpointsConfiguration; factoryMethodName = checkTokenEndpoint; initMethodName = NULL; destroyMethodName =(推断);在类路径资源中定义 [组织/ springframework的/安全/的oauth2 /配置/注解/网络/配置/ AuthorizationServerEndpointsConfiguration.class]]
使用(/oauth/check_custom_token
)创建了我自己的端点但不确定自动装配下面的resourceServerTokenServices,@ usowire对我没有帮助。
@autowire
private ResourceServerTokenServices resourceServerTokenServices;
Spring已使用DefaultTokenServices
自动启用此功能。
我也可以在我的代码中创建new DefaultTokenServices()
,但是如何在DefaultTokenServices内部自动装配?再次出现同样的问题。
private TokenStore tokenStore;
private ClientDetailsService clientDetailsService;
private TokenEnhancer accessTokenEnhancer;
private AuthenticationManager authenticationManager;
Coul,请你帮帮我。
答案 0 :(得分:2)
CheckTokenEndpoint
取决于其accessTokenConverter
实例来创建并返回地图。
您可以创建自定义AccessTokenConverter(如果需要,可以从OOTB DefaultAccessTokenConverter
扩展)并像这样使用它:
@Configuration
@EnableAuthorizationServer
public class MyAuthConfig extends AuthorizationServerConfigurerAdapter {
...
@Override
public void configure(AuthorizationServerEndpointsConfigurer endpoints) throws Exception {
endpoints.accessTokenConverter(new MyAccessTokenConverter())...
....
当然,您可能希望使用工厂方法来创建accessTokenConverter实例,这允许您将一些属性注入实例等。
完成后,在AuthorizationServerEndpointsConfiguration.checkTokenEndpoint
内你可以看到你在上面设置的accessTokenConverter将传递给CheckTokenEndpoint
的OOTB实例并用于创建地图。