2012-04-13 14 views
3

Kontext: Ich verwende meine Anwendung auf JBoss AS7 Community-Version. Ich verwende Java API für JaxRS von jboss. (Nicht sicher, ob es gleich wie Resteasy ?!) Hier ist meine Maven-AbhängigkeitWie kann der Restful Service (SSB als Service verfügbar gemacht) auf JBossAS7 ausgeführt werden?

 <dependency> 
     <groupId>org.jboss.spec.javax.ws.rs</groupId> 
     <artifactId>jboss-jaxrs-api_1.1_spec</artifactId> 
     <scope>provided</scope> 
     </dependency> 

ich JaxRSActivator bin mit JAX-RS in der Anwendung zu ermöglichen, wie unten gezeigt. In meinem Verständnis ersetzt dies die Notwendigkeit Servletzuordnung innerhalb web.xml

@ApplicationPath("/rest") 
public class JaxRsActivator extends Application { 
    /* class body intentionally left blank */ 
} 

ich eine EJB erstellt haben, haben (SSB) und exponierte sie als Restful Dienst wie unten“

@Path("/Items") 
@Stateless 
@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW) 
public class ItemMgmtServiceBean { 

    @GET 
    @Path("/{id:[0-9][0-9]*}") 
    @Produces("text/xml") 
    public Item findItem(@PathParam("id")long itemId) 
gezeigt

Der REST Service oben läuft perfekt auf JBoss AS7. Bitte beachten Sie, dass ich bisher web.xml nicht verwenden musste.

Jetzt möchte ich diesen Dienst sichern. Ich möchte programmatische Sicherheit in diesem Dienst verwenden, um den Hauptnamen (gemäß meiner Geschäftslogik.)

Die RestEasy-Dokumentation besagt, dass ich den Context-Parameter für EJBs nicht einschalten sollte.

<context-param> 
     <param-name>resteasy.role.based.security</param-name> 
     <param-value>true</param-value> 
    </context-param> 

aber es erklärt nicht, was ich in web.xml verwenden sollten, oder wenn ich web.xml überhaupt für EJB basiert erholsamen Dienste verwenden müssen.

Fragen:

Ich möchte Digest-Authentifizierung verwenden. Welche Schritte muss ich ergreifen, um dies zu ermöglichen? .

Muss ich eine web.xml hinzufügen oder kann ich JaxRSActivator ändern, um die Sicherheit zu aktivieren? Wenn ich web.xml brauche, sollte ich JaxRSActivator entfernen? Was soll ich in der web.xml konfigurieren?

Schätzen Sie Ihre Hilfe.

Antwort

0

http://docs.jboss.org/resteasy/2.0.0.GA/userguide/html/Securing_JAX-RS_and_RESTeasy.html

Resteasy JAX-RS unterstützt die @RolesAllowed, @PermitAll und @DenyAll Annotationen auf JAX-RS-Methoden. Standardmäßig erkennt Resteasy diese Anmerkungen jedoch nicht. Sie müssen Resteasy so konfigurieren, dass die rollenbasierte Sicherheit aktiviert wird, indem Sie einen Kontextparameter festlegen. HINWEIS!!! Schalten Sie diesen Schalter nicht ein, wenn Sie EJBs verwenden. Der EJB-Container wird diese Funktionalität anstelle von Rasteasy bereitstellen.

+2

Ich habe diesen Hinweis in der Dokumentation von RESTEasy gelesen. Obwohl @RolesAllowed hinzugefügt wurde, funktioniert es nicht. Außerdem haben Sie die Notiz angezeigt, den Kontextparameter nicht zu verwenden, wenn Sie EJBs verwenden. Es gibt kein detailliertes Beispiel dafür, wie das funktioniert. Können Sie einige Codebeispiele bereitstellen, um zu helfen? –