use of org.openid4java.discovery.DiscoveryInformation in project spring-security by spring-projects.
the class OpenID4JavaConsumer method beginConsumption.
// ~ Methods
// ========================================================================================================
public String beginConsumption(HttpServletRequest req, String identityUrl, String returnToUrl, String realm) throws OpenIDConsumerException {
List<DiscoveryInformation> discoveries;
try {
discoveries = consumerManager.discover(identityUrl);
} catch (DiscoveryException e) {
throw new OpenIDConsumerException("Error during discovery", e);
}
DiscoveryInformation information = consumerManager.associate(discoveries);
req.getSession().setAttribute(DISCOVERY_INFO_KEY, information);
AuthRequest authReq;
try {
authReq = consumerManager.authenticate(information, returnToUrl, realm);
logger.debug("Looking up attribute fetch list for identifier: " + identityUrl);
List<OpenIDAttribute> attributesToFetch = attributesToFetchFactory.createAttributeList(identityUrl);
if (!attributesToFetch.isEmpty()) {
req.getSession().setAttribute(ATTRIBUTE_LIST_KEY, attributesToFetch);
FetchRequest fetchRequest = FetchRequest.createFetchRequest();
for (OpenIDAttribute attr : attributesToFetch) {
if (logger.isDebugEnabled()) {
logger.debug("Adding attribute " + attr.getType() + " to fetch request");
}
fetchRequest.addAttribute(attr.getName(), attr.getType(), attr.isRequired(), attr.getCount());
}
authReq.addExtension(fetchRequest);
}
} catch (MessageException e) {
throw new OpenIDConsumerException("Error processing ConsumerManager authentication", e);
} catch (ConsumerException e) {
throw new OpenIDConsumerException("Error processing ConsumerManager authentication", e);
}
return authReq.getDestinationUrl(true);
}
use of org.openid4java.discovery.DiscoveryInformation in project gerrit by GerritCodeReview.
the class OpenIdServiceImpl method init.
private State init(HttpServletRequest req, final String openidIdentifier, final SignInMode mode, final boolean remember, final String returnToken) {
final List<?> list;
try {
list = manager.discover(openidIdentifier);
} catch (DiscoveryException e) {
log.error("Cannot discover OpenID " + openidIdentifier, e);
return null;
}
if (list == null || list.isEmpty()) {
return null;
}
final String contextUrl = urlProvider.get(req);
final DiscoveryInformation discovered = manager.associate(list);
final UrlEncoded retTo = new UrlEncoded(contextUrl + RETURN_URL);
retTo.put(P_MODE, mode.name());
if (returnToken != null && returnToken.length() > 0) {
retTo.put(P_TOKEN, returnToken);
}
if (remember) {
retTo.put(P_REMEMBER, "1");
}
if (discovered.hasClaimedIdentifier()) {
retTo.put(P_CLAIMED, discovered.getClaimedIdentifier().getIdentifier());
}
return new State(discovered, retTo, contextUrl);
}
use of org.openid4java.discovery.DiscoveryInformation in project oxTrust by GluuFederation.
the class OxChooserWebService method responseHandler.
@Path("/Response")
@GET
@POST
@Consumes({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
@Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
public Response responseHandler(@Context HttpServletRequest httpReq, @Context HttpServletResponse httpRes, ForwardedRequest frequest) throws ConsumerException {
try {
log.debug("instantiating a ParameterList ");
ParameterList response = new ParameterList(frequest.getParameterMap());
log.debug("getting DiscoveryInformation ");
DiscoveryInformation discovered = (DiscoveryInformation) httpReq.getSession().getAttribute("openid-disc");
log.debug("getting StringBuffer ");
StringBuffer receivingURL = frequest.getRequestURL();
log.debug("getting QueryString ");
String queryString = frequest.getQueryString();
if (queryString != null && queryString.length() > 0)
log.debug("getting receivingURL ");
receivingURL.append("?").append(frequest.getQueryString());
log.debug("getting VerificationResult ");
VerificationResult verification = manager.verify(receivingURL.toString(), response, discovered);
log.debug("getting VerificationResult ");
Identifier verified = verification.getVerifiedId();
log.debug(" VerificationResult retrieved ");
if (verified != null) {
log.debug("verified != null");
AuthSuccess authSuccess = (AuthSuccess) verification.getAuthResponse();
if (authSuccess.hasExtension(AxMessage.OPENID_NS_AX)) {
log.debug("getting FetchResponse");
FetchResponse fetchResp = (FetchResponse) authSuccess.getExtension(AxMessage.OPENID_NS_AX);
log.debug("getting emails");
List emails = fetchResp.getAttributeValues("email");
log.debug("getting FirstName");
String firstName = fetchResp.getAttributeValue("firstname");
log.debug("getting LastName");
String lastName = fetchResp.getAttributeValue("lastname");
log.debug("getting one Email");
String email = (String) emails.get(0);
log.debug("email : ", email);
String nickName = fetchResp.getAttributeValue("nickname");
String Image = fetchResp.getAttributeValue("image");
String Language = fetchResp.getAttributeValue("language");
String Country = fetchResp.getAttributeValue("country");
String Timezone = fetchResp.getAttributeValue("timezone");
String Gender = fetchResp.getAttributeValue("gender");
String Fullname = fetchResp.getAttributeValue("fullname");
IdentityResponse idResponse = new IdentityResponse();
idResponse.setFirstname(firstName);
idResponse.setLastname(lastName);
idResponse.setEmail(email);
idResponse.setNickname(nickName);
idResponse.setImage(Image);
idResponse.setLanguage(Language);
idResponse.setCountry(Country);
idResponse.setTimezone(Timezone);
idResponse.setGender(Gender);
idResponse.setFullname(Fullname);
return Response.ok(idResponse).build();
}
return errorResponse("Could not get fetched attributes");
}
} catch (AssociationException e) {
return errorResponse("An AssociationException occured , please check your request.");
} catch (MessageException e) {
return errorResponse("An MessageException occured , please check your request.");
} catch (DiscoveryException e) {
return errorResponse("An DiscoveryException occured , please check your request.");
} finally {
identity.logout();
}
return errorResponse("An Error occured , please check your request.");
}
Aggregations