我尝试使用Spring Boot OAuth包实现OAuth身份验证服务器。我正在关注this文章,但是我没有使用JDBC TokenStore,而是只需要InMemoryTokenStore和隐式授权。
应用程序通过表单登录进行保护,我可以登录,授予访问权限并通过短令牌重定向到重定向uri。但在那之后,InMemoryTokenStore是空的。我试过调试,看起来像方法storeAccessToken永远不会被调用。
我的配置文件如下所示:
@Configuration
@EnableAuthorizationServer
public class OAuth2ServerConfig extends AuthorizationServerConfigurerAdapter {
@Autowired
private AuthenticationManager authenticationManager;
private Logger log = Logger.getLogger(getClass().getName());
@Override
public void configure(AuthorizationServerSecurityConfigurer oauthServer) throws Exception {
oauthServer
.tokenKeyAccess("permitAll()")
.checkTokenAccess("permitAll()");
}
@Override
public void configure(ClientDetailsServiceConfigurer clients) throws Exception {
clients
.inMemory()
.withClient("tripapp")
.authorizedGrantTypes("implicit")
.redirectUris("http://localhost:8080/redirect")
.scopes("read")
.authorities("USER")
.autoApprove(false)
.accessTokenValiditySeconds(3600);
}
@Override
public void configure(AuthorizationServerEndpointsConfigurer endpoints) throws Exception {
endpoints
.tokenStore(tokenStore())
.authenticationManager(authenticationManager);
}
@Bean
public TokenStore tokenStore() {
return new InMemoryTokenStore();
}
}
有没有人知道问题出在哪里?