This blog has moved to
http://blog.matthias-reining.com

Die bestehenden Artikel bleiben vorerst alle bei blogspot. Neue Artikel veröffentliche ich allerdings nur noch auf http://blog.matthias-reining.com

Dienstag, 16. Oktober 2012

JBoss AS Security - @RolesAllowed

Mit der Annotation @RolesAllowed (javax.annotation.security.RolesAllowed) kann der Zugriff auf Klassen oder einzelne Methoden von einem AppServer kontrolliert werden.

Leider haben diese Annotation im JBoss AS 7 keine Auswirkungen!

Um EJBs abzusichern wird die Datei jboss-ejb3.xml benötigt (Maven Projekt: src/main/webapp/WEB-INF/jboss-ejb3.xml).

<?xml version="1.0"?> 
<jboss:ejb-jar xmlns:jboss="http://www.jboss.com/xml/ns/javaee"
               xmlns="http://java.sun.com/xml/ns/javaee"
               xmlns:s="urn:security"
               xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
               xsi:schemaLocation="http://www.jboss.com/xml/ns/javaee http://www.jboss.org/j2ee/schema/jboss-ejb3-2_0.xsd
                     http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/ejb-jar_3_1.xsd"
               version="3.1"
               impl-version="2.0">
  <assembly-descriptor>
    <s:security>
      <ejb-name>*</ejb-name>
      <s:security-domain>other</s:security-domain>
    </s:security>
  </assembly-descriptor>

</jboss:ejb-jar>

Die Security Domain “other” ist die Default-Security-Domain auf einem JBoss AS 7. Hier muss bei Bedarf die entsprechende Domain gesetzt warden.

Finde ich irgendwie merkwürdig, dass Teile der JEE Spec erst explizit aktiviert werden müssen.
Beim Deployen einer Anwendung wäre IMHO ein kleiner Hinweis angebracht, der darauf aufmerksam macht, dass  @RolesAllowed verwendet wird aber nicht greift…


Keine Kommentare:

Kommentar veröffentlichen