2012-03-13 1 views
12

JAX-RS로 작성된 REST API가 있는데 인증을 추가해야합니다. 지금까지 내가 찾은 정보는 via spring을 사용하기위한 제안 사항이 있습니다. 사용하지 않았습니다. 이미 존재하는 것이 있거나 작성하기가 쉬울 것인가? 메소드 또는 인증 헤더가 존재하도록하는 전체 클래스에 주석을 달 수있는 것이 있습니까?JAX-RS REST 서비스는 주석으로 인증을 처리 할 수 ​​있습니까?

중요한 점은 tomcat6과 저지를 사용하고 있습니다. 같은

뭔가 :

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

답변

6

난 당신이 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!"; 
} 
} 
+1

참조 : http://docs.oracle.com/cd /E24329_01/web.1211/e24983/secure.htm#BABGBJAC – derdc

+2

역할을 정의하고 인증을 제공하는 방법을 정의하려면 어떻게합니까? – Daenyth

+0

그 응용 프로그램에만 해당됩니다. web.xml에서 스프링리스 (Spring-less) 접근 방식을 정의하고 있습니다. http://docs.oracle.com/javaee/5/tutorial/doc/bncav.html – derdc

3

과 같은 주석을 원하는 생각합니다. 다음은 아파치 CXF를 사용하는 일이 있다면 좋은 작성자의 :

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

을 그리고 여기 글래스 피시에 대한 예입니다 :

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

+0

마지막 링크가 죽어 보입니다. 링크 농장 인 것 같습니다. –

+0

@Patrick M - 네 말이 맞아. "에리 콘 자바"가 도메인 등록을 못하게하는 것 같아. 충고 고맙습니다". – paulsm4

+0

기사에 대한 [길 찾기 링크] (https://web.archive.org/web/20110318205916/http://www.ericonjava.com/?p=325)가 있습니다. 합법적 인 것처럼 보입니다. 불행히도, 내 서비스는 Dropwizard를 사용하고 있습니다. Tomcat이 아닌 Jetty의 Jersey입니다. 어쨌든, +1이 있습니다. –

관련 문제