Sto lavorando alla creazione di un provider di autenticazione per Symfony 2 che consente agli utenti di autenticarsi con il protocollo di accesso singolo denominato CAS.Symfony2: come ottenere i valori di configurazione del listener di autenticazione in un altro servizio?
My L'ascoltatore di autenticazione si estende da AbstractAuthenticationListener. Uno dei parametri di configurazione è check_path
, che è il percorso/percorso che attiva il listener di autenticazione per autenticare la richiesta.
ho bisogno check_path
quando costruisco l'URL al server CAS (in modo del server CAS sa dove tornare l'utente a), che è facile, dal momento che mia abitudine Punto di ingresso classe viene passata l'array di configurazione quando è costruito in la mia sicurezza Factory.
La parte più difficile è che ho anche bisogno check_path
al di fuori di chi ascolta, come durante l'autenticazione all'interno del mio Authentication Provider classe. Ne ho bisogno perché quando il server CAS invia l'utente indietro all'app, passa un parametro "ticket" che deve essere convalidato. Per convalidarlo, invio una richiesta di ricciolo al server CAS che deve contenere il ticket e l'originale check_path
utilizzato.
Come ha scritto questo, mi sono reso conto che avrei potuto ottenere l'URL corrente della richiesta di pagina quando sono all'interno del provider di autenticazione (dal momento che è check_path
che fa scattare comunque), ma che sembra fuori, e preferirei ottenere direttamente il valore di configurazione per ricostruire l'URL del servizio. Inoltre non mi aiuta quando voglio usare check_path
altrove, come quando si costruisce un URL di disconnessione al server CAS che ha richiesto anche lo check_path
.
EDIT: Il metodo di AbstractFactory
createAuthProvider
viene passato sia la configurazione e il contenitore, ma non riesco a modificare nessuno dei miei servizi in qui perché non sono ancora parte del contenitore. Forse se avessi un modo per aggiungere un passaggio del compilatore dopo che i miei servizi sono stati caricati e in qualche modo avere accesso alla configurazione del listener?
'check_path' non è un parametro normale, pertanto non può essere eseguito. È un'opzione di configurazione per il listener di autenticazione (vedere il codice per la classe 'AbstractAuthenticationListener'). – Brian