/** * Get a suitable principal name for logging/debugging use. * * @return a principal name for logging/debugging */ @Nullable private String getSubjectName() { final Set<UsernamePrincipal> usernames = getSubject().getPrincipals(UsernamePrincipal.class); if (!usernames.isEmpty()) { return usernames.iterator().next().getName(); } for (final Principal p : getSubject().getPrincipals()) { return p.getName(); } return null; }
/** * Get an immutable list of Subjects extracted from every AuthenticationResult * associated with the context. * * @return immutable list of Subjects */ @Nonnull @NonnullElements @Unmodifiable @NotLive public List<Subject> getSubjects() { final List<Subject> composite = new ArrayList<>(); for (final AuthenticationResult e : getAuthenticationResults().values()) { composite.add(e.getSubject()); } return ImmutableList.copyOf(composite); }
/** {@inheritDoc} */ @Nullable public AuthenticationResult apply(@Nullable final ProfileRequestContext input) { if (input != null) { final AuthenticationContext authnContext = input.getSubcontext(AuthenticationContext.class); if (authnContext != null) { final MultiFactorAuthenticationContext mfaContext = authnContext.getSubcontext(MultiFactorAuthenticationContext.class); if (mfaContext != null) { final Collection<AuthenticationResult> results = mfaContext.getActiveResults().values(); if (!results.isEmpty()) { final Subject subject = new Subject(); for (final AuthenticationResult result : results) { subject.getPrincipals().add(new AuthenticationResultPrincipal(result)); subject.getPrincipals().addAll(result.getSubject().getPrincipals()); subject.getPublicCredentials().addAll(result.getSubject().getPublicCredentials()); subject.getPrivateCredentials().addAll(result.getSubject().getPrivateCredentials()); } final AuthenticationResult merged = new AuthenticationResult( mfaContext.getAuthenticationFlowDescriptor().getId(), subject); return merged; } } } } return null; }
c14n.setSubject(result.getSubject()); if (requesterLookupStrategy != null) { c14n.setRequesterId(requesterLookupStrategy.apply(profileRequestContext));
mfaResult.getSubject().getPrincipals(AuthenticationResultPrincipal.class); if (!resultPrincipals.isEmpty()) { final Collection<AuthenticationResult> results = new ArrayList<>(resultPrincipals.size());
.writeStartArray(PRINCIPAL_ARRAY_FIELD); for (final Principal p : instance.getSubject().getPrincipals()) { serializePrincipal(gen, p); final Set<Principal> publicCreds = instance.getSubject().getPublicCredentials(Principal.class); if (publicCreds != null && !publicCreds.isEmpty()) { gen.writeStartArray(PUB_CREDS_ARRAY_FIELD); final Set<Principal> privateCreds = instance.getSubject().getPrivateCredentials(Principal.class); if (privateCreds != null && !privateCreds.isEmpty()) { gen.writeStartArray(PRIV_CREDS_ARRAY_FIELD);
final Principal principal = deserializePrincipal(val); if (principal != null) { result.getSubject().getPrincipals().add(principal); final Principal principal = deserializePrincipal(val); if (principal != null) { result.getSubject().getPublicCredentials().add(principal); final Principal principal = deserializePrincipal(val); if (principal != null) { result.getSubject().getPrivateCredentials().add(principal);
c14n.setSubject(result.getSubject()); if (requesterLookupStrategy != null) { c14n.setRequesterId(requesterLookupStrategy.apply(profileRequestContext));
getAuthenticationResult().getSubject().getPrincipals(ProxyAuthenticationPrincipal.class); if (proxyPrincipals != null && !proxyPrincipals.isEmpty()) { if (proxyPrincipals.size() == 1) {