mardi 28 avril 2015
JAAS via Wildfly
Posted on 03:58 by verona
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:
2. Dieser Realm haben als Standard gesetzt:
3. Und dann noch die Security-Domain mit dem Login-Module
(im Anhang befindet sich die komplette XML-Datei)
Aufruf im Code:
Bekomme da aber beim "new LoginContext(...)" folgenden Meldung:
javax.security.auth.login.LoginException: unable to find LoginModule class:org.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:
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:
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
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:
Code:
<security-realm name="TPRealm">
<authentication>
<jaas name="TPLogin"/>
</authentication>
</security-realm>
2. Dieser Realm haben als Standard gesetzt:
Code:
<http-connector name="http-remoting-connector" connector-ref="default" security-realm="TPRealm"/>
3. Und dann noch die Security-Domain mit dem Login-Module
Code:
<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>
Aufruf im Code:
Java Code:
-
-
-
-
PasswordClientCallbackHandler handler = new PasswordClientCallbackHandler(username, "TPRealm", password.toCharAttay());
-
-
try {
-
LoginContext loginContext = new LoginContext("TPRealm", handler);
-
loginContext.login();
-
} catch (LoginException e) {
-
return;
-
}
Bekomme da aber beim "new LoginContext(...)" folgenden Meldung:
javax.security.auth.login.LoginException: unable to find LoginModule class:org.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:
Java Code:
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:
Java Code:
-
-
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
JAAS via Wildfly
Categories: JAAS via Wildfly
Inscription à :
Publier les commentaires (Atom)
0 commentaires:
Enregistrer un commentaire