1

这是一个奇怪的问题。Liferay 6.0.6 的 Ext 插件可以在除 centos 或 RHEL 之外的任何操作系统平台上执行。

现在我将尽力解释我的实验。

首先,我创建了login-hook一个添加验证码图像的位置$LIFERAY_SDK_DIR/hooks/login-hook/docroot/custom-jsps/html/portlet/login/login.jsp

<portlet:actionURL windowState="<%= LiferayWindowState.EXCLUSIVE.toString() %>" var="captchaURL">
                <portlet:param name="struts_action" value="/login/captcha" />
</portlet:actionURL>

<liferay-ui:captcha url="<%= captchaURL %>" />

并对以下内容进行修改/html/taglib/ui/captcha/simplecaptcha.jsp

<div class="taglib-captcha">
    <table border=0>
        <tr>
            <td>
                <aui:input label="text-verification" name="captchaText" size="10" type="text" value="" />
            </td>
            <td style="padding-left:10px;">
                <img id="captcha_image" alt="captcha" class="captcha" src="<%= url %>"  />
            </td>
            <td>
                <a href="#" id="captcha_change_btn" class="captcha"
                   onclick="return false;"><liferay-ui:message key="change_captcha" />
                </a>
            </td>
        </tr>
    </table>
    <aui:script>
        jQuery.noConflict();
        jQuery(function ($) {
              $('#captcha_change_btn').click(function () {
                 var url = "<%= url %>";
                 $('#captcha_image').attr('src', url + '&random=' + Math.random());
              });
        });
    </aui:script>
</div>

部署login-hook到 liferay 后,登录窗口将如下所示: 在此处输入图像描述

其次,我创建了一个login-ext将在登录时检查用户提供的验证码文本。所以我添加代码

    _log.warn("check the captcha ... ");
    CaptchaUtil.check(actionRequest);
    System.out.println("success check captcha");

protected void login( ThemeDisplay themeDisplay, ActionRequest actionRequest, ActionResponse actionResponse, PortletPreferences preferences) throws Exception$LIFERAY_EXT_DIR/ext/login-ext/docroot/WEB-INF/ext-impl/src/com/liferay/portlet/login/action/LoginAction.java

部署login-ext,然后尝试在不提供验证码文本的情况下登录将导致正确的错误。但是当我将整个 liferay 系统移动到 centos 5.8 时,将通过没有验证码文本的登录。

谁能给我一个建议?谢谢

4

0 回答 0