sogo/Tests/Integration/sogoLogin.py
Jean Raby 4a1e59744d Add options handling to sogoLogin.py
The script can now be used from the CLI to get the SOGo auth cookie.


Monotone-Parent: a7450cb20f9b7540324748f847e35d9eb3e1ba15
Monotone-Revision: da943d19b66326d6a44506dad61363238c96ca37

Monotone-Author: jraby@inverse.ca
Monotone-Date: 2011-06-27T22:43:48
Monotone-Branch: ca.inverse.sogo
2011-06-27 22:43:48 +00:00

57 lines
1.4 KiB
Python

#!/usr/bin/python
from config import hostname, port, username, password
import sys, getopt
import webdavlib
import urllib
import urllib2
import base64
import simplejson
import cookielib
def getAuthCookie(hostname, port, username, password) :
cjar = cookielib.CookieJar();
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cjar))
urllib2.install_opener(opener)
creds = urllib.urlencode([("userName",username), ("password", password)])
req = urllib2.Request("http://%s:%s/SOGo/connect" % (hostname, port), creds)
fd = urllib2.urlopen(req)
for cookie in cjar :
if cookie.name == "0xHIGHFLYxSOGo":
authinfo = cookie.value
break
return "0xHIGHFLYxSOGo="+authinfo
def usage() :
msg ="""Usage:
%s [-h] [-H | --host=hostname] [-p|--passwd=password] \
[-P|--port=port] [-u|--user=username]\n""" % sys.argv[0]
sys.stderr.write(msg);
if __name__ == "__main__" :
try:
opts, args = getopt.getopt (sys.argv[1:], "hH:p:P:u:", \
("host=", "passwd=", "port=", "user="));
except getopt.GetoptError:
usage()
exit(1)
for o, v in opts :
if o == "-h" :
usage()
exit(1)
elif o == "-H" or o == "--host" :
hostname = v
elif o == "-p" or o == "--passwd" :
password = v
elif o == "-P" or o == "--port" :
port = v
elif o == "-u" or o == "--user" :
username = v
print getAuthCookie(hostname, port, username, password)