Principal, Authentication, Security und alles im JBoss 7

Status
Nicht offen für weitere Antworten.
S

Sym

Gast
Hallo,

ich versuche gerade die verschiedenen Möglichkeiten zusammeln.

Kennt ihr gute Tutorials oder Bücher, die sich mit aktueller Technology in diesem Bereich beschäftigen?

Danke und Gruß
 

TheDarkRose

Gesperrter Benutzer
Aha, hast du schon mal selbst gegoogelt oder einfach mal mit kleinen Dummyprojekten ausbrobiert?

Bücher gibt es da kaum. Schau selbst in die JBoss, JBossXS Dokumentationen oder benutze die Forensuche.
 
S

Sym

Gast
Ja, die Suchen habe ich bemüht, sonst hätte ich hier nicht gefragt. :)
 
S

Sym

Gast
Nun habe ich doch eine speziellere Frage.

Ich habe folgende Struktur:

Code:
my-app.ear
        |+ src
           |+ main
              |+ application
                 |+ jboss-app.xml
        |+ myapp.war
        |+ myapp.jar
        |+ lib

jboss-app.xml
Code:
<?xml version="1.0" encoding="UTF-8"?>
  <!DOCTYPE jboss-app
    PUBLIC "-//JBoss//DTD J2EE Application 4.2//EN"
    "http://www.jboss.org/j2ee/dtd/jboss-app_4_2.dtd">

<jboss-app>
	<security-domain>test</security-domain>
</jboss-app>

Ich denke, damit sollte doch das Wenigste erledigt sein, oder? Allerdings zeigt mein JBoss 7 folgendes:
Code:
WARN  [org.jboss.as] No security realm defined for native management service, all access will be unrestricted.

Demzufolge wird in der EJB das @RolesAllowed(value = "ADMIN") auch ignoriert.

Hat jemand einen Tip?
 
S

Sym

Gast
Ich wollte eigentlich Jaas verwenden, und versuche mich gerade an Chapter*10.*JBoss Login Modules.

Reicht das mein obiger Code denn nicht, um EJBs-Methoden zu sichern? Die Authentifizierung fehlt dann zwar noch, aber was kommt, das kommt. :)
 

TheDarkRose

Gesperrter Benutzer
Hast du die Security Domain im Jboss Server auch richtig eingerichtet? Poste mal den relevanten ausschnitt.
 

TheDarkRose

Gesperrter Benutzer
Dort gibst du an, welche Security Domain deine Anwendung verwendet. Aber einfach so weiß der JBoss natürlich nicht was test sein soll. Du musst ihm schon auch noch die Security Domain konfigurieren, und somit bestimmen woher die User und Rollendaten bezogen werden.
 
S

Sym

Gast
Ah ok,

ich habe mich in diesem Bereich leider noch nie bewegt. :)

Dann schaue ich mal, wie ich dem JBoss das am besten beibringe.

Muss ich das direkt im JBoss definieren? Oder gibt es auch eine Möglichkeit über Maven eine solche Konfiguration zur Verfügung zu stellen?

Gruß und Dank.
 
Zuletzt bearbeitet von einem Moderator:
S

Sym

Gast
Danke nochmal,

ich denke, ich werde versuchen, die Konfiguration mit einem SAR zu setzen. Bei Problemen melde ich mich.
 
S

Sym

Gast
SAR? Wtf?

Normal liegt unter $server/conf/ eine login-config,xml in der die Security Domain definiert wird.

CreateASimpleSecurityDomainForJBossSX | JBoss Community
Die Idee war, dass ich somit in dem Project alle Möglichkeiten zur Entwicklung vorliegen habe und bei einem Aufsetzen eines weiteren Entwicklungsarbeiteplatzes nur einen JBoss installieren muss und der Rest über das EAR-Plugin erledigt wird. :)

Aber anscheinend wird beim JBoss 7 alles in der Standalone.xml geregelt und die Möglichkeit über die jboss-service.xml ist eh nicht mehr gegeben.
 
S

Sym

Gast
So, da bin ich wieder. Ich bekomme leider immer noch die folgende Meldung:

Code:
WARN  [org.jboss.as] No security realm defined for native management service, all access will be unrestricted.

Und meine RolesAllowed-Annotation in der EJB wird auch ignoriert.

Hier meine JBoss 7 Einstellungen

standalone.xml:
Code:
<management>
    <security-realms>
        <security-realm name="test">
            <authentication>
                <properties path="mgmt-users.properties" relative-to="jboss.server.config.dir"/>
            </authentication>
        </security-realm>
    </security-realms>
    ...
</management>
...
<subsystem xmlns="urn:jboss:domain:security:1.0">
            <security-domains>
                <security-domain name="other" cache-type="default">
                    <authentication>
                        <login-module code="Database" flag="required">
                            <module-option name="dsJndiName" value="java:/test"/>
                            <module-option name="principalsQuery" value="SELECT password FROM users WHERE username=?"/>
                            <module-option name="rolesQuery" value="SELECT USERROLE.rolename, 'Roles' FROM USERS INNER JOIN (USERROLE INNER JOIN MAPUSERUSERROLE ON USERROLE.roleid = MAPUSERUSERROLE.roleid) ON USERS.userid = MAPUSERUSERROLE.userid where USERS.username=?"/>
                        </login-module>
                    </authentication>
                </security-domain>
            </security-domains>
        </subsystem>

Der Authentication-Block im Managementbereich ist dabei noch nicht korrekt, denke ich. Wie bekomme ich die Verbindung zur Security-Domain?

jboss-app.xml
Code:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE jboss-app PUBLIC
	"-//JBoss//DTD J2EE Application 1.4//EN"
	"http://www.jboss.org/j2ee/dtd/jboss-app_4_0.dtd">
<jboss-app>
  <security-domain>java:/jaas/other</security-domain>
</jboss-app>

web.xml
Code:
<login-config>
        <auth-method>BASIC</auth-method>
        <realm-name>test</realm-name>
    </login-config>

Dank und Gruß
 
S

Sym

Gast
Die Warnung bekomme ich mit

Code:
<management-interfaces>
            <native-interface interface="management" port="9999" security-realm="test"/>
            <http-interface interface="management" port="9990" security-realm="test"/>
        </management-interfaces>
weg, aber helfen tut das nicht.

Wo könnte das Problem liegen?
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben