Spring boot SpringBoot 1 vs 2和Spring Oauth2-密码授予和客户端机密

Spring boot SpringBoot 1 vs 2和Spring Oauth2-密码授予和客户端机密,spring-boot,spring-security-oauth2,spring-oauth2,Spring Boot,Spring Security Oauth2,Spring Oauth2,有人知道SpringBoot和SpringOAuth2中的版本控制是如何工作的吗? 当我更改SpringBoot和SpringOAuth2的版本时,我从获取有效访问和刷新令牌变为“未经授权”错误。我使用的是SpringBootStarter家长版。 我运行了一些测试,它是Spring启动版本;当我从1更改版本时。。到2。。“/oauth/token”将不再受到攻击。 以下是身份验证服务器的配置: @Configuration @EnableAuthorizationServer public c

有人知道SpringBoot和SpringOAuth2中的版本控制是如何工作的吗? 当我更改SpringBoot和SpringOAuth2的版本时,我从获取有效访问和刷新令牌变为“未经授权”错误。我使用的是SpringBootStarter家长版。 我运行了一些测试,它是Spring启动版本;当我从1更改版本时。。到2。。“/oauth/token”将不再受到攻击。 以下是身份验证服务器的配置:

@Configuration
@EnableAuthorizationServer
public class AuthorizationServerConfig extends 
AuthorizationServerConfigurerAdapter {
@Override
public void configure(ClientDetailsServiceConfigurer configurer) throws 
Exception {
configurer
    .inMemory()
    .withClient(CLIENT_ID)
    //.secret("secret")
    .authorizedGrantTypes(GRANT_TYPE_PASSWORD, REFRESH_TOKEN)
    .redirectUris("http://localhost:8080/")
    .scopes(SCOPE_READ)
    .accessTokenValiditySeconds(ACCESS_TOKEN_VALIDITY_SECONDS).
    refreshTokenValiditySeconds(REFRESH_TOKEN_VALIDITY_SECONDS);
    }
    ...
   }

从SpringBoot 1到SpringBoot 2

  • 您必须添加一个客户端密码才能使授权服务器工作。这就是Spring Boot的工作原理
  • 如果您在Spring Boot 1中使用客户机机密,则不需要传递哈希,但在Spring Boot 2中需要这样做:

    inMemory()
    .withClient(CLIENT_ID)
    .secret(passwordEncoder.encode("secret"))