private Authentication buildAuthentication(final PrincipalElectionStrategy principalElectionStrategy) { if (isEmpty()) { LOGGER.warn("No authentication event has been recorded; CAS cannot finalize the authentication result"); return null; } val authenticationAttributes = new HashMap<String, Object>(); val principalAttributes = new HashMap<String, Object>(); val authenticationBuilder = DefaultAuthenticationBuilder.newInstance(); buildAuthenticationHistory(this.authentications, authenticationAttributes, principalAttributes, authenticationBuilder); val primaryPrincipal = getPrimaryPrincipal(principalElectionStrategy, this.authentications, principalAttributes); authenticationBuilder.setPrincipal(primaryPrincipal); LOGGER.debug("Determined primary authentication principal to be [{}]", primaryPrincipal); authenticationBuilder.setAttributes(authenticationAttributes); LOGGER.trace("Collected authentication attributes for this result are [{}]", authenticationAttributes); authenticationBuilder.setAuthenticationDate(ZonedDateTime.now()); val auth = authenticationBuilder.build(); LOGGER.trace("Authentication result commenced at [{}]", auth.getAuthenticationDate()); return auth; }
/** * Build surrogate authentication result optional. * * @param authenticationResultBuilder the authentication result builder * @param credential the credential * @param surrogateTargetId the surrogate target id * @return the optional */ public Optional<AuthenticationResultBuilder> buildSurrogateAuthenticationResult(final AuthenticationResultBuilder authenticationResultBuilder, final Credential credential, final String surrogateTargetId) { val currentAuthn = authenticationResultBuilder.getInitialAuthentication(); if (currentAuthn.isPresent()) { val authentication = currentAuthn.get(); val surrogatePrincipal = buildSurrogatePrincipal(surrogateTargetId, authentication.getPrincipal(), credential); val auth = DefaultAuthenticationBuilder.newInstance(authentication).setPrincipal(surrogatePrincipal).build(); return Optional.of(authenticationResultBuilder.collect(auth)); } return Optional.empty(); } }
LOGGER.warn("Principal resolution for authentication by [{}] produced a null principal.", authenticationHandlerName); } else { builder.setPrincipal(principal);
.addAttribute(OAuth20Constants.CLIENT_ID, registeredService.getClientId()) .addCredential(metadata) .setPrincipal(newPrincipal) .setAuthenticationDate(ZonedDateTime.now()) .addSuccess(profile.getClass().getCanonicalName(), handlerResult)
val modifiedPrincipal = this.principalFactory.createPrincipal(principalId, attributesToRelease); val builder = DefaultAuthenticationBuilder.newInstance(authentication); builder.setPrincipal(modifiedPrincipal); val finalAuthentication = builder.build(); val assertion = new DefaultAssertionBuilder(finalAuthentication)
val modifiedPrincipal = this.principalFactory.createPrincipal(principalId, attributesToRelease); val builder = DefaultAuthenticationBuilder.newInstance(authentication); builder.setPrincipal(modifiedPrincipal); LOGGER.debug("Principal determined for release to [{}] is [{}]", registeredService.getServiceId(), principalId);