2016-08-05 4 views
1

Ich habe ein Problem mit dem Senden einer GET-Anfrage in Java, mit einem , an eine SAML-URL (https://en.wikipedia.org/wiki/SAML_2.0). Ich hole die URL von einem Location-Header, den ich bei einer früheren Anfrage bekomme, und gebe 302 zurück. Dann mache ich einen GET für die URL, die das Format https://some.domain/?SAMLRequest=...&RelayState=... hat. Jersey bleibt irgendwie darauf stecken und schickt niemals die eigentliche Anfrage (ich habe sowohl Charles geprüft als auch einen Logging-Filter aktiviert, aber das GET passiert nie, es versucht es gar nicht erst). Es wird in der folgenden Zeile fest:Jersey Client fest auf SAML GET Anfrage

PoolingClientConnectionManager - Connection request: [route: {tls}->http://127.0.0.1:8888->https://some.domain][total kept alive: 3; route allocated: 2 of 2; total allocated: 7 of 20]

Antwort

0

Dies war eine schwierige Frage, aber ich es endlich geschafft, es zu lösen, indem ein ClientFilter dem Kunden das Hinzufügen der nur geschieht Folgendes:

/** 
* This class is only used to solve cases where a Client gets stuck in a redirect process. 
*/ 
public class MyClientFilter extends ClientFilter { 

    @Override 
    public ClientResponse handle(ClientRequest clientRequest) throws ClientHandlerException { 
     return getNext().handle(clientRequest); 
    } 
} 

Irgendwie gelingt es dem Kunden, die Weiterleitungen weiter zu verfolgen.

Verwandte Themen