Unsuported grant type:密码 - Spring Boot OAuth2

时间:2018-03-28 10:56:07

标签: spring spring-mvc spring-boot spring-security oauth-2.0

这是我对Oauth2Authorization服务器的配置

    @Configuration
    @EnableAuthorizationServer
    class OAuth2AuthorizationServer : AuthorizationServerConfigurerAdapter() {
     // Configures client app
    override fun configure(clients: ClientDetailsServiceConfigurer) {

        clients
                .inMemory()
                .withClient("client")
                .authorizedGrantTypes("password")
                .secret("{noop}secret")
                .scopes("all")
    }

    @Autowired
    private lateinit var authenticationManager: AuthenticationManager

    @Bean
    fun accessTokenConverter(): JwtAccessTokenConverter {
        val converter = JwtAccessTokenConverter()
        converter.setSigningKey(OAuth2ConfigVariables.JWT_SIGNING_KEY)
        return converter
    }

    @Bean
    fun tokenStore(): TokenStore {
        return JwtTokenStore(accessTokenConverter())
    }

    @Throws(Exception::class)
    override fun configure(endpoints: AuthorizationServerEndpointsConfigurer) {
        endpoints.tokenStore(tokenStore())
                .authenticationManager(authenticationManager)
                .accessTokenConverter(accessTokenConverter())
    }


}

这是我的卷曲请求

curl client:secret@localhost:8080/oauth/token -d grant_type=password -d username=user -d password=pwd

我总是得到

{
 "error" : "unsupported_grant_type",
 "error_description" : "Unsupported grant type: password"
}

2 个答案:

答案 0 :(得分:0)

希望能帮助您! 也许您应该在http请求授权中添加参数。 例如:

  1. 用户名:xxx(这是客户端ID,在您的项目中是“客户端”)
  2. 密码:xxx(这是客户端密码,在您的项目中是“ {noop}秘密”)
  3. 类型为“基本身份验证” enter image description here

邮递员^-^

答案 1 :(得分:0)

这里的问题是一致的:

 .authorizedGrantTypes("password")

密码这个词需要加密才能工作。