Sun Enterprise Authentication Mechanism Handbuch

Callbacks

Eine weitere Verwendungsmöglichkeit für Cookies stellen Callbacks dar. Ein Server kann eine (benutzerdefinierte) Callback-Prozedur festlegen, damit er erfährt, wenn ein Kontext das erste Mal mit der Funktion rpc_gss_set_callback() verwendet wird. Die Callback-Prozedur wird bei der ersten Verwendung eines Kontextes für den Datenaustausch aufgerufen, nachdem der Kontext für das angegebene Programm und die angegebene Version eingerichtet wurde.

Die benutzerdefinierte Callback-Routine besitzt die folgende Form:

Die zweiten und dritten Argumente, deleg und gss_context, sind GSS-API-Datentypen und werden momentan nicht offengelegt, daher können sie von der Callback-Funktion ignoriert werden. (Kurz gesagt, stellt deleg die Identität eines beliebigen delegierten Peers dar, während gss_context ein Zeiger auf den GSS-API-Kontext ist, falls das Programm GSS-API-Operationen für den Kontext durchführen möchte -- d. h., es für Akzeptanzkriterien testen.) Das Argument cookie ist uns bereits bekannt.

Das Argument lock stellt einen Zeiger auf die Struktur rpc_gss_lock_t dar:

typedef struct { 
		bool_t              locked; 
		rpc_gss_rawcred_t   *raw_cred; 
} rpc_gss_lock_t;
Dieser Parameter ermöglicht es einem Server, einen bestimmten QOP und Service für die Sitzung durchzusetzen. Den QOP und Service finden Sie in der Struktur rpc_gss_rawcred_t, die unter Beispiel 8-5 beschrieben wird. (Ein Server sollte die Werte für Service und QOP nicht ändern.) Beim Aufruf der benutzerdefinierten Callback-Funktion wird für das Feld locked (gesperrt) der Wert FALSE festgelegt. Wenn der Server für locked (gesperrt) den Wert TRUEfestlegt, werden nur Anfragen mit den QOP- und Service-Werten akzeptiert, die mit den QOP- und Service-Werten in der Struktur rpc_gss_rawcred_t übereinstimmen.

Weitere Informationen finden Sie in der Online-Dokumentation zu rpc_gss_set_callback(3N).