![](/img/trans.png)
[英]How to get Target Resource from ContainerRequestFilter in Apache CXF
[英]How to get the remote IP in a ContainerRequestFilter
我有這個類,想要記錄其余的請求:
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? TIA!
嘗試這個:
public class RequestFilter implements ContainerRequestFilter {
private static final Logger LOG = LoggerFactory.getLogger(RequestFilter.class);
@Context
private HttpServletRequest request;
// rest of your stuff here
遲到的回復,但這可能會幫助其他人使用Grizzly2 ......
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();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.