gpt4 book ai didi

authentication - 如何使用 Post 方法获取 OAuth2 访问 token

转载 作者:行者123 更新时间:2023-12-01 10:38:18 24 4
gpt4 key购买 nike

我正在尝试使用 spring security 配置 oauth2,我从

中举了一个例子
https://github.com/neel4software/SpringSecurityOAuth2

现在我的问题是我需要使用 post 方法而不是 get 来获取 oauth2 访问 token ,下面是如何在 spring security xml 中配置 token 端点

这是有效的 GET 方法 URL 端点

http://localhost:8080/SpringRestSecurityOauth/oauth/token?grant_type=password&client_id=restapp&client_secret=restapp&username=beingjavaguys&password=spring@java 

这就是在spring security xml中完成端点配置的方式

<http pattern="/oauth/token" create-session="stateless"
authentication-manager-ref="clientAuthenticationManager"
xmlns="http://www.springframework.org/schema/security">
<intercept-url pattern="/oauth/token" access="IS_AUTHENTICATED_FULLY" />
<anonymous enabled="false" />
<http-basic entry-point-ref="clientAuthenticationEntryPoint" />
<!-- include this only if you need to authenticate clients via request
parameters -->
<custom-filter ref="clientCredentialsTokenEndpointFilter"
after="BASIC_AUTH_FILTER" />
<access-denied-handler ref="oauthAccessDeniedHandler" />
</http>

为了使用 POST 方法访问它,我尝试使用

http://localhost:8080/SpringRestSecurityOauth/oauth/token

将给定的参数作为 rest 客户端中的有效负载(我也尝试将这些参数作为 header 参数)

grant_type: password
client_id: restapp
client_secret: restapp
username: beingjavaguys
password: spring@java

但每次我尝试使用 rest 客户端访问它时,它总是提示我输入我不知道的用户名和密码。我将用户名设置为“beingjavaguys”,将密码设置为“spring@java”,但没有用。我是第一次使用 Oauth2

最佳答案

生成一个密码为grant_type的oauth 2.0 token,流程如下

credential = base64Encode(clientId:secret)

凭证的值为cmVzdGFwcDpyZXN0YXBw

现在您的请求应该是这样的,

POST /SpringRestSecurityOauth/oauth/token

HOST: localhost:8080
Authorization: Basic cmVzdGFwcDpyZXN0YXBw
Content-Type: application/x-www-form-urlencoded
Payload:
grant_type=password&username=beingjavaguys&password=spring%40java

关于authentication - 如何使用 Post 方法获取 OAuth2 访问 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32049574/

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