package br.com.livro.rest;
import javax.annotation.security.PermitAll;
import javax.annotation.security.RolesAllowed;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.SecurityContext;
@Path("userInfo")
@Produces(MediaType.TEXT_PLAIN + ";charset=utf-8")
@PermitAll
public class UserInfoResource {
@Context
SecurityContext securityContext;
@GET
public String userInfo() {
String name = securityContext.getUserPrincipal().getName();
if (securityContext.isUserInRole("admin")) {
return "Você é um administrador: " + name;
}
if (securityContext.isUserInRole("user")) {
return "Você é um usuário: " + name;
}
return "Nenhum dos dois";
}
@GET
@Path("/somenteUser")
@RolesAllowed("user")
public String somenteUser() {
return "Parabéns você é um usuário";
}
@GET
@Path("/somenteAdmin")
@RolesAllowed("admin")
public String somenteAdmin() {
return "Parabéns você é um administrador";
}
@GET
@Path("/userOuAdmin")
@RolesAllowed({"user","admin"})
public String userOuAdmin () {
return "Parabéns você é um usuário ou administrador";
}
}