
io.paradoxical.cassieq.discoverable.auth.AccountSecurityContext Maven / Gradle / Ivy
package io.paradoxical.cassieq.discoverable.auth;
import io.dropwizard.auth.Authorizer;
import javax.ws.rs.container.ContainerRequestContext;
import javax.ws.rs.core.SecurityContext;
import java.security.Principal;
public class AccountSecurityContext implements SecurityContext {
private final P principal;
private final Authorizer
authorizer;
private final SecurityContext previousContext;
public AccountSecurityContext(
final P principal,
final Authorizer
authorizer,
final SecurityContext previousContext) {
this.principal = principal;
this.authorizer = authorizer;
this.previousContext = previousContext;
}
@Override
public Principal getUserPrincipal() {
return principal;
}
@Override
public boolean isUserInRole(String role) {
return authorizer.authorize(principal, role);
}
@Override
public boolean isSecure() {
return previousContext.isSecure();
}
@Override
public String getAuthenticationScheme() {
return "Signed";
}
}