Hallo ich habe ein Problem mit einem Server-Seite Ruhe-Client, der eine andere Server-Ruhe-API aufrufen soll. Es funktioniert tatsächlich mit JBoss AS 7.1 und Tomee, aber der Webservice antwortet mit einem 404, wenn ich Wildfly 10.1 verwende.REST Client Problem mit Wildfly10
Der Zielendpunkt verwendet die Cookie-Authentifizierung, um die Autorisierung zu überprüfen. Dies wird von einem servletFilter durchgeführt. Also, den Dienst zu nennen, ich habe ein Cookie: Cookie: "cookie_name: token"
Die Servlet-Filter tatsächlich gut funktioniert, sind infact, wenn ich die gleiche Webservice mit jeder Rest Client aufrufen (i versucht Intellij erstes und Postman) es funktioniert gut.
Das Problem tritt nur von Server Seite Aufruf erfolgt über ein Play Framework 1.2.5 Anwendung mit Play WS lib.
Hier ist der Code: (Oberklasse-Methode eine Instanz von WS.WSRequest zurückkehren)
@play.mvc.Before(priority = 0)
protected static WS.WSRequest authCookieHttpClient(String relativeUrl) throws IllegalStateException {
if (JWT_AUDIENCE != null && JWT_ISSUER != null && JWT_SECRET != null && JWT_TIMEOUT != null && API_ENDPOINT != null && AUTH_COOKIE_NAME != null) {
JWTClaims jwtClaims = new JWTClaims(
JWT_ISSUER,
Security.getConnectedUser().username,
JWT_AUDIENCE,
JWT_TIMEOUT
);
WS.WSRequest request = WS.url(API_ENDPOINT + relativeUrl);
JWTProducer jwtProducer = new JWTProducer(JWT_SECRET, jwtClaims);
try {
request.setHeader("Cookie",
AUTH_COOKIE_NAME + "=" + URLEncoder.encode(jwtProducer.signPayload(), "utf-8"));
} catch (UnsupportedEncodingException e) {
Logger.error("Unable to encode cookie info", e);
}
return request;
}
throw new IllegalStateException("Cannot use parent controller: " + ApiSubscriber.class + " without configuring API endpoint and JWT features");
}
Die Telefonvorwahl:
WS.HttpResponse res = authCookieHttpClient(areaUrl + sb.toString()).get();
Die gleiche Anforderung arbeitet gut mit Postman/Intellij Client (mit dem Cookie-Header gleich der Wiedergabe WS-Anfrage)
Alles funktioniert gut mit JBoss AS 7.1 (ee6) mit JAX-RS impl. zur Verfügung gestellt von Jersey
Es funktioniert nicht nur mit WildFly 10.1 (ee7) mit JAX-RS impl von RestEasy zur Verfügung gestellt. (Umleitungen wie wurde nicht von dem Cookie, so Client 404 zurückgeben)
Jeder Vorschlag? Danke.