示例#1
0
 def shib_login(self, provider, idp_username, idp_password, proxy_username, proxy_password):
     
     idp = TaskbarIdp(provider)
     c = TaskbarCredMgr(idp_username, idp_password)
     cj = MozillaCookieJar()
     shibopener = Shibboleth(idp, c, cj)
     slcsresp = shibopener.openurl("https://slcs1.arcs.org.au/SLCS/login")
     
     #create token, cert request, etc
     token, dn, reqURL, elements = parse_req_response(slcsresp)
     print "parsed slcsresp"
     
     #send to auth server to create myproxy
     import urllib, urllib2, time
     
     url = 'http://lanyard.bestgrid.org/create_myproxy/' # write ur URL here
     #url = 'http://prj-gl4-d01.cs.auckland.ac.nz:6543/create_myproxy'
     values = {'auth_token' : token, #write ur specific key/value pair
               'dn' : dn,
               'reqURL' : reqURL,
               'elements' : elements,
               'myproxy_username' : proxy_username,
               'myproxy_passphrase' : proxy_password
               }
     print str(token) + "\n" + str(dn) + "\n" + str(elements) + "\n" + str(reqURL) + "\n"
     
     try:
         data = urllib.urlencode(values)          
         req = urllib2.Request(url, data)
         response = urllib2.urlopen(req)
         the_page = response.read() 
         print the_page 
     except Exception, detail: 
         print "Err ", detail 
示例#2
0
def main(*args):

    # Populate our options, -h/--help is already there for you.
    usage = "usage: %prog [options] URL"
    optp = optparse.OptionParser(usage=usage)
    optp.add_option("-u", "--username",
                    help="the username to login as.")
    optp.add_option("-d", "--storedir", dest="store_dir",
                     help="the directory to store the certificate/key and \
                     config file",
                     metavar="DIR",
                     default=path.join(homedir, ".shibboleth"))
    optp.add_option("-i", "--idp",
                    help="unique ID of the IdP used to log in")
    optp.add_option('-v', '--verbose', dest='verbose', action='count',
            help="Increase verbosity (specify multiple times for more)")
    # Parse the arguments (defaults to parsing sys.argv).
    opts, args = optp.parse_args()

    # Here would be a good place to check what came in on the command line and
    # call optp.error("Useful message") to exit if all it not well.

    log_level = logging.WARNING  # default
    if opts.verbose == 1:
        log_level = logging.INFO
    elif opts.verbose >= 2:
        log_level = logging.DEBUG

    # Set up basic configuration, out to stderr with a reasonable
    # default format.
    logging.basicConfig(level=log_level)

    if not args:
        optp.print_help()
        return

    if not path.exists(opts.store_dir):
        os.mkdir(opts.store_dir)

    sp = args[0]

    idp = Idp(opts.idp)
    c = CredentialManager()
    if opts.username:
        c.username = opts.username

    # if the cookies file exists load it
    cookies_file = path.join(opts.store_dir, 'cookies.txt')
    cj = MozillaCookieJar(filename=cookies_file)
    if path.exists(cookies_file):
        cj.load()

    shibboleth = Shibboleth(idp, c, cj)
    shibboleth.openurl(sp)
    print("Successfully authenticated to %s" % sp)

    cj.save()
示例#3
0
 def login_dialog_popup(self,blah):        
     idp = TaskbarIdp()
     c = TaskbarCredMgr()
     cj = MozillaCookieJar()
     shibopener = Shibboleth(idp, c, cj)
     try:
         print "Trying to populate list"
         slcsresp = shibopener.openurl("https://slcs1.arcs.org.au/SLCS/login")
         print "Succeeded"
     except Exception, reason:
         print reason
         pass
示例#4
0
class ListIDPs(Idp):

    def set_idps(self, idps):
        """
        set the list of possible idps
        """
        self.raw_idps = idps
        self.idps = idps.keys()
        self.idps.sort()
        raise IdpListException("Exit Auth Chain")


idps = ListIDPs()
c = SimpleCredentialManager('ARCS_test', 'ARCS_test')
shib = Shibboleth(idps, c)
try:
    shib.openurl(aaf_sp_url)
except IdpListException:
    pass


class TestShibboleth(unittest.TestCase):

    def setUp(self):
        pass

    def test_pass(self):
        """this test exists to prevent and error from the class
        defining no tests
        """