Update AAF Version 1.0.0
[aaf/authz.git] / authz-cmd / src / main / scripts / aaflogin
1 #!/bin/bash
2 JAVA_HOME=_JAVA_HOME_
3 JAVA=${JAVA_HOME}/bin/java
4 DEFAULT_DOMAIN=XXX_DOMAIN
5 ###
6 # Give some help hints if first run
7 #
8 if [ "`declare -f aaflogout`" = "" ] || [ "$1" = "-h" ]; then
9   echo
10   echo "  COMMANDS:"
11   echo "    aaflogin -f = Redo Local Login"
12   echo "    aaflogout   = Logout from Environment"
13   echo "    aaflogin -r = Reset Password on AAF Service"
14   echo "    aaflogin -h = Help"
15   echo "    aafcli      = AAF Management Tool"
16   echo
17 fi
18
19 if [ "$1" != "-h" ]; then
20
21
22 ###
23 # Load User/Password for aafcli, and create in function.
24
25 # To use, source aaflogin
26 #
27 #   ex:   . ./aaflogin
28 #
29 #  -f = force relogin
30 #  -r = reset password sequence
31 #
32 #  see aaflogout to logout
33 ###
34
35 ###
36 # Gather Classpath - warning, DME2 doesn't work with -Djava.ext.dirs
37 ###
38 AAF_CP=_ROOT_DIR_/etc
39 for JAR in `find _ROOT_DIR_/lib -name "*.jar"` ; do
40   AAF_CP="$AAF_CP:$JAR"
41 done
42
43 ###
44 # Create Keyfile to use temporarily, if not exists
45 ###
46 if [ ! -e $HOME/.aaf/keyfile ]; then 
47   mkdir -p $HOME/.aaf
48   ${JAVA} -cp $AAF_CP com.att.cadi.CmdLine keygen $HOME/.aaf/keyfile
49   chmod 400 $HOME/.aaf/keyfile 
50 fi
51   
52 ###
53 # Obtain User ID from AAF_ID, or SUDO_USER or USER, that order
54 ###
55 if [ "$AAF_ID" == "" ] || [ "$1" == "-f" ] ; then
56    if [ "$AAF_ID" == "" ] ; then
57            if [ "$SUDO_USER" != "" ] ; then 
58               AAF_ID=$SUDO_USER
59            else if [ "$USER" != "" ] ; then 
60               AAF_ID=$USER
61               fi
62            fi
63    fi
64
65    echo -n "Enter AAF ID [$AAF_ID]: "
66    read TEMP
67    if [ "$TEMP" != "" ] ; then
68       AAF_ID=$TEMP
69    fi 
70    export AAF_ID
71 fi
72
73 ###
74 # Add Function to remove AAF Vars and Functions from the Shell
75 #
76 function aaflogout {
77         unset AAF_ID
78         unset AAF_PASS
79         unset AAF_CP
80         unset -f aafcli
81         unset -f cmcli
82         unset -f aaflogout
83         rm -f $HOME/.aaf/keyfile
84 }
85
86
87 ###
88 # Load the Password
89 ###
90 if [ "$AAF_PASS" == "" ] || [ "$1" == "-f" ] ; then
91    # Ask for User and Password.  Assuming Unix and availability of "stty"
92    if [[ "$AAF_ID" == *"@$DEFAULT_DOMAIN" ]] || [[ "$AAF_ID" != *"@"* ]] ; then
93           PASS_PROMPT="AT&T Global Login"
94           AAF_DEFAULT_DOMAIN="-Daaf_default_domain=$DEFAULT_DOMAIN"
95    else 
96       PASS_PROMPT="AAF"
97       AAF_DEFAULT_DOMAIN=""
98    fi
99   
100    
101    read -ers -p "Enter "$PASS_PROMPT" Password for $AAF_ID: " AAF_PASS
102    echo 
103    AAF_PASS=enc:`$JAVA -cp $AAF_CP $AAF_DEFAULT_DOMAIN com.att.cadi.CmdLine digest "$AAF_PASS" $HOME/.aaf/keyfile`
104    export AAF_PASS
105 fi
106
107
108
109 ###
110 # load aafcli function in the Shell
111 ###
112
113 function aafcli {
114   # for separating VM_ARGS in aafcli 
115   AAF_SPACE=" "
116   THE_ID=$AAF_ID
117   if [ "${AAF_ID}" = "${AAF_ID/@/%}" ]; then
118         THE_ID+="@$DEFAULT_DOMAIN"
119   fi
120   _JAVA_HOME_/bin/java \
121   -cp $AAF_CP \
122   -Daaf_url=https://DME2RESOLVE/service=com.att.authz.AuthorizationService/version=_MAJOR_VER_._MINOR_VER_/envContext=_ENV_CONTEXT_/routeOffer=_ROUTE_OFFER_ \
123   -DAFT_LATITUDE=_AFT_LATITUDE_ \
124   -DAFT_LONGITUDE=_AFT_LONGITUDE_ \
125   -DAFT_ENVIRONMENT=_AFT_ENVIRONMENT_ \
126   -Daaf_id=$THE_ID \
127   -Daaf_password=$AAF_PASS \
128   -Daaf_dme_timeout=60000 \
129   -Dcadi_keyfile=$HOME/.aaf/keyfile \
130   -Daaf_default_realm=$DEFAULT_DOMAIN \
131   -DDEPLOYED_VERSION=_ARTIFACT_VERSION_ \
132   _DME2_FS_ \
133   com.att.cmd.AAFcli $*  
134   unset THE_ID
135   unset AAF_SPACE
136 }
137
138 ###
139 # load cmcli function in the Shell
140 ###
141
142 function cmcli {
143   # for separating VM_ARGS in cmcli 
144   AAF_SPACE=" "
145   THE_ID=$AAF_ID
146   if [ "${AAF_ID}" = "${AAF_ID/@/%}" ]; then
147         THE_ID+="@$DEFAULT_DOMAIN"
148   fi
149   CM_URL=_CM_URL_
150   if [ "${CM_URL}" = "" ]; then
151     CM_URL=https://DME2RESOLVE/service=com.att.authz.Certman/version=_MAJOR_VER_._MINOR_VER_/envContext=_ENV_CONTEXT_/routeOffer=_ROUTE_OFFER_
152   fi
153   
154   _JAVA_HOME_/bin/java \
155   -cp $AAF_CP \
156   -DAFT_LATITUDE=_AFT_LATITUDE_ \
157   -DAFT_LONGITUDE=_AFT_LONGITUDE_ \
158   -DAFT_ENVIRONMENT=_AFT_ENVIRONMENT_ \
159   -Daaf_dme_timeout=60000 \
160   -Daaf_default_realm=$DEFAULT_DOMAIN \
161   -DDEPLOYED_VERSION=_ARTIFACT_VERSION_ \
162   _DME2_FS_ \
163   com.att.cadi.cm.CmAgent cm_url=${CM_URL} aaf_id=$THE_ID aaf_password="$AAF_PASS" \
164     cadi_keyfile=$HOME/.aaf/keyfile $*  
165   unset THE_ID
166   unset AAF_SPACE
167   unset CM_URL
168 }
169
170
171 ###
172 # if "-r" the do Remote Password Reset
173 ###
174 if [ "$1" == "-r" ] ; then
175    # Ask for User and Password.  Assuming Unix and availability of "stty"
176    read -ers -p "Enter New AAF Password for $AAF_ID: " AAF_NEWPASS
177    echo 
178    read -ers -p "Reenter New AAF Password for $AAF_ID: " AAF_NEWPASS2
179    echo
180    if [ "$AAF_NEWPASS" == "$AAF_NEWPASS2" ] ; then
181            RESP=`aafcli user resetCred "$AAF_ID@aaf.att.com" $AAF_NEWPASS`
182            echo $RESP
183            if [ "$RESP" == "Reset Credential [$AAF_ID@aaf.att.com]" ] ; then
184               export AAF_PASS=enc:`$JAVA -cp $AAF_CP com.att.cadi.CmdLine digest $AAF_NEWPASS $HOME/.aaf/keyfile`
185            fi
186    else     
187         echo "Passwords don't match!"
188    fi
189 fi
190
191 ###
192 # Export key variables for use in other Scripts
193 ###
194 export AAF_ID 
195 export AAF_PASS
196 export AAF_CP
197 export -f aafcli
198 export -f aaflogout
199 fi