AuthRequestHelper helper = consumerHelper.getAuthRequestHelper(openId,
request.getReturnUrl());
addAttributes(helper, request);
HttpSession session = request.getRequest().getSession();
AuthRequest authReq = helper.generateRequest();
UiMessageRequest uiExtension = new UiMessageRequest();
uiExtension.setIconRequest(true);
authReq.addExtension(uiExtension);
session.setAttribute(IdentityConstants.OpenId.DISC, helper.getDiscoveryInformation());
if (request.getRealm() != null && request.getRealm().trim().length() != 0) {
authReq.setRealm(request.getRealm());
}
for (String type : request.getRequestTypes()) {
authReq.addExtension(OpenIDExtensionFactory.getInstance().getExtension(type)
.getMessageExtension(request));
}
// Redirect to the OpenID provider server for authentication.
String value = authReq.getDestinationUrl(true);
return value;
} catch (Exception e) {
log.error(e.getMessage(), e);
// Present error to the user
throw new IdentityException(e.getMessage(), e);