# JBoss Authentifizierung mit MYSQL-Datenbank



## remus (28. Sep 2007)

Hallo Ihr Java-Profis

Seit einiger Zeit suche ich ein gutes Tutorial/Codebeispiel, in dem ich lernen kann, wie ich ein JBoss so Einstelle, dass die Authentifikation nicht über die Dateien users.properties / roles.properties, sondern über eine MYSQL DB ausgeführt wird.

Leider habe ich im Internet nichts gefunden. Sei's dass ich zu dumm zum suchen bin, oder weil nie jemand etwas darüber geschrieben hat.. Ich brauch eure hilfe    

Vielen Dank im Voraus


----------



## ms (28. Sep 2007)

Schau mal hier: http://www.java-forum.org/de/topic54762_jboss-security-databaseserverloginmodule.html

ms


----------



## Guest (28. Sep 2007)

ms hat gesagt.:
			
		

> Schau mal hier: http://www.java-forum.org/de/topic54762_jboss-security-databaseserverloginmodule.html
> 
> ms



Naja schon beim ersten Punkt stehe ich an: security-login.config gibt es bei mir nicht ?!

Noch zur info: Es ist keine JSP Anwendung sondern ein Java-Client der sich Authentifizieren soll


----------



## remus (28. Sep 2007)

Sorry, war nicht eingeloggt und hab die Korrektur weiter unten im Thread übersehen

EDIT

Funktioniert immer noch nicht. Was ich jedoch seltsam finde ist, dass die Exception sagt:


> Exception in thread "main" javax.security.auth.login.LoginException: Error looking up DataSource from: java:/DefaultDS



Denn ich will ja java:jdbc/gwmp ansprechen ?
Hier mal die Files:

jboss.xml:

```
<?xml version="1.0" encoding ="UTF-8"?>
<jboss>
	<security-domain>java:/jaas/gwmp</security-domain>
</jboss>
```

mysql-ds.xml:

```
<?xml version="1.0" encoding="UTF-8"?>


<!--  Datasource config for MySQL using 3.0.9 available from:
[url]http://www.mysql.com/downloads/api-jdbc-stable.html[/url]
-->

<datasources>
  <local-tx-datasource>
    <jndi-name>jdbc/gwmp</jndi-name>
    <connection-url>jdbc:mysql://localhost:3306/gwmp</connection-url>
    <driver-class>com.mysql.jdbc.Driver</driver-class>
    <user-name>root</user-name>
    <password>passwort</password>
    <exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter</exception-sorter-class-name>
    <!-- should only be used on drivers after 3.22.1 with "ping" support
    <valid-connection-checker-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLValidConnectionChecker</valid-connection-checker-class-name>
    -->
    <!-- sql to call when connection is created
    <new-connection-sql>some arbitrary sql</new-connection-sql>
      -->
    <!-- sql to call on an existing pooled connection when it is obtained from pool - MySQLValidConnectionChecker is preferred for newer drivers
    <check-valid-connection-sql>some arbitrary sql</check-valid-connection-sql>
      -->

    
    <metadata>
       <type-mapping>mySQL</type-mapping>
    </metadata>
  </local-tx-datasource>
</datasources>
```

login-config.xml:

```
<policy>
    <application-policy name = "gwmp">
       <authentication>
          <login-module code = "org.jboss.security.auth.spi.DatabaseServerLoginModule"
             flag = "required">
             <module-option name = "unauthenticatedIdentity">guest</module-option>
             <module-option name = "dsJndiName">java:jdbc/gwmp</module-option>
             <module-option name = "principalsQuery">SELECT Password FROM GWMP_USERS WHERE USERID=?</module-option>
             <module-option name = "rolesQuery">SELECT ROLEID, 'Roles' FROM GWMP_ROLES WHERE USERID=?</module-option>
          </login-module>
       </authentication>
    </application-policy>

</policy>
```

auth.conf:

```
gwmp {
	org.jboss.security.auth.spi.DatabaseServerLoginModule required;
};

srp-client {
   // Example client auth.conf for using the SRPLoginModule
   org.jboss.security.srp.jaas.SRPLoginModule required
   password-stacking="useFirstPass"
   principalClassName="org.jboss.security.SimplePrincipal"
   srpServerJndiName="SRPServerInterface"
   debug=true
	;

   // jBoss LoginModule
   org.jboss.security.ClientLoginModule  required
   password-stacking="useFirstPass"
   ;

   // Put your login modules that need jBoss here
};

other {
   // jBoss LoginModule
   org.jboss.security.ClientLoginModule  required
   ;

   // Put your login modules that need jBoss here
};
```

Was läuft hier falsch ?


----------



## remus (30. Sep 2007)

Weis hier wirklich niemand bescheid ?


----------

