Подтвердить что ты не робот

Как служба JAX-RS REST имеет аутентификацию, обработанную аннотациями?

У меня есть REST api, написанный с JAX-RS, и мне нужно добавить к нему аутентификацию. Пока вся информация, которую я смог найти, имеет предложения для через spring, которые я не использую. Есть ли что-то уже существующее или было бы легко написать, что-то, что позволит мне аннотировать либо метод, либо весь класс, который заставил бы заголовки auth присутствовать?

Я использую tomcat6 и трикотаж, если это имеет значение.

Что-то вроде:

@Path("api")
public class Api {
    @GET
    @AuthenticationRequired
    public Response getInfo(...) {...}
}
4b9b3361

Ответ 1

Я думаю, что вы хотите import javax.annotation.Security.RolesAllowed;

Сама аннотация выглядит так:

@Path("/helloworld")
@RolesAllowed({"ADMIN", "ORG1"})
public class helloWorld {

@GET
@Path("sayHello")  
@Produces("text/plain")
@RolesAllowed("ADMIN")
public String sayHello() {
   return "Hello World!";
}
}

Ответ 2

Я бы справился с безопасностью на уровне контейнера. Здесь хорошая запись, если вы используете Apache CXF:

http://cxf.apache.org/docs/secure-jax-rs-services.html

И вот пример для Glassfish:

http://www.butonic.de/2010/06/18/a-simple-jax-rs-security-context-example-in-glassfish/

Здесь еще одна ссылка, в которой обсуждаются аннотации JSR 250 (например, @RolesAllowed):

http://www-01.ibm.com/support/knowledgecenter/SSEQTP_8.5.5/com.ibm.websphere.base.doc/ae/twbs_jaxrs_impl_securejaxrs_annotations.html