これは奇妙な問題です。Liferay 6.0.6 の Ext プラグインは、centos または RHEL 以外の任意の OS プラットフォームで実行できます。
ここで、私の実験を説明するために最善を尽くします。
まず、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>
liferay にデプロイするlogin-hook
と、ログイン ウィンドウは次のようになります。
次に、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 に移行すると、キャプチャ テキストのないログインが渡されます。
誰でも私に提案をしてもらえますか?どうも