def encodeProvider(self, name): enc = { "provider" : name } return Base64Util.base64urlencode(String(json.dumps(enc)).getBytes())
def getPassportRedirectUrl(self, provider, loginHint): # provider is assumed to exist in self.registeredProviders url = None try: facesContext = CdiUtil.bean(FacesContext) tokenEndpoint = "https://%s/passport/token" % facesContext.getExternalContext().getRequest().getServerName() httpService = CdiUtil.bean(HttpService) httpclient = httpService.getHttpsClient() print "Passport-social. getPassportRedirectUrl. Obtaining token from passport at %s" % tokenEndpoint resultResponse = httpService.executeGet(httpclient, tokenEndpoint, Collections.singletonMap("Accept", "text/json")) httpResponse = resultResponse.getHttpResponse() bytes = httpService.getResponseContent(httpResponse) response = httpService.convertEntityToString(bytes) print "Passport-social. getPassportRedirectUrl. Response was %s" % httpResponse.getStatusLine().getStatusCode() locale = CdiUtil.bean(LanguageBean).getLocaleCode()[:2] if (locale != "en" and locale != "fr"): locale = "en" tokenObj = json.loads(response) if (loginHint != None): url = "/passport/auth/%s/%s/locale/%s/id/%s" % (provider, tokenObj["token_"], locale, Base64Util.base64urlencode(loginHint)) else: url = "/passport/auth/%s/%s/locale/%s" % (provider, tokenObj["token_"], locale ) print "Passport-social. getPassportRedirectUrl. Returning URL = %s" % url except: print "Passport-social. getPassportRedirectUrl. Error building redirect URL: ", sys.exc_info()[1] return url
def getPassportRedirectUrl(self, provider, issuerSpNameQualifier): # provider is assumed to exist in self.registeredProviders url = None try: facesContext = CdiUtil.bean(FacesContext) tokenEndpoint = "https://%s/passport/token" % facesContext.getExternalContext().getRequest().getServerName() httpService = CdiUtil.bean(HttpService) httpclient = httpService.getHttpsClient() print "Passport-saml. getPassportRedirectUrl. Obtaining token from passport at %s" % tokenEndpoint resultResponse = httpService.executeGet(httpclient, tokenEndpoint, Collections.singletonMap("Accept", "text/json")) httpResponse = resultResponse.getHttpResponse() bytes = httpService.getResponseContent(httpResponse) response = httpService.convertEntityToString(bytes) print "Passport-saml. getPassportRedirectUrl. Response was %s" % httpResponse.getStatusLine().getStatusCode() print "Passport-saml. getPassportRedirectUrl. Loading response %s" % response tokenObj = json.loads(response) print "Passport-saml. getPassportRedirectUrl. Building URL: provider: %s" % provider print "Passport-saml. getPassportRedirectUrl. Building URL: token: %s" % tokenObj["token_"] print "Passport-saml. getPassportRedirectUrl. Building URL: spNameQfr: %s" % issuerSpNameQualifier locale = CdiUtil.bean(LanguageBean).getLocaleCode()[:2] if (locale != "en" and locale != "fr"): locale = "en" # Check if the samlissuer is there so to use the old endpoint if no collection needed if ( issuerSpNameQualifier != None ): url = "/passport/auth/%s/%s/locale/%s/saml/%s" % (provider, tokenObj["token_"], locale, Base64Util.base64urlencode(issuerSpNameQualifier)) else: url = "/passport/auth/%s/%s/locale/%s" % ( provider, tokenObj["token_"], locale ) except: print "Passport-saml. getPassportRedirectUrl. Error building redirect URL: ", sys.exc_info()[1] return url