有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何使用/oauth/token端点创建访问令牌

目前,我们使用第三方程序(Postman)向/oauth/token端点发送身份验证请求,以便创建访问令牌。之后,我们将令牌粘贴到我们的招摇过市ui页面,在那里我们可以请求信息
我想让我的用户从我们的招摇过市用户界面页面生成一个访问令牌。我已经通过将/oauth/token端点添加到摘要的路径中公开了它

  @Bean
  public Docket api() {
    return new Docket(DocumentationType.SWAGGER_2)
        .groupName("version 2")
        .select()
        .apis(Predicates.not(RequestHandlerSelectors.basePackage("org.springframework.boot")))
        .paths(new Predicate<String>() {
          @Override
          public boolean apply(final String input) {
            return PathSelectors.regex("/oauth/token").apply(input)
          }
        })
        .build()
        .apiInfo(this.apiInfo("2"))
        .securitySchemes(Arrays.asList(this.authTok(), this.apiKey()))
        .securityContexts(Arrays.asList(this.securityContext))
        .useDefaultResponseMessages(false);
  }

这里链接的图片是我们的招摇过市ui页面中的令牌端点控制器
https://i.stack.imgur.com/Iwyny.png
不过,我不确定该如何使用它。如果忽略所需的查询参数,然后单击“执行”,它只会显示加载缓冲轮。如果我为queryparam和execute提供输入,就会出现一个对话框,询问用户名和密码。它似乎只接受基本身份验证的用户名和密码(通常是“可信客户端”和“机密”)。这两个查询参数的预期值是什么?有没有办法更改此端点的queryparameters

编辑
为了澄清,我们目前正在使用密码授权流。当我们向Postman发出请求时,我们以编码的形式向API提供用户的用户名和密码,并将基本身份验证作为请求的标题

使用curl(我们将curl用于自动测试脚本)时,请求如下所示:

curl -X POST "http://domain/oauth/token" -H "Authorization: Basic xxxxxxxxxxxxx" -H "Content-type: application/x-www-form-urlencoded" --data-urlencode grant_type='password' --data-urlencode username='xxxxxxx' --data-urlencode password='xxxxxxxx'

然而,当我们向任何其他端点发出请求时,我们需要在授权头中使用承载令牌

curl -X GET "http://domain/pets" -H "accept: application/json" -H "Content-Type: application/json" -H "x-api-key: xxxxxxxxx" -H "Authorization: bearer xxxxxxxxxx"

共 (0) 个答案