Die Authentisierung findet anhand des Benutzernamens und des Passwortes statt. Dabei wird unterschieden zwischen
Containergesteuerte Authentisierung
Anwendungsgesteuerte Authentisierung
Es wird empfohlen, die containergesteuerte Authentisierung zu verwenden.
Containergesteuerte Authentisierung
Bei einer containergesteuerten Authentisierung werden die Zugriffsdaten durch den Container verwaltet. Der EJB-Deployer konfiguriert im EJB-Deployment-Descriptor eine containergesteuerte Authentisierung mit folgendem Eintrag:
<res-auth>Container</res-auth>
Bei der Verwendung einer containergesteuerten Authentisierung rufen Sie die Methode getConnection()
ohne Parameter auf.
Details siehe auch Abschnitt „Containergesteuerte Authentisierung (container-managed)“ im Sicherheitseinstellungen definieren (Anmeldung verwalten) .
Anwendungsgesteuerte Authentisierung
Bei einer anwendungsgesteuerten Authentisierung werden die Zugriffsdaten im Programmcode der EJB verwaltet. Der EJB-Deployer konfiguriert im EJB-DeploymentDescriptor eine anwendungsgesteuerte Authentisierung mit folgendem Eintrag:
<res-auth>Application</res-auth>
Im EJB-Quellcode verwenden Sie anstelle des parameterlosen Aufrufs getConnection()
z.B. folgende Code-Sequenz:
javax.naming.InitialContext ic = new InitialContext(); String user = (String)ic.lookup("java:comp/env/User"); String password = (String)ic.lookup("java:comp/env/Password"); net.fsc.jca.communication.PasswordCredential pwc = new net.fsc.jca.communication.PasswordCredential (user, password); con=(net.fsc.jca.communication.EISConnection)cf.getConnection(pwc);
Benutzerkennung und Passwort in diesem Beispiel werden als Umgebungsvariablen der EJB definiert. Der Deployer kann Umgebungsvariablen erforderlichenfalls anpassen. Auf die Umgebungsvariablen kann mit der Methode lookup()
zugegriffen werden.