当前位置: 首页 > 知识库问答 >
问题:

OAuth2RestTemplate身份验证问题获取访问被拒绝

王渊
2023-03-14

通过使用以下curl命令,我能够访问令牌并获得以下响应curl用户名:password@machinename:11002/appName/oauth/token-d grant\u type=password-d username=loginFormUserID-d password=loginFormUserPassword

响应:{“实体\ id”:9,“实体\类型”:“刷新\标记”:“eyJhbGciOiJSUzI1NiJ9”,“范围”:“登录”、“到期日”:3599,“实体名称”:“名称”、“访问令牌”:“eyJhbGciOiJSUzI1NiJ9.ey”、“令牌类型”:“持有人”}

如果我将使用SpringOAuth2RestTem板我得到访问拒绝,这是我的代码详细信息

    ResourceOwnerPasswordAccessTokenProvider provider = new ResourceOwnerPasswordAccessTokenProvider();
    ResourceOwnerPasswordResourceDetails resource = new ResourceOwnerPasswordResourceDetails();
    resource.setClientAuthenticationScheme(AuthenticationScheme.form);
    resource.setAccessTokenUri("http://machinename:11002/appName/oauth/token");
    resource.setClientId("loginFormUserID");
    resource.setClientSecret("loginFormUserPassword");
    resource.setGrantType("password");
    resource.setUsername("username");
    resource.setPassword("password");
    OAuth2AccessToken accessToken = provider.obtainAccessToken(resource, new DefaultAccessTokenRequest());
    OAuth2RestTemplate restTemplateQ     = new OAuth2RestTemplate(resource, new DefaultOAuth2ClientContext(accessToken));
    System.out.println( restTemplateQ.getAccessToken());

线程“main”error=“访问被拒绝”,error\u description=“请求访问令牌时出错”中出现异常在org。springframework。安全oauth2。客户代币OAuth2AccessTokenSupport。retrieveToken(OAuth2AccessTokenSupport.java:145)位于org。springframework。安全oauth2。客户代币授予暗语ResourceOwnerPasswordAccessTokenProvider。在com上获取AccessToken(ResourceOwnerPasswordAccessTokenProvider.java:47)。科帕特。g1。卖者中间件。客户重新模板测试。main(restemplatetest.java:55)由:org引起。springframework。网状物客户HttpClientErrorException:401在组织中未经授权。springframework。网状物客户DefaultResponseErrorHandler。org上的handleError(DefaultResponseErrorHandler.java:91)。springframework。安全oauth2。客户代币OAuth2AccessTokenSupport$AccessTokenErrorHandler。handleError(OAuth2AccessTokenSupport.java:244)位于org。springframework。网状物客户RestTemplate。HandlerResponse(RestTemplate.java:641)位于org。springframework。网状物客户RestTemplate。doExecute(RestTemplate.java:597)位于org。springframework。网状物客户RestTemplate。在org上执行(restemplate.java:565)。springframework。安全oauth2。客户代币OAuth2AccessTokenSupport。retrieveToken(OAuth2AccessTokenSupport.java:137)。。。还有两个

共有1个答案

东方弘壮
2023-03-14

您需要删除resource.setClientAuthentiation计划(AuthentiationScheme.form);正确的形式是AuthentiationScheme.header

类ResourceOwnerPasswordResource详细信息扩展BaseOAuth2ProtectedResource详细信息,如果您看到这个类的值是身份验证Scheme.header

谢啦

 类似资料:
  • 昨天我在编码,当我做提交到一个回购,我不能这样做,因为,gitlab给我发送了两个消息。 这条消息出现在我试图promise的时刻 null

  • 我在Windows 10 Pro x64上使用GitLab Community Edition 9.1.3 2E4E522。使用Git客户端。

  • 我正在尝试运行Google Javascript YouTube API示例,当页面(search.html)加载时,我收到以下错误: 拒绝显示“https://accounts.google.com/o/oauth2/auth?client_id=[XXX]...F/本地主机 我是从一个主机上运行这个程序的,该主机在我在谷歌开发者控制台中的证书的“JavaScript源代码”部分中得到了授权。

  • 我在用Git-Lab。使用命令时遇到错误: 远程:HTTP Basic:访问被拒绝致命:“https://gitlab.com/myname/myproject”的身份验证失败 在之后,我面临这个问题。 我需要做任何代理设置吗?(这是防火墙相关的问题吗?) 我是结构化,我无法得到工作解决方案。

  • “Git push origin MyBranchName”抛出错误“HTTP Basic:拒绝访问” 我在GitLab中配置了密码。 我有SSL密钥创建后,项目是在GitLab上。

  • 问题内容: 我试图让我的自定义Java应用程序使用我们的Active Directory服务器进行身份验证,但由于某种原因我无法使其正常工作。谁能看到为什么呢?这是我的方法如下: 结果: 问题答案: 你尝试过这种方式吗? 也更换 与