Helix Coreサーバ管理者ガイド: 基本 (2019.1)
サンプルのトリガ
以下のコードサンプルは、bashのauth-check
タイプのトリガです。このトリガは、Active Directoryで%user%
変数を使用してユーザ情報をスクリプトに渡すことにより、ユーザの認証を実行します。失敗した場合、すべてのユーザに与えられている秘密のパスワード「secret」と一致するか比較します。また、特別なユーザ「bruno」には、パスワードなしでの認証を許可します。
USERNAME=$1 echo "USERNAME is $USERNAME" # read user-supplied password from stdin read USERPASS echo Trying AD authentication for $USERNAME echo $USERPASS | /home/perforce/p4auth_ad 192.168.100.80 389 DC=ad,DC=foo,DC=com $USERNAME if [ $? == 0 ] then # Successful AD echo Active Directory login successful exit 0 fi # Compare user-supplied password with correct password, "secret" PASSWORD=secret if [ "$USERPASS" = $PASSWORD ] then # Success exit 0 fi if [ "$USERNAME" = "bruno" ] then # Always let user bruno in exit 0 fi # Failure # password $USERPASS for $USERNAME is incorrect; exit 1
このトリガを定義するには、p4 triggers
コマンドを使用し、トリガフォームに以下のような1行を追加します。
bypassad auth-check auth "/home/perforce/bypassad.sh %user%"
これにより、ユーザがp4 login
コマンドを実行すると、auth-checkトリガが(存在する場合)起動します。パスワードは認証トリガに対してSTDINで送られます。
Note
オペレータユーザの場合は、service-check
ではなくauth-check
トリガを使用するようにしてください。