Я работаю над OpenAM 13.0, чтобы добавить некоторые функции для удовлетворения моих требований моего клиента.
Я хотел бы добавить CAPTCHA на страницу входа в XUI и в качестве первого шага, который я пытался добавить текстовое поле на страницу входа. Сначала я попытался настроить login.jsp в папке конфигурации и в соответствии с инструкциями клонировал папку по умолчанию и добавил некоторые элементы в login.jsp в моих конфигурационных файлах realm. Но я не видел никакого эффекта.
Затем я попытался использовать Scripted Module для добавления клиентских скриптов. Однако, когда я создал новый скрипт для добавления текстового поля, поля "Имя пользователя" и "Пароль" исчезли с страницы входа.
Мой скрипт:
$(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, потому что я собираюсь использовать OpenAM в локальной интрасети без доступа в Интернет.
Если вы пытаетесь настроить интерфейс XUI, вам не следует смотреть файлы JSP. XUI основан на статических HTML файлах и JavaScript, поэтому настройка должна выполняться по-разному. Учитывая, что вы пытаетесь добавить новое поле ввода на страницу входа в систему, на самом деле вам нужно настроить модуль аутентификации.
Каждый модуль аутентификации имеет свой предопределенный список "обратных вызовов", с которыми они могут работать, и каждый обратный вызов представляет собой своего рода "вход" для модуля аутентификации. Чтобы добавить новое окно ввода на экран входа в систему, вам не нужно просто обновлять XML-дескриптор обратного вызова модуля аутентификации (например, LDAP.xml в папке config/auth/default), но вам также необходимо будет обновить сам модуль аутентификации так что он действительно знает, что делать с этим новым значением ввода.