web-dev-qa-db-ja.com

Sonar API呼び出しに資格情報を渡すにはどうすればよいですか?

電話をかけようとすると:

https://sonar.mydomain.com/api/resources?resource=com.mydomain.project:MY&metrics=ncloc&format=json

私は得る

{"err_code":401,"err_msg":"Unauthorized"}

資格情報を渡すにはどうすればよいですか?

14
pbx

ドキュメント によると、SonarQubeは基本認証を使用します。試してください:

curl -u admin:SuPeRsEcReT "https://sonar.mydomain.com/api/resources?resource=com.mydomain.project:MY&metrics=ncloc&format=json"

明らかに、これらの資格情報を渡すメカニズムは、APIを呼び出す方法によって異なります。

これは、Webブラウザからも機能するはずです。 Webuiにログインしてみてください。通常、ブラウザは資格情報をキャッシュします。

7
Mark O'Connor

最新の ドキュメント によると:SonarQubeは双方向認証をサポートするようになりました:

  • ユーザートークン

これが推奨される方法です。トークンはHTTP基本認証のログインフィールドを介して送信されます。この方法では、パスワードがなくても安全性が高まります。トークンの生成方法の詳細については、このページにアクセスしてください ユーザートークン 。次のようなcurlsendリクエストを使用します。

curl -u THIS_IS_MY_TOKEN: https://sonarqube.com/api/user_tokens/search
# note that the colon after the token is required in curl to set an empty password 
  • HTTP基本アクセス

ログインとパスワードは、標準のHTTP基本フィールドを介して送信されます。

curl -u MY_LOGIN:MY_PASSWORD https://sonarqube.com/api/user_tokens/search
20
codezjx

これは、認証データがAPI呼び出しに含まれていないために発生します。これが私がそれを解決した方法です。

1.まず、RESTクライアント「Postman」をブラウザにインストールします。
2。それを開き、API呼び出しのURLを[通常]タブに配置します。
3。[基本認証]タブに移動し、ユーザー名、パスワードを入力して、ヘッダーの更新をクリックします。
4。[通常]タブに戻ります。ヘッダーリストに「Authorization」という名前のヘッダーが表示されます。
5。次に、[送信]ボタンをクリックして結果を表示します。
6。サードパーティのアプリケーションを使用している場合は、postmanによって生成された値を使用して「Authorization」ヘッダーを通話に追加します。

3
javatar