我的安全配置有问题,我需要创建一个访问我的应用程序的IP列表。
我的问题是以动态的方式为我的所有应用程序请求获取Ip。但是我不想为我的应用程序的所有请求添加一个HttpServletRequest,我想要的是一个在每个请求之前调用的方法,甚至在SecurityConfig事件之前。
public abstract class IPAddressBasedAuthenticationProvider implements AuthenticationProvider {
/**
* Context http request
*/
@Autowired
private HttpServletRequest request;
@Override
public Authentication authenticate(Authentication authentication) throws AuthenticationException {
String ipAddress = request.getRemoteAddr();
System.out.println(ipAddress);
return authentication;
}
}
我尝试在我的控制器类中自动生成它,但我的应用程序没有执行。我该怎么做才能让这件事成功?
我使用了一种不同的方法来获取客户端请求的地址。
我创建了一个名为WebConfig的类,它实现了WebMVCConfigurer。这个类配置了Spring中的一些用法。下面是该类的代码:
@EnableWebMvc
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new LoggerInterceptor());
}
}
这个方法正在注册一个拦截器,这个拦截器将拦截请求,并使用您将创建的方法在某些请求被发送时执行。我的代码示例:
public class LoggerInterceptor extends HandlerInterceptorAdapter {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response,
Object handler) {
System.out.println(request.getRemoteAddr());
return true;
}
}
如果我做错了什么,请纠正我。
根据CloudFront的文档(https://docs.aws.amazon.com/amazoncloudfront/latest/developerguide/requestandresponseBehaviorCustomOrigin.html),客户端IP可以是头的前面、中间和结尾。 是Rignt吗?那我怎么才能得到真正的客户端IP呢?
get_client_ip($type = 0, $adv = false) 功能 获取客户端IP地址 参数 $type: string 返回类型 0 返回IP地址 1 返回IPV4地址数字 $adv: boolean 是否进行高级模式获取(有可能被伪装) 返回 string 客户端IP地址
get_client_ip($type = 0, $adv = false) 功能 获取客户端IP地址 参数 $type: string 返回类型 0 返回IP地址 1 返回IPV4地址数字 $adv: boolean 是否进行高级模式获取(有可能被伪装) 返回 string 客户端IP地址
问题内容: 我正在尝试开发一个Java Web应用程序(Servlet),该服务器需要获取客户端IP地址。 以下是我到目前为止的代码: 在大多数情况下,我会得到“默认网关地址”(147.120.1.5)。不是我的机器IP地址(174.120.100.17)。 在大多数情况下,我会得到“默认网关地址”(147.120.1.5)。不是我的机器IP地址(174.120.100.17)。 在这种情况下,我
问题内容: 我正在尝试在Laravel中获取客户端的IP地址。 使用可以很容易地在PHP中获得客户端的IP 。在核心PHP中它可以正常工作,但是当我在Laravel中使用相同的东西时,它将返回服务器IP而不是访问者的IP。 问题答案: 查看Laravel API: 在内部,它使用Symfony Request对象中的方法:
问题内容: 我想知道我们如何知道套接字(java)中服务器端客户端的IP地址。假设有一个服务器“ S”和两个客户端“ A”和“ B”。客户端A向我(服务器)发送一些信息,客户端B向我(服务器)发送一些其他信息。我必须将来自A和B的信息存储在不同表中的数据库中。如何区分客户端A和客户端B的请求? 问题答案: 每个套接字都有一个方法来返回与其连接的客户端的IP地址。