Sample trigger
The following code sample is a bash auth-check
type trigger
that tries to authenticate a user (passed to the script using the
%user%
variable) using the Active Directory. If that fails,
all users have the same "secret" password, and special user bruno
is able
to authenticate without a password.
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
To define this trigger, use the p4 triggers
command,
and add a line like the following to the triggers form:
bypassad auth-check auth "/home/perforce/bypassad.sh %user%"
The auth-check
trigger is fired, if it exists, after a user executes the
p4 login
command. For authentication triggers, the
password is sent on STDIN.
For operator users, use an auth-check
trigger rather than the
service-check
trigger. See Types of users in the Helix Core Command-Line (P4) Reference.