package io.undertow.predicate;

import io.undertow.security.api.SecurityContext;
import io.undertow.server.HttpServerExchange;

import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;

Predicate that returns true if authentication is required.
Author:Stuart Douglas
/** * Predicate that returns true if authentication is required. * * @author Stuart Douglas */
public class AuthenticationRequiredPredicate implements Predicate { public static final AuthenticationRequiredPredicate INSTANCE = new AuthenticationRequiredPredicate(); @Override public boolean resolve(HttpServerExchange value) { SecurityContext sc = value.getSecurityContext(); if(sc == null) { return false; } return sc.isAuthenticationRequired(); } @Override public String toString() { return "auth-required()"; } public static class Builder implements PredicateBuilder { @Override public String name() { return "auth-required"; } @Override public Map<String, Class<?>> parameters() { final Map<String, Class<?>> params = new HashMap<>(); return params; } @Override public Set<String> requiredParameters() { final Set<String> params = new HashSet<>(); return params; } @Override public String defaultParameter() { return null; } @Override public Predicate build(final Map<String, Object> config) { return INSTANCE; } } }