MobiLink verfügt über vordefinierte Java-Synchronisationsskripten, die Ihnen die Authentifzierung gegenüber externen Servern mithilfe des Ereignisses authenticate_user vereinfachen. Vordefinierte Skripten sind für folgende Authentifizierungsserver verfügbar:
POP3- oder IMAP-Server mit der JavaMail 1.2 API-Schnittstelle
LDAP-Server mit der JNDI-Schnittstelle (Java Naming and Directory Interface)
Wie Sie diese Skripten einsetzen, wird dadurch bestimmt, ob Ihre MobiLink-Benutzernamen direkt den Benutzer-IDs in Ihrem externen Authentifizierungssystem zugeordnet sind.
Sie können die Authentifizierung auch in externen Servern im Sybase Central-Modellmodus über das Register "Authentifizierung" durchführen. Weitere Hinweise finden Sie unter MobiLink-Modelle.
Wenn der MobiLink-Benutzername einfach direkt einer gültigen Benutzer-ID in Ihrem Authetifizierungssystem zugeordnet ist, können die vordefinierten Skripten direkt als Reaktion auf das authenticate_user-Verbindungsereignis aufgerufen werden. Der Authentifizierungscode initialisiert sich selbst basierend auf den Eigenschaften, die in der ml_property-Tabelle gespeichert sind.
Fügen Sie der MobiLink-Systemtabelle ml_scripts das vordefinierte Java-Synchronisationsskript hinzu. Sie können dazu eine gespeicherte Prozedur oder Sybase Central benutzen.
Bei der Verwendung der gespeicherten Prozedur ml_add_java_connection_script führen Sie folgenden Befehl aus:
call ml_add_java_connection_script( 'Eigene_Version', 'authenticate_user', 'ianywhere.ml.authentication.Servertyp.authenticate' ) |
Dabei gilt: Eigene_Version ist der Name einer Skriptversion und Servertyp ist LDAP, POP3 oder IMAP.
Bei der Verwendung des Assistenten zum Hinzufügen von Verbindungsskripten in Sybase Central wählen Sie den Skripttyp authenticate_user und geben Folgendes im Code-Editor ein:
ianywhere.ml.authentication.Servertyp.authenticate |
Dabei gilt: Servertyp ist LDAP, POP3 oder IMAP.
Weitere Hinweise finden Sie unter ml_add_java_connection_script-Systemprozedur.
Fügen Sie Eigenschaften für diesen Authentifizierungsserver hinzu.
Verwenden Sie für die Festlegung der verschiedenen Eigenschaften die gespeicherte Prozedur ml_add_property:
call ml_add_property( 'ScriptVersion', 'Eigene_Version', 'Eigenschaftsname', 'Eigenschaftswert' ) |
Dabei gilt: Eigene_Version ist der Name einer Skriptversion, Eigenschaftsname wird von Ihrem Authentifizierungsserver festgelegt und Eigenschaftswert ist ein Wert aus Ihrer Anwendung. Wiederholen Sie diesen Aufruf für jede festzulegende Eigenschaft.
Weitere Hinweise finden Sie unter Eigenschaften für externe Authentifizierer und ml_add_property-Systemprozedur.
Wenn Ihre MobiLink-Benutzernamen nicht den Benutzer-IDs entsprechen, muss der Code indirekt aufgerufen werden und Sie müssen die Benutzer-ID aus dem ml_user-Wert extrahieren bzw. eine Zuordnung vornehmen. Dazu schreiben Sie eine entsprechende Java-Klasse.
Weitere Hinweise finden Sie unter Synchronisationsskripten in Java erstellen.
Nachfolgend finden Sie ein einfaches Beispiel hierzu. In diesem Beispiel wurde der Code in der extractUserID-Methode weggelassen, da er davon abhängt, wie die Zuordnung des ml_user-Werts zu einer userid erfolgt. Die Verarbeitung erfolgt komplett in der authenticate-Methode der authentication-Klasse.
package com.mycompany.mycode; import ianywhere.ml.authentication.*; import ianywhere.ml.script.*; public class MLEvents { private DBConnectionContext _context; private POP3 _pop3; public MLEvents( DBConnectionContext context ) { _context = context; _pop3 = new POP3( context ); } public void authenticateUser( InOutInteger status, String userID, String password, String newPassword ) { String realUserID = extractUserID( userID ); _pop3.authenticate( status, realUserID, password, newPassword ); } private String extractUserID( String userID ) { // code here to map ml_user to a "real" POP3 user } } |
In diesem Beispiel muss das POP3-Objekt mit dem DBConnectContext-Objekt initialisiert werden, damit es seine Initialisierungseigenschaften finden kann. Wenn Sie die Initialisierung nicht auf diese Weise vornehmen, müssen Sie die Eigenschaften im Code definieren. Zum Beispiel:
POP3 pop3 = new POP3(); pop3.setServerName( "smtp.sybase.com" ); pop3.setServerPort( 25 ); |
Dies gilt für alle authentication-Klassen, obwohl die Eigenschaften nach Klasse unterschiedlich sind.
Eigenschaften für externe Authentifizierer
Kommentieren Sie diese Seite in DocCommentXchange. Senden Sie uns Feedback über diese Seite via E-Mail. |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |