java - Spring-Security-Oauth2:访问此资源需要完全身份验证

标签 java oauth-2.0 unauthorized spring-security-oauth2

我正在尝试将 spring-security-oauth2.0 与基于 Java 的配置一起使用。我的配置已完成,但是当我在 tomcat 上部署应用程序并点击 /oauth/token url 获取访问 token 时,Oauth 生成以下错误:

<oauth>
<error_description>Full authentication is required to access this resource</error_description>
<error>unauthorized</error>
</oauth>

我的配置在 Git hub, please click on link

代码比较大,引用git。我正在使用 chrome postman 客户端发送请求。以下是我的要求。

POST /dummy-project-web/oauth/token HTTP/1.1
Host: localhost:8081
Cache-Control: no-cache
Content-Type: application/x-www-form-urlencoded

grant_type=client_credentials&client_id=abc%40gmail.com&client_secret=12345678 

错误就像,Oauth 的 URL 是安全的,但在配置中,我授予访问此 URL 的所有权限。这个问题究竟是什么?

最佳答案

默认情况下,client_idclient_secret 应该放在 Authorization header 中,而不是 form-urlencoded 正文中。

  1. 用冒号连接您的 client_idclient_secret:abc@gmail.com:12345678
  2. Base 64 编码结果:YWJjQGdtYWlsLmNvbToxMjM0NTY3OA==
  3. 设置 Authorization header :Authorization: Basic YWJjQGdtYWlsLmNvbToxMjM0NTY3OA==

关于java - Spring-Security-Oauth2:访问此资源需要完全身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26881296/

相关文章:

java - Android:从其他类调用 main 中按钮的 OnClick

java - 如果在 Jboss AS 7 中将 jdbc 部署为 Web 应用程序,模块名称是什么

oauth-2.0 - 允许用户使用 Google 帐户登录我的网站,无需 3d 派对 cookie

c# - 如何使用 C# 安装 Windows 字体

java - eclipse mars 中 apache tomcat 8startup 的问题

java - "Invalid signature file digest"通过Maven添加Janino包出错

oauth - 我可以自己设置 KEYCLOAK_IDENTITY cookie吗

google-cloud-platform - 项目中没有使用过API或者被禁用403错误

Azure 预算 ARM 模板部署未经授权