Manuale di Sun Enterprise Authentication Mechanism

Callback

Un altro caso in cui è possibile usare i cookie è quello dei callback. Un server può specificare un callback (definito dall'utente) in modo da sapere quando il contesto verrà usato per la prima volta usando la funzione rpc_gss_set_callback(). Il callback viene chiamato la prima volta in cui un contesto viene usato per lo scambio dei dati, dopo che il contesto è stato stabilito per il programma e la versione specificati.

La routine di callback definita dall'utente assume la forma seguente:

Il secondo e il terzo argomento, deleg e contesto_gss, sono tipi di dati GSS-API e attualmente non sono esposti, perciò la funzione di callback può ignorarli. (In breve, deleg è l'identità di un qualsiasi sistema paritetico delegato, mentre contesto_gss è un puntatore al contesto GSS-API, nel caso in cui il programma voglia eseguire operazioni GSS-API sul contesto, ad esempio un test per i criteri di accettazione.) L'argomento cookie è già stato descritto.

L'argomento lock è un puntatore a una struttura rpc_gss_lock_t:

typedef struct {
		bool_t              locked;
		rpc_gss_rawcred_t   *raw_cred;
} rpc_gss_lock_t;
Questo parametro permette a un server di applicare un determinato QOP e un determinato servizio per la sessione. Il QOP e il servizio si trovano nella struttura rpc_gss_rawcred_t descritta nell'Esempio 8-5. (Il server non dovrebbe cambiare i valori per il servizio e il QOP.) Quando viene chiamato il callback definito dall'utente, il campo locked viene impostato su FALSE. Se il server imposta locked su TRUE, verranno accettate solo le richieste con valori per il QOP e il servizio che corrispondono a quelli presenti nella struttura rpc_gss_rawcred_t.

Per maggiori informazioni, vedere la pagina man rpc_gss_set_callback(3N).