Abbiamo un'applicazione build su Java 1.6 con Spring 3.0.3 che utilizza Spring Security 3.0.5 e implementa API REST utilizzando Spring Web con RestEasy 2.1.0. Ho bisogno di posizionare questa applicazione (server) dietro un proxy che traduca il traffico di richieste HTTPS da un'applicazione client API REST nel traffico HTTP. Questa modifica crea uno scenario "cross domain" per la richiesta di accesso: il client invia la richiesta HTTPS per l'accesso e Server risponde con l'URL di reindirizzamento di HTTP. Attualmente risposte con:Come eseguire l'applicazione Spring Security per l'esecuzione dietro un proxy?
”http://192.168.0.10:8090/index.html;jsessionid=64FD79...86D”
,
quello che mi serve è:
”/index.html;jsessionid=64FD79...86D”
Siamo venuti con la soluzione per rendere server per rispondere con la “relativa” URL invece “ assoluto "URL. Così ho cercato di implementare qualcosa di simile con situazione descritta qui:
ho impostato il fagiolo RedirectStrategy con contextRelative = "true" e sovrascrivere il setter redirectStrategy da AbstractAuthenticationTargetUrlRequestHandler nel mio LoginSuccessHandler esteso di classe e vedo la proprietà redirectStrategy per l'oggetto HttpServletResponse è impostata su true come previsto. Ancora non risolve il problema.
anche quando si cambia proprietà redirectURLCC di HttpServletResponse oggetto utilizzando encodeRedirectURL ("otherLogin") è qualcosa come set
”http://192.168.0.10:8090/otherLogin”
e non è quello che mi serve. Devo rimuovere l'intero protocollo + parte dell'indirizzo IP dell'URL. La proprietà URL dell'oggetto risposta non è accessibile per le modifiche poiché viene implementata dall'implementazione delle interfacce Filter e FilterChain.
Si prega di suggerire qualsiasi idea. Suppongo che questo tipo di cose dovrebbero essere risolti nei file web.xml o auth-AplicationContext.xml non nel codice.
I migliori saluti.