我正在使用OpenAM 13.0添加一些功能以满足我对客户的要求。
我想将CAPTCHA添加到XUI登录页面,作为第一步,我一直在尝试向登录页面添加文本字段。起初,我尝试在config文件夹中自定义login.jsp,并根据指令克隆默认文件夹,并在我的realm配置文件中添加一些元素到login.jsp。但是,我看不到任何影响。
然后我尝试使用脚本模块添加客户端脚本。但是,当我创建一个新脚本来添加文本字段时,用户名和密码字段从登录页面消失。
我的脚本是:
$(document).ready(function(){
fs = $(document.forms[0]).find("fieldset");
var strUI='<div class="group-field-block"><label class="short">CAPTCHA:</label><input type="text" name="Captcha"/></div>';
$(fs).append(strUI);
});
我的JavaScript出了什么问题?将一些输入字段添加到登录页面的最佳做法是什么?
顺便说一句,我不能使用Google Recaptcha,因为我将在没有Internet访问权限的本地Intranet中使用OpenAM。
答案 0 :(得分:2)
如果您尝试自定义XUI接口,则不应该查看JSP文件。 XUI基于静态HTML文件和JavaScript,因此需要以不同方式完成自定义。考虑到您尝试向登录页面添加新的输入字段,实际上,您需要自定义身份验证模块。
每个身份验证模块都有他们可以使用的预定“回调”列表,每个回调代表身份验证模块的某种“输入”。为了向登录屏幕添加新的输入字段,您不仅需要更新身份验证模块的回调描述符XML(例如在config / auth / default文件夹中的LDAP.xml),而且还需要更新身份验证模块本身所以它实际上知道如何处理这个新的输入值。