1

メソッドへovrrideのLiferay-HookがありAuthenticateByEmailAddress(...)ます。

ログインしているユーザーのIPアドレスを取得し、それに基づいてアクセスを制限したい。

この方法でユーザー IP を取得するにはどうすればよいですか?
ServiceBuilder を使用してポートレットを作成します。
私はTomcatで働いています。

4

5 に答える 5

6

これがLiferay 6.0.6で私にとってうまくいったことです。

私のフックでは、デフォルトの login.jsp も変更しました。これは、実際にはデフォルトの login.jsp に 2 つの追加要素が追加されたものです。まず、リクエストから IP を取得します。

<%String ip = PortalUtil.getHttpServletRequest(renderRequest).getRemoteAddr();%>

追加のパラメーターを追加します。

<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>

これで、オーバーライドされた AuthenticateByEmailAddress() で、parameterMap から取得できます。

String ip = parameterMap.get("requestIp")[0];
于 2015-02-12T14:00:30.783 に答える