gpt4 book ai didi

authentication - 带有 Client_Id 和 Client_Secret 的 OAuth2 密码授予类型

转载 作者:行者123 更新时间:2023-12-04 03:01:22 27 4
gpt4 key购买 nike

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

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

和:

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] o.s.s.w.a.ExceptionTranslationFilter : Access is denied (user is anonymous); redirecting to authentication entry point

org.springframework.security.access.AccessDeniedException: Access is denied at 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

关于authentication - 带有 Client_Id 和 Client_Secret 的 OAuth2 密码授予类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30112801/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com