具有客户端的OAuth2密码格式类型

我正在开发一款应用程序,通过Rest端点访问自己的资源。

用户需要通过电子邮件/密码获取访问令牌。 完成认证服务器配置后,我有这样的观察:

附:

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

我收到了正确的回应:

{"access_token":"7541a4f6-e841-41a0-8a54-abf8e0666ed1","token_type":"bearer","refresh_token":"d3fdd7e3-53eb-4e7b-aa45-b524a9e7b316","expires_in":43199,"scope":"openid"}

但是:

curl http://localhost:9999/uaa/oauth/token -d grant_type=password -d username=user -d password=password -d client_id=client -d client_secret=secret

我收到以下错误:

DEBUG 4123 --- [nio-9999-exec-7] osswaExceptionTranslationFilter:访问被拒绝(用户是匿名的); 重定向到认证入口点

org.springframework.security.access.AccessDeniedException:访问被拒绝在org.springframework.security.access.vote.AffirmativeBased.decide(AffirmativeBased.java:83)

它看起来像发送参数时client_id&client_secret不被识别。 这是一个配置问题,或与我使用的OAuth2版本( spring-security- oauth2,2.0.5.RELEASE

我在互联网上遇到的很多示例都表明,应该使用OAuth2。

谢谢 :)


没有任何方法可以根据规范来强制执行授权服务器对客户端进行身份验证。 已经指定可以支持的两种方法是HTTP基本认证模式和您在示例中使用的HTTP POST参数模式。 显然Spring只支持第一个,这似乎得到了文档的支持:http://projects.spring.io/spring-security-oauth/docs/oauth2.html

链接地址: http://www.djcxy.com/p/84995.html

上一篇: OAuth2 Password Grant Type with Client

下一篇: Bundling files in different directories?