seguridad - servicios rest java
¿Cómo puede un servicio REST JAX-RS gestionar la autenticación mediante anotaciones? (2)
Tengo una API REST escrita con JAX-RS, y necesito agregarle autenticación. Hasta ahora toda la información que he podido encontrar al respecto tiene sugerencias para hacerlo en la primavera , que no estoy usando. ¿Hay algo que ya existe, o sería fácil de escribir, algo que me permita anotar un método o toda la clase que obligaría a los encabezados de autenticación a estar presentes?
Estoy usando tomcat6 y jersey, si eso importa.
Algo como:
@Path("api")
public class Api {
@GET
@AuthenticationRequired
public Response getInfo(...) {...}
}
Administraría la seguridad en el nivel de contenedor. Aquí hay un buen informe si está usando Apache CXF:
http://cxf.apache.org/docs/secure-jax-rs-services.html
Y aquí hay un ejemplo para Glassfish:
http://www.butonic.de/2010/06/18/a-simple-jaxrs-security-context-example-in-glassfish/
Aquí hay un enlace más, que analiza las anotaciones JSR 250 (por ejemplo, @RolesAllowed):
Creo que quieres import javax.annotation.Security.RolesAllowed;
La anotación en sí se ve así
@Path("/helloworld")
@RolesAllowed({"ADMIN", "ORG1"})
public class helloWorld {
@GET
@Path("sayHello")
@Produces("text/plain")
@RolesAllowed("ADMIN")
public String sayHello() {
return "Hello World!";
}
}