Ja jsem to udelal takto:
Na serveru (JBoss 4.2)
<application-policy name = "XXXRealm">
<authentication>
<login-module code =
"org.jboss.security.auth.spi.DatabaseServerLoginModule" flag = "required">
<module-option name = "dsJndiName">java:/XXXAuthDS</module-option>
<module-option name = "principalsQuery">...</module-option>
<module-option name = "rolesQuery">...</module-option>
</login-module>
</authentication>
</application-policy>
Takze klasika. a Swing klient se prihasuje takto:
public class LoginModule extends FormApplicationModule {
protected LoginContext loginContext;
....
public void login throws Exception {
...
UsernamePasswordHandler usernamePasswordHandler = new
UsernamePasswordHandler(username,password);
loginContext = new LoginContext("client-login",
usernamePasswordHandler);
loginContext.login();
}
public void close() throws Exception {
...
if(loginContext != null) {
loginContext.logout();
}
}
}
Dulezite je aby pri spousteni byl zadan pro jre odkaz na cestu k
auth.conf a to takto:
java -Djava.security.auth.login.config=./auth.conf ......
a soubor auth.conf obsahuje toto:
client-login {
org.jboss.security.ClientLoginModule required;
};
pokud mate v jboss.xml nastaven spravne
<security-domain>java:/jaas/XXXRealm</security-domain> tak muzete v ejb
testovat role a jmeno prihlaseneho uzivatele.
Nejprve provedete prihlaseni a pote navazujete spojeni na ejb, bez
jakekoli zmeny.
Jaroslav hurdes
Ales Dostal napsal(a):
Zdravim,
tak se nejak trapim s authentifikaci pres JDBCRealm. Pokud se to tyka
webove aplikace, je mi situace jasna a jednoducha. Authentifikacni
formular -> xml konfigurace a jsem tam.
Ale kdyz mam swing aplikaci a chci udelat nejaky prihlasovaci
formular? Nechci na klienta tahat SQL ci JDBC atd., jde mi o to, zda
se da prihlasit nejak takto:
class EJBBeana .... {
public void login(String name, String pass) throws ..... {
// prihlaseni do JDBCRealm, popripade vyhozeni vyjimky
}
}
Zejmena mi jde o to, aby se prihlaseni provedlo na serveru a ja mohl
pouzivat: SessionContext.getCallerPrincipal().getName(), anotovani
metod podle opravneni, atd.
Proste toto se mi nedari. Ani na forech nemuzu najit presne reseni.
Nejak mi to prijde silene zmatene.
Koukal jsem na "Context.SECURITY_PRINCIPAL", ale zde take nevim jak na
to, protoze pro InitialContext toto nejak nefunguje :(
Pote jsem koukal na: ProgrammaticLogin na serveru, take bez uspechu.
Pote jsem zkousel LoginContext, take bez uspechu.
Samotny JDBCRealm mam nastaven jako default, takze bych ho teoreticky
ani v xml nemusel nastavovat, ale i to mam.
Ja uz vazne nevim co s tim. Poradi mi nekdo, jak presne od swing ->
app. serveru udelam authentifikaci (JAAS)?
________ Information from NOD32 ________
This message was checked by NOD32 Antivirus System for Linux Mail
Servers.
http://www.eset.com