@Override
    public AccountRegistrationResponse provision(final AccountRegistrationRequest request) throws Throwable {
        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();
    }
This is {@link ScimAccountRegistrationProvisioner}.

@author Misagh Moayyed
@since 6.5.0
support/cas-server-support-account-mgmt-core/src/main/java/org/apereo/cas/acct/provision/ScimAccountRegistrationProvisioner.java