Informazioni di riferimento sulle API del Caching Proxy
Variabili
Durante la scrittura dei programmi API, è possibile utilizzare le variabili del Caching Proxy che
forniscono informazioni sul sistema server e client remoto.
Note:
- I nomi delle variabili definite dall'utente non possono avere il prefisso SERVER_. La funzione
API del Caching Proxy riserva ogni variabile che comincia con SERVER_ per il server; tuttavia, queste
variabili sono di sola lettura. Inoltre, anche i prefissi HTTP_ e PROXY_ sono riservati per le
intestazioni HTTP.
- Tutte le intestazioni di richiesta inviate dal client (ad esempio Set-Cookie) sono precedute
dal prefisso HTTP_, ed è possibile estrarre i relativi valori. Per accedere alle variabili che sono
intestazioni di richiesta, anteporre al nome della variabile il prefisso HTTP_. È anche possibile
creare nuove variabili utilizzando la funzione predefinita httpd_setvar(). Per i dettagli su queste
intestazioni, consultare Codici di ritorno delle funzioni e delle macro
predefinite.
- Vengono utilizzati due prefissi di variabili, HTTP_ e PROXY_, per indicare se una variabile si
applica alle intestazioni di richiesta o di risposta. Il prefisso HTTP_ si riferisce alle variabili
che fluiscono dal client al Caching Proxy. Il prefisso PROXY_ si riferisce alle variabili che fluiscono dal
Caching Proxy al server di origine (o il server successivo in una catena proxy). Queste variabili sono
valide solo durante le fasi di elaborazione delle richieste.
- L'estrazione di una variabile HTTP_* fornisce il valore di un'intestazione presente nella
richiesta del client sul server proxy.
- L'impostazione di una variabile HTTP_* imposta l'intestazione di risposta inviata dal server
proxy al client.
- L'estrazione di una variabile PROXY_* fornisce il valore per un'intestazione restituita dal
server dei contenuti al server proxy.
- L'impostazione di una variabile PROXY_* imposta l'intestazione della richiesta inviata dal
server proxy al server dei contenuti (o al successivo server in una catena di proxy).
Figura 2 illustra l'utilizzo di questi prefissi quando Caching Proxy gestisce una
richiesta client.
Legenda: 1—Macchina client 2—Caching Proxy 3—Server di
origine
- Alcune variabili sono di sola lettura. Le variabili di sola lettura rappresentano i valori
estratti da una richiesta o da una risposta e vengono utilizzate nella funzione predefinita
httpd_getvar(). Se si tenta di modificare le variabili di sola lettura utilizzando la funzione
httpd_setvar(), viene restituito il codice di ritorno HTTPD_READ_ONLY.
- Le variabili non identificate come di sola lettura possono essere lette e impostate nelle
funzioni predefinite httpd_getvar() o httpd_setvar(). Queste variabili rappresentano i valori che
si possono estrarre da una richiesta o da una risposta, o i valori che è possibile impostare o
creare durante l'elaborazione di una richiesta o di una risposta.
Definizioni delle variabili
Nota:
le variabili di intestazione che non cominciano con i prefissi HTTP_ o PROXY_ sono
ambigue. Per evitare questa ambiguità, utilizzare sempre il prefisso HTTP_ o PROXY_ con i nomi
delle variabili per le intestazioni.
- ACCEPT_RANGES
- Contiene il valore dell'intestazione di risposta Accept-Ranges, che specifica se il server
dei contenuti può rispondere alle richieste di intervallo. Utilizzare PROXY_ACCEPT_RANGES per estrarre
il valore dell'intestazione che viene inviata dal server dei contenuti al proxy.
Utilizzare HTTP_ACCEPT_RANGES per impostare il valore dell'intestazione che viene inviata dal proxy
al client.
Nota:
ACCEPT_RANGES è ambiguo. Per eliminare l'ambiguità, utilizzare
HTTP_ACCEPT_RANGES e PROXY_ACCEPT_RANGES.
- ALL_VARIABLES
- Sola lettura. Contiene tutte le variabili CGI. Ad esempio:
ACCEPT_RANGES BYTES
CLIENT_ADDR 9.67.84.3
- AUTH_STRING
- Sola lettura. Se il server supporta l'autenticazione del client, questa stringa contiene le
credenziali non codificate da utilizzare per l'autenticazione del client.
- AUTH_TYPE
- Sola lettura. Se il server supporta l'autenticazione del client e lo script è protetto,
questa variabile contiene il metodo utilizzato per autenticare il client.
Ad esempio, Basic.
- CACHE_HIT
- Sola lettura. Identifica se la richiesta proxy è stata trovata o meno nella cache. I valori restituiti includono quanto
segue:
- 0 - La richiesta non è stata trovata nella cache.
- 1 - La richiesta è stata trovata nella cache.
- CACHE_MISS
- Sola scrittura. Utilizzato per forzare un accesso alla cache non riuscito. I valori validi sono i seguenti:
- 0 - Non forzare un acesso alla cache non riuscito.
- 1 - Forzare un accesso alla cache non riuscito.
- CACHE_TASK
- Sola lettura. Identifica se è stata utilizzata la cache. I valori restituiti includono quanto
segue:
- 0 - La richiesta non ha avuto accesso o non ha aggiornato la cache.
- 1 - La richiesta è stata soddisfatta dalla cache.
- 2 - L'oggetto richiesto si trovava nella cache, ma era necessario convalidarlo nuovamente.
- 3 - L'oggetto richiesto non si trovava nella cache e probabilmente è stato aggiunto.
Questa variabile può essere utilizzata nelle fasi PostAuthorization, PostExit, ProxyAdvisor
o Log.
- CACHE_UPDATE
- Sola lettura. Identifica se la richiesta proxy ha aggiornato o meno la cache.
I valori restituiti includono quanto
segue:
- 0 - La cache non è stata aggiornata.
- 1 - La cache è stata aggiornata.
- CLIENT_ADDR o CLIENTADDR
- Uguale a REMOTE_ADDR.
- CLIENTMETHOD
- Uguale a REQUEST_METHOD.
- CLIENT_NAME o CLIENTNAME
- Uguale a REMOTE_HOST.
- CLIENT_PROTOCOL o CLIENTPROTOCOL
- Contiene il nome e la versione del protocollo che il client sta utilizzando per effettuare la
richiesta. Ad esempio, HTTP/1.1.
- CLIENT_RESPONSE_HEADERS
- Sola lettura. Restituisce un buffer contenente le intestazioni che il server invia al client.
- CONNECTIONS
- Sola lettura. Contiene il numero di connessioni supportate o il numero di richieste attive. Ad esempio, 15.
- CONTENT_CHARSET
- Serie di caratteri della risposta per text/*, ad esempio, US ASCII . L'estrazione
di questa variabile è valida per l'intestazione content-charset del client. La relativa
impostazione influisce sull'intestazione content-charset nella richiesta al server dei contenuti.
- CONTENT_ENCODING
- Specifica la codifica utilizzata nel documento, ad esempio, x-gzip . L'estrazione
di questa variabile si applica all'intestazione content-encoding del client. La relativa
impostazione influisce sull'intestazione content-encoding nella richiesta al server dei contenuti.
- CONTENT_LENGTH
- L'estrazione di questa variabile si applica all'intestazione della richiesta del client.
La
relativa impostazione influisce sull'intestazione nella richiesta al server dei contenuti.
Nota:
CONTENT_LENGTH è ambiguo. Per eliminare l'ambiguità, utilizzare HTTP_CONTENT_LENGTH e
PROXY_CONTENT_LENGTH.
- CONTENT_TYPE
- L'estrazione di questa variabile si applica all'intestazione della richiesta del client.
La
relativa impostazione influisce sull'intestazione nella richiesta al server dei contenuti.
Nota:
CONTENT_TYPE è ambiguo. Per eliminare l'ambiguità, utilizzare HTTP_CONTENT_TYPE e
PROXY_CONTENT_TYPE.
- CONTENT_TYPE_PARAMETERS
- Contiene altri attributi MIME, ma non la serie di caratteri. L'estrazione di questa variabile si applica all'intestazione della richiesta del client. La relativa impostazione
influisce sul valore dell'intestazione nella richiesta al server dei contenuti.
- DOCUMENT_URL
- Contiene l'URL (Uniform Request Locator). Ad esempio:
http://www.anynet.com/~userk/main.htm
- DOCUMENT_URI
- Uguale a DOCUMENT_URL.
- DOCUMENT_ROOT
- Sola lettura. Contiene il percorso della root del documento, come definito dalle regole di
inoltro.
- ERRORINFO
- Specifica il codice di errore per determinare la pagina errore. Ad esempio, blocked.
- EXPIRES
- Definisce la data di scadenza dei documenti memorizzati in una cache del proxy. L'estrazione
di questa variabile si applica all'intestazione della richiesta del client. La relativa impostazione
influisce sul valore dell'intestazione nella richiesta al server dei contenuti. Ad esempio:
Mon, 01 Mar 2002 19:41:17 GMT
- GATEWAY_INTERFACE
- Sola lettura. Contiene la versione dell'API utilizzata dal server.
Ad esempio, ICSAPI/2.0.
- GC_BIAS
- Sola scrittura. Questo valore a virgola mobile influenza la decisione di raccolta dei dati obsoleti per il file considerato per la raccolta. Il valore immesso è moltiplicato per l'impostazione di qualità di Caching Proxy per quel tipo di file per determinare la classificazione. Le impostazioni di qualità variano da 0.0 a 0.1 e sono definite dalle direttive AddType nel file di configurazione del proxy (ibmproxy.conf).
- GC_EVALUATION
- Sola scrittura. Questo valore a virgola mobile determina se rimuovere (0.0) o mantenere (1.0) il file considerato per la raccolta dei dati obsoleti.
I valori compresi tra 0,0 e 1,0 vengono ordinati in base alla classificazione, vale a dire, è molto
probabile che venga rimosso un file avente il valore GC_EVALUATION di 0,1 e non un file con il
valore GC_EVALUATION di 0,9.
- GC_EXPIRES
- Sola lettura. Identifica quanti secondi devono trascorrere prima della scadenza del
file in esame nella cache. Questa variabile può essere estratta solo da un plug-in Advisor GC.
- GC_FILENAME
- Sola lettura. Identifica il file preso destinato alla raccolta di dati inutili.
Questa variabile può essere estratta solo da un plug-in Advisor GC.
- GC_FILESIZE
- Sola lettura. Identifica la dimensione del file destinato alla raccolta di dati inutili. Questa variabile può essere estratta solo da un plug-in Advisor GC.
- GC_LAST_ACCESS
- Sola lettura. Identifica la data dell'ultimo accesso al file. Questa variabile può essere estratta solo da un plugin Advisor GC.
- GC_LAST_CHECKED
- Sola lettura. Identifica l'ultimo controllo dei file. Questa variabile può essere estratta solo da un plugin Advisor GC.
- GC_LOAD_DELAY
- Sola lettura. Identifica il tempo necessario per richiamare il file. Questa variabile può essere estratta solo da un plug-in Advisor GC.
- HTTP_COOKIE
- Quando viene letta, questa variabile contiene il valore dell'intestazione Set-Cookie
impostata dal client. Può essere utilizzata anche per impostare un nuovo cookie nel flusso di
risposta (tra il proxy e il client). L'impostazione di questa variabile induce la creazione di una nuova
intestazione Set-Cookie nel flusso di richieste documenti, a prescindere dalla presenza o meno di
un'intestazione duplicata.
- HTTP_HEADERS
- Sola lettura. Utilizzato per estrarre tutte le intestazioni di richiesta client.
- HTTP_REASON
- L'impostazione di questa variabile influisce sulla stringa reason nella risposta HTTP.
L'impostazione di questa variabile influisce sulla stringa reason nella risposta del proxy al
client.
L'estrazione di questa variabile restituisce la stringa reason nella risposta proveniente dal
server dei contenuti al proxy.
- HTTP_RESPONSE
- L'impostazione di questa variabile influisce sul codice di risposta nella risposta HTTP.
La sua impostazione influisce anche sul codice di stato nella risposta del proxy al client.
L'estrazione di questa variabile restituisce il codice di stato nella risposta proveniente dal
server dei contenuti al proxy.
- HTTP_STATUS
- Contiene il codice di risposta HTTP e la stringa reason. Ad esempio, 200 OK.
- HTTP_USER_AGENT
- Contiene il valore dell'intestazione della richiesta User-Agent, vale a dire il nome del
browser web del client, ad esempio, Netscape Navigator / V2.02 . L'impostazione di
questa variabile influisce sull'intestazione nella risposta del proxy al client. La relativa estrazione viene applicata all'intestazione della richiesta del client.
- INIT_STRING
- Sola lettura. La direttiva ServerInit definisce questa stringa. Questa variabile può essere
letta solo durante l'inizializzazione del server.
- LAST_MODIFIED
- L'estrazione di questa variabile si applica all'intestazione della richiesta del client.
La
relativa impostazione influisce sull'intestazione nella richiesta al server dei contenuti.
Ad esempio:
Mon, 01 Mar 1998 19:41:17 GMT
- LOCAL_VARIABLES
- Sola lettura. Tutte le variabili definite dall'utente.
- MAXACTIVETHREADS
- Sola lettura. Il numero massimo di thread attivi.
- NOTMODIFIED_TO_OK
- Forza una risposta completa al client. Valido nelle fasi PreExit e ProxyAdvisor.
- ORIGINAL_HOST
- Sola lettura. Restituisce il nome host o l'indirizzo IP di destinazione di una richiesta.
- ORIGINAL_URL
- Sola lettura. Restituisce l'URL originale inviato nella richiesta client.
- OVERRIDE_HTTP_NOTRANSFORM
- Abilita la modifica dei dati alla presenza di un'intestazione Cache-Control: no-transform. L'impostazione di questa variabile influisce sull'intestazione di risposta al client.
- OVERRIDE_PROXY_NOTRANSFORM
- Abilita la modifica dei dati alla presenza di un'intestazione Cache-Control: no-transform. L'impostazione di questa variabile influisce sulla richiesta al server dei contenuti.
- PASSWORD
- Per l'autenticazione di base, contiene la password decodificata. Ad esempio,
password.
- PATH
- Contiene il percorso completo convertito.
- PATH_INFO
- Contiene ulteriori informazioni sul percorso inviate dal browser Web.
Ad esempio, /foo.
- PATH_TRANSLATED
- Contiene la versione decodificata o convertita delle informazioni sul precorso contenute in
PATH_INFO. Ad esempio:
d:\wwwhome\foo
/wwwhome/foo
- PPATH
- Contiene il percorso parzialmente convertito. Utilizzarlo nella fase Conversione nome.
- PROXIED_CONTENT_LENGTH
- Sola lettura. Restituisce la lunghezza dei dati di risposta attualmente trasferiti tramite il
server proxy.
- PROXY_ACCESS
- Definisce se la richiesta è una richiesta proxy. Ad esempio, NO.
- PROXY_CONTENT_TYPE
- Contiene l'intestazione Content-Type della richiesta proxy effettuata tramite HTTPD_proxy().
Se le informazioni vengono inviate con il metodo POST, questa variabile
contiene il tipo di dati inclusi. È possibile creare il proprio tipo di contenuto nel file di
configurazione del server proxy e mapparlo su un visualizzatore. L'estrazione di questa variabile si
applica al valore dell'intestazione della risposta del server dei contenuti. La relativa impostazione influisce sull'intestazione per la richiesta al server
dei contenuti. Ad esempio:
application/x-www-form-urlencoded
- PROXY_CONTENT_LENGTH
- L'intestazione Content-Length della richiesta proxy effettuata tramite HTTPD_proxy().
Se le informazioni vengono inviate con il metodo POST, questa variabile
contiene il numero di caratteri dei dati. Generalmente, i server non inviano un'indicatore di fine
file quando inoltrano le informazioni utilizzando un input standard. Se necessario, per stabilire
la fine della stringa di input, è possibile utilizzare il valore CONTENT_LENGTH.
L'estrazione di questa variabile si
applica al valore dell'intestazione della risposta del server dei contenuti. La relativa impostazione influisce sull'intestazione per la richiesta al server
dei contenuti.
Ad esempio:
7034
- PROXY_COOKIE
- Quando viene letta, questa variabile contiene il valore dell'intestazione Set-Cookie
impostata dal server di origine. Essa può essere utilizzata anche per impostare un nuovo cookie nel
flusso di risposte. L'impostazione di questa variabile induce la creazione di una nuova
intestazione Set-Cookie nel flusso di richieste documenti, a prescindere dalla presenza o meno di
un'intestazione duplicata.
- PROXY_HEADERS
- Sola lettura. Utilizzato per estrarre le intestazioni Proxy.
- PROXY_METHOD
- Metodo per la richiesta effettuata tramite HTTPD_proxy(). L'estrazione di questa variabile si
applica al valore dell'intestazione della risposta del server dei contenuti. La relativa impostazione influisce sull'intestazione per la richiesta al server
dei contenuti.
- QUERY_STRING
- Se le informazioni vengono inviate utilizzando un metodo GET, questa variabile contiene le
informazioni situate dopo un punto interrogativo (?) in una query. Queste informazioni devono
essere decodificate dal programma CGI. Ad esempio:
NAME=Eugene+T%2E+Fox&ADDR=etfox%7Cibm.net&INTEREST=xyz
- RCA_OWNER
- Sola lettura. Restituisce un valore numerico, che identifica il nodo dell'oggetto
richiesto. Questa variabile può essere utilizzata nelle fasi PostExit, ProxyAdvisor o Log ed è
significativa solo se il server fa parte di una matrice di cache che utilizza RCA (remote cache
access).
- RCA_TIMEOUTS
- Sola lettura. Restituisce un valore numerico contenente il numero totale (aggregato) di
timeout sulle richieste RCA per tutti i peer. È possibile utilizzare questa variabile in qualsiasi
fase.
- REDIRECT_*
- Sola lettura. Contiene informazioni su una stringa di reindirizzamento per il codice di
errore che corrisponde al nome della variabile (ad esempio, REDIRECT_URL). Nella
documentazione online è possibile trovare un elenco delle variabili REDIRECT_ possibili per il
server web Apache, all'indirizzo http://httpd.apache.org/docs-2.0/custom-error.html.
- REFERRER_URL
- Sola lettura. Contiene l'ubicazione più recente dell'URL del browser. Consente al client di
specificare, a vantaggio del server, l'indirizzo (URL) della risorsa da cui si ottiene Request-URL. Ad esempio:
http://www.company.com/homepage
- REMOTE_ADDR
- Contiene l'indirizzo IP del browser Web, se disponibile. Ad esempio, 45.23.06.8.
- REMOTE_HOST
- Contiene il nome host del browser Web, se disponibile. Ad esempio, www.raleigh.ibm.com.
- REMOTE_USER
- Se il server supporta l'autenticazione del client e lo script è protetto, questa variabile
contiene il nome utente inoltrato per l'autenticazione. Ad esempio, joeuser.
- REQHDR
- Sola lettura. Contiene un elenco delle intestazioni inviate dal client.
- REQUEST_CONTENT_TYPE
- Sola lettura. Restituisce il tipo di contenuto del corpo della richiesta. Ad esempio:
application/x-www-form-urlencoded
- REQUEST_CONTENT_LENGTH
- Sola lettura. Se le informazioni vengono inviate con il metodo POST, questa variabile
contiene il numero di caratteri dei dati. Generalmente, i server non inviano un'indicatore di fine
file quando inoltrano le informazioni utilizzando un input standard. Se necessario, per stabilire
la fine della stringa di input, è possibile utilizzare il valore CONTENT_LENGTH. Ad esempio, 7034.
- REQUEST_METHOD
- Sola lettura. Contiene il metodo (come specificato con l'attributo METHOD in un modulo HTML)
utilizzato per inviare la richiesta. Ad esempio, GET o POST.
- REQUEST_PORT
- Sola lettura. Restituisce il numero di porta specificato nell'URL o una porta predefinita
basata sul protocollo.
- RESPONSE_CONTENT_TYPE
- Sola lettura. Se le informazioni vengono inviate con il metodo POST, questa variabile
contiene il tipo di dati inclusi. È possibile creare il proprio tipo di contenuto nel file di
configurazione del server proxy e mapparlo su un visualizzatore. Ad esempio, text/html.
- RESPONSE_CONTENT_LENGTH
- Sola lettura. Se le informazioni vengono inviate con il metodo POST, questa variabile
contiene il numero di caratteri dei dati. Generalmente, i server non inviano un'indicatore di fine
file quando inoltrano le informazioni utilizzando un input standard. Se necessario, per stabilire
la fine della stringa di input, è possibile utilizzare il valore CONTENT_LENGTH. Ad esempio, 7034.
- RULE_FILE_PATH
- Sola lettura. Contiene il percorso completo del file system e il nome del file di
configurazione.
- SSL_SESSIONID
- Sola lettura. Restituisce l'ID di sessione se la richiesta corrente viene ricevuta su una
connessione SSL. Restituisce NULL se la richiesta corrente non viene ricevuta su una connessione
SSL.
- SCRIPT_NAME
- Contiene l'URL della richiesta.
- SERVER_ADDR
- Sola lettura. Contiene l'indirizzo IP locale del server proxy.
- SERVER_NAME
- Sola lettura. Contiene il nome host del server proxy o l'indirizzo IP del server dei
contenuti per questa richiesta. Ad esempio, www.ibm.com.
- SERVER_PORT
- Sola lettura. Contiene il numero di porta del server proxy a cui è stata inviata la richiesta
client. Ad esempio, 80.
- SERVER_PROTOCOL
- Sola lettura. Contiene il nome e la versione del protocollo utilizzato per effettuare la
richiesta. Ad esempio, HTTP/1.1.
- SERVER_ROOT
- Sola lettura. Contiene la directory in cui viene installato il programma del server proxy.
- SERVER_SOFTWARE
- Sola lettura. Contiene il nome e la versione del server proxy.
- STATUS
- Contiene il codice di risposta HTTP e la stringa reason. Ad esempio, 200 OK.
- TRACE
- Determina la quantità delle informazioni tracciate. I valori di ritorno includono:
- OFF - Nessuna traccia.
- V - Modalità Verbose.
- VV - Modalità Very Verbose.
- MTV - Modalità Much Too Verbose.
- URI
- Lettura/scrittura. Uguale a DOCUMENT_URL.
- URI_PATH
- Sola lettura. Restituisce solo parte del percorso di un'URL.
- URL
- Lettura/scrittura. Uguale a DOCUMENT_URL.
- URL_MD4
- Sola lettura. Restituisce il nome del file di cache potenziale per la richiesta corrente.
- USE_PROXY
- Identificare il proxy con cui associare la richiesta corrente. Specificare l'URL. Ad esempio,
http://myproxy:8080.
- USERID
- Uguale a REMOTE_USER.
- USERNAME
- Uguale a REMOTE_USER.
Autenticazione e autorizzazione
Breve riesame della terminologia:
- Autenticazione
- La verifica dei token di sicurezza
associati a questa richiesta per accertare l'identità del richiedente.
- Autorizzazione
- Un processo che utilizza i token di
sicurezza per determinare se il richiedente ha accesso alla risorsa.
Figura 3 illustra il processo di autorizzazione e autenticazione del
server proxy.
Come dimostrato in Figura 3, l'avvio del processo di autorizzazione è
il primo passo del processo di autorizzazione e autenticazione del server.
Nel Caching Proxy, l'autenticazione fa parte del processo di autorizzazione; si verifica solo
quando viene richiesta l'autorizzazione.
Processo di autenticazione e autorizzazione
Il server proxy segue queste fasi durante l'elaborazione di una richiesta che richiede
l'autorizzazione.
-
Innanzitutto, il server proxy esamina il file di configurazione per determinare
se esiste o meno una direttiva di autorizzazione.
- Se nel file di configurazione è presente una direttiva di autorizzazione, il server
chiama la funzione di autorizzazione definita nella direttiva e avvia l'autenticazione
con la fase 2.
- Se non esiste alcuna direttiva di autorizzazione, il server esegue un'autorizzazione
predefinita e procede direttamente con le procedure di autenticazione presenti nella fase
3.
-
Il server proxy avvia il processo di autenticazione verificando l'esistenza
o meno dell'intestazione HTTP_authenticate nella richiesta client.
- Se l'intestazione è presente, il server continua il processo di autenticazione
(consultare il passo 3).
- Se l'intestazione non è presente, l'autenticazione deve essere eseguita in base ad un
altro metodo.
-
Il server proxy effettua il controllo per vedere se nel file di
configurazione del proxy esiste una direttiva di autenticazione.
- Se nel file di configurazione è presente una direttiva di autenticazione, il server
chiama la funzione di autenticazione definita nella direttiva.
- In caso contrario, il server effettua un'autenticazione predefinita.
Se il plugin del Caching Proxy fornisce il proprio processo di autorizzazione,
questo sostituisce l'autorizzazione e l'autenticazione
predefinita del server.
Tuttavia, se nel file di configurazione sono presenti direttive di autorizzazione, è
necessario che anche le funzioni del plug-in ad esse associate gestiscano qualsiasi
autorizzazione necessaria. A questo scopo viene fornita la funzione HTTPD_authenticate()
predefinita.
Esistono tre metodi per fornire l'autenticazione nei plugin di autorizzazione:
- Scrivere autonomamente plugin di autorizzazione e autenticazione separati. Nel file
di configurazione del proxy, per specificare queste funzioni utilizzare entrambe le
direttive, quella di autorizzazione e quella di autenticazione. Accertarsi di aver
incluso nella funzione di plugin di autorizzazione la chiamata funzione
HTTPD_authenticate().
Una volta effettuata l'operazione di autorizzazione, viene
eseguita la funzione del plugin di autorizzazione, che a sua volta chiama la funzione
del plugin di autenticazione.
- Scrivere la propria funzione del plugin di autorizzazione, ma fare in modo che tale
funzione richiami l'autenticazione predefinita del server. Nel file di configurazione del
proxy, utilizzare la direttiva di Autorizzazione per specificare la propria funzione. In tal caso, non è necessaria la direttiva di Autenticazione. Accertarsi di aver chiamato la
funzione HTTPD_authenticate() nella funzione del plugin di autorizzazione.
Una volta
effettuata l'operazione di autorizzazione, viene eseguita la funzione del plugin di
autorizzazione che, a sua volta, chiama l'autenticazione predefinita del server.
- Scrivere la propria funzione del plug-in di autorizzazione e includervi tutte le
operazioni di autenticazione che devono essere elaborate. Non utilizzare la funzione
HTTPD_authenticate() nel plugin di autorizzazione. Nel file di configurazione del proxy,
utilizzare la direttiva di Autorizzazione per specificare il proprio plugin di
autorizzazione. In tal caso, non è necessaria la direttiva di Autenticazione.
Una
volta eseguita l'operazione di autorizzazione, viene eseguita la funzione del plugin di
autorizzazione, incluse eventuali autenticazioni.
Se il plugin del Caching Proxy non fornisce il processo di autorizzazione, è ancora possibile
fornire un'autenticazione personalizzata utilizzando il seguente metodo:
- Scrivere la propria funzione del plug-in di autenticazione. Nel file di configurazione
del proxy, utilizzare le direttive di autenticazione per specificare la propria funzione. In questo caso, non è necessaria la direttiva di Autorizzazione.
Una volta effettuata l'operazione di Autorizzazione, viene eseguita l'autorizzazione
predefinita del server che, a sua volta, chiama la funzione del plugin di autenticazione.
Tenere presenti i seguenti punti:
- Se nel proprio file di configurazione non si dispone di nessuna direttiva di
Autorizzazione o se le funzioni del plugin specificate non gestiscono la richiesta
restituendo HTTP_NOACTION, viene utilizzata l'autorizzazione predefinita del server.
- Se nel file di configurazione sono
presenti le direttive di autorizzazione e le relative funzioni di plugin includono
HTTPD_authenticate(), il server chiama tutte le funzioni di autenticazione specificate
nelle direttive di autenticazione. Se, al contrario, non si dispone di nessuna direttiva
di autenticazione definita o se le relative funzioni di plugin specificate non gestiscono
la richiesta restituendo HTTP_NOACTION, viene utilizzata l'autenticazione predefinita del
server.
- Se le direttive di autorizzazione sono presenti nel proprio file di configurazione ma
le relative funzioni di plugin non includono HTTPD_authenticate(), il server non chiama
nessuna funzione di autenticazione. È necessario scrivere il proprio processo di
autenticazione come parte delle funzioni del plugin di autorizzazione o effettuare delle
chiamate ad altri moduli di autenticazione.
- Se la funzione di autorizzazione restituisce i codici 401 o
407, il Caching Proxy genera una richiesta in cui richiede al browser di restituire un
ID utente e una password. Tuttavia, è ancora necessario configurare un'impostazione di
protezione nel Caching Proxy affinché questa operazione possa essere eseguita correttamente.
Memorizzazione della variante nella cache
Utilizzare la funzione di memorizzazione nella cache della variante per memorizzare i
dati, vale a dire un modulo modificato del documento originale (l'URI). Il Caching Proxy gestisce
le varianti generate dall'API. Le varianti rappresentano
versioni differenti di un documento di base.
In genere, quando i server di origine inviano delle varianti, la loro identificazione
in quanto tali ha esito negativo. Il Caching Proxy supporta solo le varianti create dai plugin (ad
esempio, la conversione della code page). Se un plugin crea una variante in base a
criteri non presenti nell'intestazione HTTP, è necessario includere un funzione della
fase PreExit o PostAuthorization per creare una pseudo intestazione in modo che il Caching Proxy
possa identificare correttamente la variante esistente.
Ad esempio, utilizzare un programma API Transmogrifier per modificare i dati richiesti
dagli utenti in base al valore dell'intestazione User-Agent inviato dal browser.
Nella funzione close, salvare il contenuto modificato in un
file o specificare una lunghezza del buffer e inoltrare il buffer come argomento dati.
Quindi, utilizzare le funzioni di memorizzazione nella cache della variante,
httpd_variant_insert() e httpd_variant_lookup(), per inserire il contenuto nella cache.
Esempi di API
Per
un'introduzione alle funzioni delle API del Caching Proxy, prendere in esame i programmi di
esempio forniti nella directory esempi del CD-ROM di
installazione di componenti Edge. Altre informazioni sono disponibili
sul sito web di WebSphere Application Server, www.ibm.com/software/webservers/appserv/.