package org.apereo.cas.support.openid.authentication.principal; import org.apereo.cas.authentication.principal.AbstractServiceFactory; import org.apereo.cas.support.openid.OpenIdProtocolConstants; import org.springframework.util.StringUtils; import javax.servlet.http.HttpServletRequest; /** * The {@link OpenIdServiceFactory} creates {@link OpenIdService} objects. * * @author Misagh Moayyed * @since 4.2 */ public class OpenIdServiceFactory extends AbstractServiceFactory<OpenIdService> { private final String openIdPrefixUrl; public OpenIdServiceFactory(final String openIdPrefixUrl) { this.openIdPrefixUrl = openIdPrefixUrl; } @Override public OpenIdService createService(final HttpServletRequest request) { final String service = request.getParameter(OpenIdProtocolConstants.OPENID_RETURNTO); final String openIdIdentity = request.getParameter(OpenIdProtocolConstants.OPENID_IDENTITY); if (openIdIdentity == null || !StringUtils.hasText(service)) { return null; } final String id = cleanupUrl(service); final String artifactId = request.getParameter(OpenIdProtocolConstants.OPENID_ASSOCHANDLE); final OpenIdService s = new OpenIdService(id, service, artifactId, openIdIdentity); s.setLoggedOutAlready(true); return s; } @Override public OpenIdService createService(final String id) { return new OpenIdService(id, id, null, this.openIdPrefixUrl); } }