3

Nexus 3 API を使用して、groovy を使用して管理者のデフォルト パスワードと電子メール アドレスを変更したいと考えています。しかし、groovy api を使用してパスワードを設定する方法がわかりません。誰かがこれを行う方法の例を提供できますか?

4

4 に答える 4

2

概要

REST API を使用して、ユーザー情報の更新とパスワードの変更の両方を行うことができます。これには管理者ユーザーが含まれます。

Nexus REST API: ユーザー情報の更新

私のインスタンスのデフォルトの管理者 user-data.json は次のとおりです。

{
  "userId": "admin",
  "firstName": "Administrator",
  "lastName": "User",
  "emailAddress": "admin@example.org",
  "source": "default",
  "status": "active",
  "readOnly": false,
  "roles": [
    "nx-admin"
  ],
  "externalRoles": []
}

user-data.jsonを目的の値に更新curlし、REST API で使用します。

NX_PASSWORD="admin user password"

curl -ifu admin:"${NX_PASSWORD}" \
  -XPUT -H 'Content-Type: application/json' \
  --data "$(< user-data.json)" \
  <nexus base  URL>/service/rest/v1/security/users/admin

Nexus REST API: パスワードの変更

Security Management APIを使用する必要があります。

Nexus 3 バックエンド ソース コードをご覧ください。

OLD_PASSWORD="nexus admin password"
NEW_PASSWORD="your new password"

curl -ifu admin:"${OLD_PASSWORD}" \
  -XPUT -H 'Content-Type: text/plain' \
  --data "${NEW_PASSWORD}" \
  <nexus base URL>/service/rest/v1/security/users/admin/change-password

Nexus ドキュメントのスクリーンショット

このドキュメントは、実行中の Nexus インスタンスでのみ利用できます。次の URL にアクセスして、実行中の自分の Nexus インスタンスでこの API を表示できます。

  • メニュー:システム構成 > システム > API

ここに画像の説明を入力

古い方法: 最初のオンボーディング中にパスワードを変更する

これは、最初のオンボーディング中にのみ機能します。このメソッドは絶対に使用しないでください。完全を期すために文書化するだけです。

このセクションは、オンボーディング中に初期パスワードを変更するためのものです。

Nexus ソースの参照

1 つのコマンドadminでユーザーのパスワードを変更できます。curl

OLD_PASSWORD="initial nexus password"
NEW_PASSWORD="somepass"

curl -ifu admin:"${OLD_PASSWORD}" \
  -XPUT -H 'Content-Type: text/plain' \
  --data "${NEW_PASSWORD}" \
  <nexus base URL>/service/rest/internal/ui/onboarding/change-admin-password
于 2020-08-17T22:12:38.320 に答える
1

もともと changePassword は非推奨だと思っていましたが、間違っていました。管理者の電子メール アドレスを更新し、パスワードを変更する例を次に示します。

def user = security.securitySystem.getUser('admin')
user.setEmailAddress('admin@mycompany.com')
security.securitySystem.updateUser(user)
security.securitySystem.changePassword('admin','admin456')
于 2016-08-15T17:38:30.433 に答える
0

nexus3 cli をインストールします。

pip install nexus3-cli

最初の初期パスワードを取得します (Nexus が docker で実行されていると仮定します):

docker exec nexus cat /nexus-data/admin.password

環境変数を設定します。

export NEXUS3_PASSWORD=<PASSWORD FROM PREVIOUS STEP>
export NEXUS3_USERNAME=<USERNAME>
export NEXUS3_URL=<URL>

/nexus-data/etc/nexus.properties を更新し、以下の行を追加して、リモート スクリプトの実行を許可します。

nexus.scripts.allowCreation=true

nexus サービスを再起動して、最後の変更をリロードします。

docker container restart <nexus>

次の内容のファイルreset-password.groovyを作成します (@Dennis Hoer に感謝) :

def user = security.securitySystem.getUser('admin')
user.setEmailAddress('admin@mycompany.com')
security.securitySystem.updateUser(user)
security.securitySystem.changePassword('admin','admin456')

コマンド ラインからスクリプトを作成し、スクリプトを実行して admin のパスワードをリセットします。

nexus3 script create --script-type groovy passreset reset-password.groovy
nexus3 script run passreset 

パスワードがリセットされました

于 2020-07-25T23:52:59.587 に答える