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



Odpovedet emailem