package io.dropwizard.auth.principal; import io.dropwizard.auth.Auth; import javax.ws.rs.Consumes; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.core.MediaType; import java.util.Optional; import static org.assertj.core.api.Assertions.assertThat; /** * Contains resource methods which are authenticated with * multi-principal injection. */ @Path("/auth-test") @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.TEXT_PLAIN) public class PolymorphicPrincipalEntityResource { @GET @Path("json-principal-entity") public String principalEntityWithoutAuth(@Auth JsonPrincipal principal) { assertThat(principal).isNotNull(); return principal.getName(); } @GET @Path("null-principal-entity") public String principalEntityWithoutAuth(@Auth NullPrincipal principal) { assertThat(principal).isNotNull(); return principal.getName(); } @GET @Path("optional") public String checkOptionalAuth(@Auth Optional<NullPrincipal> principalOpt) { return "principal was " + ((principalOpt.isPresent()) ? "" : "not ") + "present"; } }