Java 如何在ContainerRequestFilter中获取远程IP
我有这个类,希望记录rest请求:Java 如何在ContainerRequestFilter中获取远程IP,java,rest,jersey,Java,Rest,Jersey,我有这个类,希望记录rest请求: public class RequestFilter implements ContainerRequestFilter { private static final Logger LOG = LoggerFactory.getLogger(RequestFilter.class); @Override public void filter(ContainerRequestContext requestContext) throws
public class RequestFilter implements ContainerRequestFilter {
private static final Logger LOG = LoggerFactory.getLogger(RequestFilter.class);
@Override
public void filter(ContainerRequestContext requestContext) throws IOException {
LOG.info("REST-Request from '{}' for '{}'", "XXX", requestContext.getUriInfo().getPath());
// ... and do some auth stuff (not relevant for this question)
}
}
如何获取请求的远程IP?蒂亚 试试这个:
public class RequestFilter implements ContainerRequestFilter {
private static final Logger LOG = LoggerFactory.getLogger(RequestFilter.class);
@Context
private HttpServletRequest request;
// rest of your stuff here
一个迟来的答复,但这可能有助于其他人使用灰熊2
import javax.servlet.http.HttpServletRequest;
import org.glassfish.grizzly.http.server.Request;
public class RequestFilter implements ContainerRequestFilter {
private static final Logger LOG = LoggerFactory.getLogger(RequestFilter.class);
@Context
private HttpServletRequest httpServletRequest;
@Inject
private Provider<Request> grizzlyRequest;
@Override
public void filter(ContainerRequestContext requestContext) throws IOException {
String remoteIpAddress;
if (httpServletRequest != null) {
// JSR-315/JSR-339 compliant server
remoteIpAddress = httpServletRequest.getRemoteAddr();
} else {
// Grizzly2 server
remoteIpAddress = grizzlyRequest.get().getRemoteAddr();
}
import javax.servlet.http.HttpServletRequest;
导入org.glassfish.grizzly.http.server.Request;
公共类RequestFilter实现ContainerRequestFilter{
私有静态最终记录器LOG=LoggerFactory.getLogger(RequestFilter.class);
@上下文
私有HttpServletRequest HttpServletRequest;
@注入
私人提供商grizzlyRequest;
@凌驾
公共无效筛选器(ContainerRequestContext requestContext)引发IOException{
字符串远程IP地址;
if(httpServletRequest!=null){
//JSR-315/JSR-339兼容服务器
remoteIpAddress=httpServletRequest.getRemoteAddr();
}否则{
//Grizzly2服务器
remoteIpAddress=grizzlyRequest.get().getRemoteAddr();
}
如果我让Guice打针,我会怎么做?Jersey 2.0的哪个版本可以工作?2.25.1
对我不起作用。Jersey 2.0的哪个版本可以工作?2.25.1
对我不起作用。我使用的是Jersey 2.19和Grizzly 2.3.22。