我有一个现有的类,我正在尝试连接以获取一些标头参数,以将用户 SSO 引入我们的系统。课程如下。
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;
}
}
我想弄清楚的是如何getAllHeaders()
用@Context
参数调用?我找到了很多我所拥有的课程的例子,但没有任何内容显示如何调用它。
我还尝试将注释放在类中而不是作为参数。
@Context
HttpHeaders httpHeaders;
但是当我尝试访问httpHeaders.getAllHeaders()
它时返回null。我假设是因为它实际上并没有被创建,因为 javax 文档说它永远不会返回 null。
我试图在我的 SSOAuthorizationFilter.java 中调用它,但也尝试通过控制器访问它。