Ich habe eine vorhandene Klasse, die ich versuche, einhängen, um einige Header-Parameter zu SSO ein Benutzer in unserem System zu erhalten. Die Klasse ist wie folgt.Übergeben von @Context-Argument an Methode in Klasse
import java.util.Map;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.HttpHeaders;
import javax.ws.rs.core.MediaType;
import org.springframework.stereotype.Component;
@Component
@Path("/http")
public class HttpResource {
@GET
@Path("/getHeaders")
@Produces(MediaType.APPLICATION_JSON)
public Map<String, String> getAllHeaders(@Context HttpHeaders headers) {
Map<String, String> headerList = new HashMap<String, String>();
for (String key : headers.getRequestHeaders().keySet()) {
String value = headers.getRequestHeader(key).get(0);
System.out.println(key + " : " + value);
headerList.put(key, value);
}
return headerList;
}
}
Was ich versuche, herauszufinden, wie rufe ich getAllHeaders()
mit dem @Context
Argument? Ich habe eine Menge Beispiele für die Klasse gefunden, die ich habe, aber nichts, was zeigt, wie man es nennt.
Ich habe auch versucht, die Annotation innerhalb der Klasse statt als Argument zu setzen.
@Context
HttpHeaders httpHeaders;
aber wenn ich versuche, auf httpHeaders.getAllHeaders()
zuzugreifen, gibt es null zurück. Ich nehme an, weil es nicht wirklich erstellt wird, weil die Javax-Dokumente sagen, dass es niemals Null zurückgibt.
Ich versuche, dies in meinem SSOAuthorizationFilter.java zu nennen, habe aber auch versucht, über einen Controller darauf zuzugreifen.
Welchen Rahmen verwenden Sie? Frühling/RestEasy/Jersey? –
@ Shiraaz.M Frühling –