繁体   English   中英

Resteasy安全拦截器-如何在拦截器内部获取客户端IP地址?

[英]Resteasy security interceptor - how to obtain client IP address inside interceptor?

我已经实现了一个拦截器,以对带有以下注释的客户端IP地址进行安全检查-@Provider @ServerInterceptor @Precedence(“ SECURITY”)

预处理方法采用参数HttpRequest请求,ResourceMethod方法。 有没有一种方法可以从Resteasy HttpRequest对象获取客户端的IP地址? 我可以实现一个过滤器来解决此问题,但希望将安全检查放在一个地方。

客户端IP地址可从请求对象获得。 但是您不能将其用于安全目的,因为它不是每个客户端唯一的:它可能只是最近的代理地址,甚至您自己的代理地址。

这个(我的)答案是错误的! 仅在实例化过滤器类时才“注入” HttpServletRequest,因此实例对所有后续请求“查看”相同的HttpServletRequest(HttpServletREquest始终是第一个!!!!)


您可以注入HttpServletRequest对象以访问客户端ip(我正在使用它)

@Provider
@Interceptor
@Precedence("SECURITY")
public class JAXRSInterceptor implements PreProcessInterceptor
{

    **@Context HttpServletRequest request; // WRONG WRONG WRONG**

    @Override
    public ServerResponse preProcess(HttpRequest arg0, ResourceMethod arg1) throws Failure, WebApplicationException
    {


        System.out.println(request.getRemoteAddr());
        System.out.println(request.getRemoteHost());
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM