@Override public void addDelegate(final CasWebflowEventResolver r, final int index) { casDelegatingWebflowEventResolver.addDelegate(r, index); } }
@Override protected Event doExecute(final RequestContext requestContext) { return this.yubikeyAuthenticationWebflowEventResolver.resolveSingle(requestContext); } }
/** * Resolve candidate authentication events set. * * @param context the context * @param service the service * @param registeredService the registered service * @return the set */ protected Set<Event> resolveCandidateAuthenticationEvents(final RequestContext context, final Service service, final RegisteredService registeredService) { val byEventId = Comparator.comparing(Event::getId); val supplier = (Supplier<TreeSet<Event>>) () -> new TreeSet<>(byEventId); return this.orderedResolvers .stream() .map(resolver -> { LOGGER.debug("Resolving candidate authentication event for service [{}] using [{}]", service, resolver.getName()); return resolver.resolveSingle(context); }) .filter(Objects::nonNull) .collect(Collectors.toCollection(supplier)); }
@Override public Set<Event> resolveInternal(final RequestContext context) { try { val credential = getCredentialFromContext(context); val service = WebUtils.getService(context); if (credential != null) { val registeredService = determineRegisteredServiceForEvent(context, service); LOGGER.debug("Attempting to resolve candidate authentication events for service [{}]", service); val resolvedEvents = resolveCandidateAuthenticationEvents(context, service, registeredService); if (!resolvedEvents.isEmpty()) { LOGGER.debug("The set of authentication events resolved for [{}] are [{}]. Beginning to select the final event...", service, resolvedEvents); putResolvedEventsAsAttribute(context, resolvedEvents); val finalResolvedEvent = this.selectiveResolver.resolveSingle(context); LOGGER.debug("The final authentication event resolved for [{}] is [{}]", service, finalResolvedEvent); if (finalResolvedEvent != null) { throw new IllegalArgumentException("No authentication result builder can be located in the context"); return CollectionUtils.wrapSet(grantTicketGrantingTicketToAuthenticationResult(context, builder, service)); } catch (final Exception e) { var event = returnAuthenticationExceptionEventIfNeeded(e); if (event == null) { LOGGER.warn(e.getMessage(), e); event = newEvent(CasWebflowConstants.TRANSITION_ID_ERROR, e);
@Override protected Event doExecute(final RequestContext requestContext) { val agent = WebUtils.getHttpServletRequestUserAgentFromRequestContext(); val geoLocation = WebUtils.getHttpServletRequestGeoLocationFromRequestContext(); if (geoLocation != null && StringUtils.isNotBlank(agent) && !adaptiveAuthenticationPolicy.apply(requestContext, agent, geoLocation)) { val msg = "Adaptive authentication policy does not allow this request for " + agent + " and " + geoLocation; val map = CollectionUtils.<String, Throwable>wrap(UnauthorizedAuthenticationException.class.getSimpleName(), new UnauthorizedAuthenticationException(msg)); val error = new AuthenticationException(msg, map, new HashMap<>(0)); return new Event(this, CasWebflowConstants.TRANSITION_ID_AUTHENTICATION_FAILURE, new LocalAttributeMap<>(CasWebflowConstants.TRANSITION_ID_ERROR, error)); } val serviceTicketEvent = this.serviceTicketRequestWebflowEventResolver.resolveSingle(requestContext); if (serviceTicketEvent != null) { fireEventHooks(serviceTicketEvent, requestContext); return serviceTicketEvent; } val finalEvent = this.initialAuthenticationAttemptWebflowEventResolver.resolveSingle(requestContext); fireEventHooks(finalEvent, requestContext); return finalEvent; }
return resumeFlow(); return resumeFlow(); return resumeFlow(); WebUtils.putAuthentication(authentication, context); val event = this.casDelegatingWebflowEventResolver.resolveSingle(context); if (event == null) { LOGGER.trace("Request does not indicate a requirement for authentication policy; proceed with flow normally."); return resumeFlow(); return resumeFlow();
@Override protected Event doExecute(final RequestContext requestContext) throws Exception { return this.rankedAuthenticationProviderWebflowEventResolver.resolveSingle(requestContext); } }
@Override public void addDelegate(final CasWebflowEventResolver r) { casDelegatingWebflowEventResolver.addDelegate(r); }
@Override protected Event doExecute(final RequestContext requestContext) { return this.duoAuthenticationWebflowEventResolver.resolveSingle(requestContext); } }
@Override protected Event doExecute(final RequestContext requestContext) { return this.casWebflowEventResolver.resolveSingle(requestContext); } }
@Override protected Event doExecute(final RequestContext requestContext) throws Exception { final Event serviceTicketEvent = this.serviceTicketRequestWebflowEventResolver.resolveSingle(requestContext); if (serviceTicketEvent != null) { return serviceTicketEvent; } return this.initialAuthenticationAttemptWebflowEventResolver.resolveSingle(requestContext); } }