java - Java 中的 SonarQube Web API 身份验证

标签 java api sonarqube authorization token

我正在尝试使用 SonarQube 7.9.1 CE Web API 在 Java Spring Boot 应用程序中从服务器检索一些信息,我从一个非常简单的信息开始:​​项目列表。

事实证明,我需要通过 token 或用户/密码组合提供我的身份信息。但官方文档和 StackOverflow 答案仅显示 CURL 请求作为示例:

curl -u admin:admin http://localhost:9000/api/components/search_projects
curl -u 9548utj958tju5498jt934: http://localhost:9000/api/components/search_projects

我一直在尝试使用 RestTemplate 发送请求,但总是收到 401 UNAUTHORIZED 错误。

我应该如何发送用户 token ? 在请求 header 中?作为请求参数的一部分?没有人说。

我尝试使用Bearer 9548utj958tju5498jt934Basic 9548utj958tju5498jt934通过Authorization header 来完成此操作,在请求中插入参数,但没有任何效果.

谢谢。

最佳答案

解决方案是在标记后面放置“:”字符。 如果您查看文档,您将看到:

# note that the colon after the token is required in curl to set an empty password curl -u THIS_IS_MY_TOKEN: https://sonarqube.com/api/user_tokens/search

https://docs.sonarqube.org/latest/extend/web-api/

因此,为了使其在 Java 应用程序中工作,您必须执行以下操作: String tokenBase = userToken + ":"; String basicAuth = "基本"+ new String(Base64.getEncoder().encode(tokenBase.getBytes())); urlConnection.setRequestProperty("授权", basicAuth);

这对我有用!

关于java - Java 中的 SonarQube Web API 身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59278377/

相关文章:

java - 为什么我们在 Struts 2 中使用PrincipalAware

java - 如果 `readResolve` 返回调用对象,为什么它是一个实例方法?

api - postman 如何将 body 数据值设置为数组中定义的随机元素

java - Sonarqube 没有同时选择 Kotlin 和 Java Coverage gradle 项目

groovy - 忽略 Sonar 中的重复导入语句

java - ANDROID [后退按钮导致崩溃]

java - 如何使用Java流计算List成员之间的变化?

php - 使用用户名而不是电子邮件的 JWTAuth 身份验证

php - 如何在没有限制率问题的情况下使用 instagram API 关注用户?

android - SonarQube 代码覆盖率无法解释 Android 项目中的 Kotlin 文件