use of org.gluu.oxauth.cas.auth.principal.ClientCredential in project oxTrust by GluuFederation.
the class ClientAuthenticationMetaDataPopulator method populateAttributes.
/**
* {@InheritDoc}
*/
@Override
public void populateAttributes(final AuthenticationBuilder builder, final Credential credential) {
if (credential instanceof ClientCredential) {
final ClientCredential clientCredential = (ClientCredential) credential;
builder.addAttribute(CLIENT_NAME, clientCredential.getOpenIdCredentials().getClientName());
}
}
use of org.gluu.oxauth.cas.auth.principal.ClientCredential in project oxTrust by GluuFederation.
the class ClientAction method doExecute.
/**
* {@InheritDoc}
*/
@Override
protected Event doExecute(final RequestContext context) throws Exception {
final HttpServletRequest request = WebUtils.getHttpServletRequest(context);
final HttpServletResponse response = WebUtils.getHttpServletResponse(context);
// Web context
final WebContext webContext = new J2EContext(request, response);
// It's an authentication
if (client.isAuthorizationResponse(webContext)) {
logger.info("Procession authentication request");
// Check if oxAuth request state is correct
if (!client.isValidRequestState(webContext)) {
logger.warn("The state in session and in request are not equals");
// Reinit login page
prepareForLoginPage(context, webContext);
return new Event(this, "stop");
}
// Try to authenticate
final ClientCredential credentials = getClientCrendentials(context, webContext);
if (credentials != null) {
WebUtils.putTicketGrantingTicketInRequestScope(context, this.centralAuthenticationService.createTicketGrantingTicket(credentials));
return success();
}
}
// Go to login page
prepareForLoginPage(context, webContext);
return error();
}
use of org.gluu.oxauth.cas.auth.principal.ClientCredential in project oxTrust by GluuFederation.
the class ClientAction method getClientCrendentials.
/**
* Build client credenatils from incomming request
*
* @param context The current webflow context
* @param webContext The current web context
* @return client credentials
*/
private ClientCredential getClientCrendentials(final RequestContext context, final WebContext webContext) {
final OpenIdCredentials openIdCredentials = client.getCredentials(webContext);
final ClientCredential credentials = new ClientCredential(openIdCredentials);
// Retrieve parameters from web session
final Service service = (Service) webContext.getSessionAttribute(SERVICE);
if (service != null) {
webContext.setRequestAttribute(SERVICE, service.getId());
}
context.getFlowScope().put(SERVICE, service);
restoreRequestAttribute(webContext, THEME);
restoreRequestAttribute(webContext, LOCALE);
restoreRequestAttribute(webContext, METHOD);
return credentials;
}
use of org.gluu.oxauth.cas.auth.principal.ClientCredential in project oxTrust by GluuFederation.
the class ClientAuthenticationHandler method doAuthentication.
/**
* {@InheritDoc}
*/
@Override
protected HandlerResult doAuthentication(final Credential credential) throws GeneralSecurityException, PreventedException {
final ClientCredential clientCredentials = (ClientCredential) credential;
final OpenIdCredentials openIdCredentials = clientCredentials.getOpenIdCredentials();
logger.debug("Client credentials : '{}'", clientCredentials);
final String clientName = openIdCredentials.getClientName();
logger.debug("Client name : '{}'", clientName);
// Web context
final ServletExternalContext servletExternalContext = (ServletExternalContext) ExternalContextHolder.getExternalContext();
final HttpServletRequest request = (HttpServletRequest) servletExternalContext.getNativeRequest();
final HttpServletResponse response = (HttpServletResponse) servletExternalContext.getNativeResponse();
final WebContext webContext = new J2EContext(request, response);
// Get user profile
final UserProfile userProfile = this.client.getUserProfile(openIdCredentials, webContext);
logger.debug("userProfile : {}", userProfile);
if (userProfile != null) {
final String id = userProfile.getId();
if (StringHelper.isNotEmpty(id)) {
openIdCredentials.setUserProfile(userProfile);
return new HandlerResult(this, clientCredentials, new SimplePrincipal(id, userProfile.getAttributes()));
}
}
throw new FailedLoginException("Provider did not produce profile for " + clientCredentials);
}
Aggregations