1 package io.undertow.predicate;
2
3 import io.undertow.security.api.SecurityContext;
4 import io.undertow.server.HttpServerExchange;
5
6 import java.util.HashMap;
7 import java.util.HashSet;
8 import java.util.Map;
9 import java.util.Set;
10
11
16 public class AuthenticationRequiredPredicate implements Predicate {
17
18 public static final AuthenticationRequiredPredicate INSTANCE = new AuthenticationRequiredPredicate();
19
20 @Override
21 public boolean resolve(HttpServerExchange value) {
22 SecurityContext sc = value.getSecurityContext();
23 if(sc == null) {
24 return false;
25 }
26 return sc.isAuthenticationRequired();
27 }
28
29
30 public static class Builder implements PredicateBuilder {
31
32 @Override
33 public String name() {
34 return "auth-required";
35 }
36
37 @Override
38 public Map<String, Class<?>> parameters() {
39 final Map<String, Class<?>> params = new HashMap<>();
40 return params;
41 }
42
43 @Override
44 public Set<String> requiredParameters() {
45 final Set<String> params = new HashSet<>();
46 return params;
47 }
48
49 @Override
50 public String defaultParameter() {
51 return null;
52 }
53
54 @Override
55 public Predicate build(final Map<String, Object> config) {
56 return INSTANCE;
57 }
58 }
59 }
60