Attualmente sto sviluppando un'applicazione basata su un'architettura di micro servizi. Utilizziamo un gateway API implementato utilizzando il server Zuul di Spring Cloud Netfix per instradare le richieste ai nostri micro servizi.Spring OAuth Authorization Server dietro Spring Cloud Zuul Proxy
Per realizzare un unico accesso per tutti i nostri servizi Attualmente sto lavorando a un server OAuth2 configurato utilizzando Spring Cloud Security. Il server è fondamentalmente solo copia e passato dell'implementazione in Repos di Dave Syer: https://github.com/dsyer/spring-security-angular/tree/master/oauth2/authserver
La differenza principale è che voglio instradare le richieste al mio server OAuth tramite Zuul Proxy. In questo modo non dovrò esporre direttamente il mio server OAuth e aggiungere e rimuovere il server di login in modo dinamico.
Il problema è che non ho cucito per capire come configurare correttamente questa configurazione. Quando provo ad accedere a una risorsa protetta sul server OAuth, sono inoltrato alla pagina di accesso. Questo naturalmente è come previsto. Ma non riesco a capire come impostare il nome host e la porta utilizzata durante l'inoltro. Quello che voglio che succeda è che il server deve inoltrare a un endpoint sul server Zuul che sarà rexiedato al server OAuth. (Il gateway API Zuul dovrebbe essere l'unico server con cui il cliente parla. Tutto il resto sarà nascosto.)
Come è l'host e la porta vengono letti da HttpServletRequest
in LoginUrlAuthenticationEntryPoint
. Ma la richiesta che il server vede è la richiesta inviata dal proxy Zuul. Quindi sono inoltrato a un IP interno non a un endpoint sul proxy.
Ho provato a impostare l'URL della pagina di accesso in WebSecurityConfigurerAdapter.configure(HttpSecurity)
nell'URL absolut del mio Zuul Proxy. Ma questo ha solo causato alla mia applicazione di lamentarsi di troppi reindirizzamenti. (Potrebbe aver causato un loop lì.)
Quale sarebbe il modo migliore per impostare questo?
- Devo implementare una sorta di propria strategia di inoltro sovrascrivendo un bean?
- C'è un'opzione di configurazione che mi manca?
- La mia idea è sbagliata? (Nella sua risposta alla How to avoid redirect to another host with Zuul? Dave Syer dice che normalmente non procura questo, ma non spiega perché.)
Così alla fine come procedi con questo problema? – wmfairuz
Potresti aggiungere come hai risolto questo problema e implementato? – Sourabh
Per ora ho accettato la risposta più alta. –