登录时获取用户IP

时间:2017-11-29 18:25:04

标签: jsp tomcat authentication servlets jdbc

我目前正在设置一个Web项目,在Apache Tomcat 8.0服务器上设置基于表单的JDBC领域身份验证。

我想使用HttpServletRequest类将登录用户的IP地址存储到数据库中。

我会在我的网络应用程序中添加此功能(即在什么操作之后)?

我正在使用JSP / Servlet,Tomcat和MySQL。

谢谢!

2 个答案:

答案 0 :(得分:0)

成功登录后,您可以从请求中获取用户名和IP地址,并进一步处理。我认为,挑战在于,只需在登录后立即抓住它,因为tomcats基于表单的登录非常透明。 我通过在会话对象中保存用户名并仅保存数据来解决它,如果这些值尚未在会话中。可能你必须考虑到会话可能会过期。

答案 1 :(得分:0)

您可以使用servlet过滤器。 servlet过滤器可用于拦截传入的HTTP servlet请求,并对请求执行任何操作或记录条目。

请注意,默认情况下,Tomcat还有一个访问日志,其中包含所有HTTP请求,其状态,IP和用户名(如果有)。这是一个例子。

192.168.0.47 - - [27/Nov/2017:07:18:07 -0600] "GET /example/module?wsdl HTTP/1.1" 200 3122
192.168.0.47 - - [27/Nov/2017:07:18:07 -0600] "POST /otherapp/service HTTP/1.1" 200 251
fe80:0:0:0:fc36:e3bb:5bc4:abce%14 - asm-admin [27/Nov/2017:07:18:08 -0600] "POST /otherapp/HEARTBEAT/?v-uiId=0 HTTP/1.1" 200 -
fe80:0:0:0:fc36:e3bb:5bc4:abce%14 - asm-admin [27/Nov/2017:07:18:18 -0600] "POST /otherapp/HEARTBEAT/?v-uiId=0 HTTP/1.1" 200 -
fe80:0:0:0:fc36:e3bb:5bc4:abce%14 - asm-admin [27/Nov/2017:07:18:28 -0600] "POST /otherapp/HEARTBEAT/?v-uiId=0 HTTP/1.1" 200 -
相关问题