use of org.apereo.cas.acct.AccountRegistrationResponse in project cas by apereo.
the class ScimAccountRegistrationProvisioner method provision.
@Override
public AccountRegistrationResponse provision(final AccountRegistrationRequest request) throws Exception {
val attributes = new LinkedHashMap<String, List<Object>>();
request.asMap().forEach((key, value) -> attributes.put(key, CollectionUtils.wrapList(value)));
val principal = principalFactory.createPrincipal(request.getUsername(), attributes);
val credential = new UsernamePasswordCredential(request.getUsername(), request.getPassword());
val result = principalProvisioner.provision(principal, credential);
LOGGER.debug("Provisioned account registration request for [{}]: [{}]", request.getUsername(), BooleanUtils.toString(result, "success", "failure"));
return result ? AccountRegistrationResponse.success() : new AccountRegistrationResponse();
}
use of org.apereo.cas.acct.AccountRegistrationResponse in project cas by apereo.
the class ChainingAccountRegistrationProvisioner method provision.
@Audit(action = AuditableActions.ACCOUNT_REGISTRATION, actionResolverName = AuditActionResolvers.ACCOUNT_REGISTRATION_PROVISIONING_ACTION_RESOLVER, resourceResolverName = AuditResourceResolvers.ACCOUNT_REGISTRATION_PROVISIONING_RESOURCE_RESOLVER)
@Override
public AccountRegistrationResponse provision(final AccountRegistrationRequest request) throws Exception {
val aggregate = new AccountRegistrationResponse();
provisioners.forEach(Unchecked.consumer(p -> aggregate.collect(p.provision(request))));
return aggregate;
}
use of org.apereo.cas.acct.AccountRegistrationResponse in project cas by apereo.
the class RestfulAccountRegistrationProvisioner method provision.
@Override
public AccountRegistrationResponse provision(final AccountRegistrationRequest request) throws Exception {
HttpResponse response = null;
try {
val headers = new HashMap<String, Object>();
headers.put("Content-Type", MediaType.APPLICATION_JSON);
headers.put("Accept", MediaType.APPLICATION_JSON);
headers.putAll(properties.getHeaders());
val exec = HttpUtils.HttpExecutionRequest.builder().basicAuthPassword(properties.getBasicAuthPassword()).basicAuthUsername(properties.getBasicAuthUsername()).method(HttpMethod.POST).url(properties.getUrl()).headers(headers).entity(MAPPER.writeValueAsString(request)).build();
response = HttpUtils.execute(exec);
if (HttpStatus.valueOf(response.getStatusLine().getStatusCode()).is2xxSuccessful()) {
val entity = IOUtils.toString(response.getEntity().getContent(), StandardCharsets.UTF_8);
val success = AccountRegistrationResponse.success();
Arrays.stream(response.getAllHeaders()).forEach(header -> success.putProperty(header.getName(), header.getValue()));
FunctionUtils.doIf(StringUtils.isNotBlank(entity), value -> success.putProperty("entity", value)).accept(StringUtils.defaultString(entity));
success.putProperty("status", response.getStatusLine().getStatusCode());
success.putProperty("entity", StringUtils.defaultString(entity));
return success;
}
val details = CollectionUtils.wrap("status", response.getStatusLine().getStatusCode(), "reason", response.getStatusLine().getReasonPhrase());
Arrays.stream(response.getAllHeaders()).forEach(header -> details.put(header.getName(), header.getValue()));
return new AccountRegistrationResponse(details);
} finally {
HttpUtils.close(response);
}
}
Aggregations