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