Liferay Hook - 获取用户IP登录

Ham*_*d62 1 java liferay

我有一个Liferay的挂机ovrrideAuthenticateByEmailAddress(...)方法.

我想获取用户的IP地址登录并根据它限制访问.

如何在此方法中获取用户IP?
我使用ServiceBuilder来制作portlet.
我在Tomcat工作.

小智 6

这是Liferay 6.0.6中对我有用的东西.

在我的钩子里我也改变了默认的login.jsp.这实际上是默认的login.jsp,还有两件事.首先,从请求中获取IP:

<%String ip = PortalUtil.getHttpServletRequest(renderRequest).getRemoteAddr();%>
Run Code Online (Sandbox Code Playgroud)

并添加额外的参数:

<portlet:actionURL secure="<%= PropsValues.COMPANY_SECURITY_AUTH_REQUIRES_HTTPS || request.isSecure() %>" var="loginURL">
            <portlet:param name="saveLastPath" value="0" />
            <portlet:param name="struts_action" value="/login/login" />
            <portlet:param name="requestIp" value="<%= ip %>" />
        </portlet:actionURL>
Run Code Online (Sandbox Code Playgroud)

现在,在重写AuthenticateByEmailAddress()中,您可以从parameterMap获取它:

String ip = parameterMap.get("requestIp")[0];
Run Code Online (Sandbox Code Playgroud)