2012-03-13 19 views
12

JAX-RS ile yazılmış bir REST api'm var ve ona kimlik doğrulaması eklemem gerekiyor. Şimdiye kadar bu konuda bulabildiğim tüm bilgiler, kullanmıyorum olan via spring yapmak için önerilerde bulunuyor. Halihazırda var olan bir şey var mıdır, yoksa yazmak kolay mıdır, bir yöntemi mi, yoksa başhakekleri hazır bulundurmaya zorlayacak bütün sınıfı mı ekleyeyim?JAX-RS REST hizmeti ek açıklamalarla nasıl kimlik doğrulaması yapabilir?

Eğer önemliyse tomcat6 ve forması kullanıyorum. gibi

şey:

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

cevap

6

Sana import javax.annotation.Security.RolesAllowed;

kendisi ben kapsayıcı düzeyinde güvenliğin idare edecek bu

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

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

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

+2

Rollerin ne olduğunu ve kimlik doğrulamayı nasıl sağladıklarını nasıl tanımlarım? – Daenyth

+0

Bu, uygulamaya özeldir. Başka bir Spring-less yaklaşımı için buraya bakın, onları web.xml içinde tanımlayın http://docs.oracle.com/javaee/5/tutorial/doc/bncav.html – derdc

3

benziyor açıklama istediğini düşünüyorum. Burada Apache CXF kullanarak için gerçekleşmesi durumunda iyi bir writeup var:

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

Ve burada GlassFish için bir örnek:

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

İşte JSR 250 ek açıklamaları anlatılır bir daha bağlantı var (örn @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

Son bağlantı ölü görünüyor. Bir bağlantı çiftliği gibi görünüyor. –

+0

@Patrick M - Haklısınız: Görünüşe göre "ericonjava" onun alan adı kaydının atlamasına izin veriyor. "Başları" için teşekkürler. – paulsm4

+0

Makaleye bir [wayback link] (https://web.archive.org/web/20110318205916/http://www.ericonjava.com/?p=325). Yasal görünüyor. Ne yazık ki, servisim Dropwizard kullanıyor, bu yüzden Tomcat yerine Jersey'de Jetty. Her neyse, bir +1 var. –

İlgili konular