@Singleton public class SensitiveEndpointRule extends java.lang.Object implements SecurityRule
Modifier and Type | Field and Description |
---|---|
protected java.util.Map<io.micronaut.inject.ExecutableMethod,java.lang.Boolean> |
endpointMethods
A map where the key represents the method of an endpoint
and the value represents the endpoints sensitivity.
|
static java.lang.Integer |
ORDER
The order of the rule.
|
DENY_ALL, IS_ANONYMOUS, IS_AUTHENTICATED
Constructor and Description |
---|
SensitiveEndpointRule(io.micronaut.management.endpoint.EndpointSensitivityProcessor endpointSensitivityProcessor)
Constructs the rule with the existing and default endpoint
configurations used to determine if a given endpoint is
sensitive.
|
Modifier and Type | Method and Description |
---|---|
protected SecurityRuleResult |
check(io.micronaut.http.HttpRequest<?> request,
java.util.Map<java.lang.String,java.lang.Object> claims,
io.micronaut.inject.ExecutableMethod<?,?> method)
Evaluate the Endpoint's method.
|
SecurityRuleResult |
check(io.micronaut.http.HttpRequest<?> request,
io.micronaut.web.router.RouteMatch<?> routeMatch,
java.util.Map<java.lang.String,java.lang.Object> claims)
Returns a security result based on any conditions.
|
protected SecurityRuleResult |
checkNotSensitive(io.micronaut.http.HttpRequest<?> request,
java.util.Map<java.lang.String,java.lang.Object> claims,
io.micronaut.inject.ExecutableMethod<?,?> method)
Evaluates a non sensitive endpoint.
|
protected SecurityRuleResult |
checkSensitiveAnonymous(io.micronaut.http.HttpRequest<?> request,
io.micronaut.inject.ExecutableMethod<?,?> method)
Evaluates a sensitive endpoint for an anonymous user.
|
protected SecurityRuleResult |
checkSensitiveAuthenticated(io.micronaut.http.HttpRequest<?> request,
java.util.Map<java.lang.String,java.lang.Object> claims,
io.micronaut.inject.ExecutableMethod<?,?> method)
Evaluates a sensitive endpoint for an authenticated user.
|
protected java.lang.String |
endpointName(io.micronaut.inject.ExecutableMethod<?,?> method) |
int |
getOrder() |
public static final java.lang.Integer ORDER
protected final java.util.Map<io.micronaut.inject.ExecutableMethod,java.lang.Boolean> endpointMethods
public SensitiveEndpointRule(io.micronaut.management.endpoint.EndpointSensitivityProcessor endpointSensitivityProcessor)
endpointSensitivityProcessor
- The endpoint configurationspublic SecurityRuleResult check(io.micronaut.http.HttpRequest<?> request, @Nullable io.micronaut.web.router.RouteMatch<?> routeMatch, @Nullable java.util.Map<java.lang.String,java.lang.Object> claims)
SecurityRule
check
in interface SecurityRule
request
- The current requestrouteMatch
- The matched route or empty if no route was matched. e.g. static resource.claims
- The claims from the token. Null if not authenticatedSecurityRuleResult
@NonNull protected SecurityRuleResult check(@NonNull io.micronaut.http.HttpRequest<?> request, @Nullable java.util.Map<java.lang.String,java.lang.Object> claims, @NonNull io.micronaut.inject.ExecutableMethod<?,?> method)
request
- HTTP Requestclaims
- Claims of authenticated user. null if the user is not authenticatedmethod
- Route methodpublic int getOrder()
getOrder
in interface io.micronaut.core.order.Ordered
@NonNull protected SecurityRuleResult checkSensitiveAuthenticated(@NonNull io.micronaut.http.HttpRequest<?> request, @NonNull java.util.Map<java.lang.String,java.lang.Object> claims, @NonNull io.micronaut.inject.ExecutableMethod<?,?> method)
request
- HTTP Requestclaims
- Claims of authenticated user.method
- Endpoint's method@NonNull protected SecurityRuleResult checkSensitiveAnonymous(@NonNull io.micronaut.http.HttpRequest<?> request, @NonNull io.micronaut.inject.ExecutableMethod<?,?> method)
request
- HTTP Requestmethod
- Endpoint's method@NonNull protected SecurityRuleResult checkNotSensitive(@NonNull io.micronaut.http.HttpRequest<?> request, @Nullable java.util.Map<java.lang.String,java.lang.Object> claims, @NonNull io.micronaut.inject.ExecutableMethod<?,?> method)
request
- HTTP Requestclaims
- Claims of authenticated user. null if the user is not authenticated.method
- Endpoint's method@NonNull protected java.lang.String endpointName(@NonNull io.micronaut.inject.ExecutableMethod<?,?> method)
method
- Endpoint's method