# JAAS via Wildfly



## ace1988 (28. Apr 2015)

Hey liebe Leute

Ich will JAAS in einer Java-Anwendung mit Wildfly(8.2.0)Ich hab verschiedene Methoden, Möglichkeiten und Konfigurationen ausprobiert und verwendet.
Begonnen habich mit der Konfiguration von Wildfly in der standalone.xml(im Anhang)

Standalone konfigurieren


      1. Bei der Standalone.xml einen neuen Security Realm erstellt:


```
<security-realm name="TPRealm">
           <authentication>
                     <jaas name="TPLogin"/>
           </authentication>
</security-realm>
```
 

      2. Dieser Realm haben als Standard gesetzt:


```
<http-connector name="http-remoting-connector" connector-ref="default" security-realm="TPRealm"/>
```
 

      3. Und dann noch die Security-Domain mit dem Login-Module

```
<security-domain name="TPLogin" cache-type="default">
                          <authentication>
                              <login-module code="Database" flag="required">
                                  <module-option name="dsJndiName" value="java:jboss/datasources/TourPlanningDS"/>
                                  <module-option name="principalsQuery" value="select passwordHash from TaUser where login=?"/>
                              </login-module>
                          </authentication>
                      </security-domain>
```
 
      (im Anhang befindet sich die komplette XML-Datei)


Aufruf im Code:



```
String username = "Admin";
String password = "admin";

PasswordClientCallbackHandler handler = new PasswordClientCallbackHandler(username, "TPRealm", password.toCharAttay());

   try {
    LoginContext loginContext = new LoginContext("TPRealm", handler);
    loginContext.login();
} catch (LoginException e) {
    System.out.println("Login failed");
    return;
}
```

             Bekomme da aber beim "new LoginContext(...)" folgenden Meldung:
   javax.security.auth.login.LoginException: unable to find LoginModule classrg.jboss.security.auth.spi.TPLogin





      Hab dann im Internet öfters gelesen, dass eine config-Datei       benötigt wird (jaas.config)

*TPRealm {** 

org.jboss.security.auth.spi.TPLogin required;  // I dont know, what exactly have to stay here

}*


      Hab diese Datei zu den Properties hinzugefügt:


```
System.setProperty("java.security.auth.login.config", jaasConfig)        //jaasConfig: Pfad zur Datei
```
 
      Dann kann ich zwar die Zeile mit "new LoginContext(...)"       ausführen.
      aber dann scheitert es beim "loginContext.login()".
      mit folgender Fehlermeldung:
javax.security.auth.login.LoginException: LoginModule-Klasse kann nicht gefunden werden


      Ich hab auch den Log von WIldFly beobachtet, hab erwartet dass       etwas geloggt wird,
      aber da hat sich nichts getan als der Code im Cockpit ausgeführt       wurde.

In der Java Applikation habe ich auch folgenden Propertys gesetzt:


```
Properties ejbProps = new Properties();
 ejbProps.put("endpoint.name", "client-endpoint");
 ejbProps.put("remote.connectionprovider.create.options.org.xnio.Options.SSL_ENABLED", "false");
 ejbProps.put("remote.connections", "default");
 ejbProps.put("remote.connection.default.host", "localhost");
 ejbProps.put("remote.connection.default.port", "8080");
 ejbProps.put("remote.connection.default.connect.options.org.xnio.Options.SASL_POLICY_NOANONYMOUS", "false");

 
 EJBClientConfiguration cc = new PropertiesBasedEJBClientConfiguration(ejbProps);
 ContextSelector<EJBClientContext> selector = new ConfigBasedEJBClientContextSelector(cc);
 EJBClientContext.setSelector(selector);
```
 

      Müssen noch weitere Properties noch gesetzt werden?
      Muss noch was Anderes beachtet werden?


Falls ihr eine Idee habt, oder euch was auffällt, was falsch ist, bitte meldet euch.

Vielen Dank


----------

