#login #liferay #pipeline #authenticator
#аутентификация #liferay #конвейер #аутентификатор
Вопрос:
Я отчаянно пытаюсь воспроизвести приведенный здесь пример для моего пакета liferay tomcat: http://liferay-blogging.blogspot.be/2011/08/how-to-change-liferay-login-module.html
Я воссоздал пакет и класс автора :
package de.test.auth;
import java.util.Map;
import com.liferay.portal.security.auth.AuthException;
import com.liferay.portal.security.auth.Authenticator;
public class RefuseAuthenticator implements Authenticator {
public int authenticateByEmailAddress(long arg0, String arg1, String arg2, Map<String, String[]> arg3, Map<String, String[]> arg4) throws AuthException {
System.out.println("failed by mail");
return FAILURE;
}
public int authenticateByScreenName(long arg0, String arg1, String arg2, Map<String, String[]> arg3, Map<String, String[]> arg4) throws AuthException {
System.out.println("failed by screen name");
return FAILURE;
}
public int authenticateByUserId(long arg0, long arg1, String arg2, Map<String, String[]> arg3, Map<String, String[]> arg4) throws AuthException {
System.out.println("failed by user id");
return FAILURE;
}
}
Я экспортировал пакет в виде файла jar, который я поместил в папку LR-portal / TOMCAT / lib / ext
Я добавил 2 строки :
auth.pipeline.enable.liferay.check=false
auth.pipeline.pre=de.test.auth.RefuseAuthenticator
в стандартном файле portal.properties, расположенном в LR-portal/TOMCAT/webapps/ROOT/WEB-INF/lib/portlet_impl.jar .
Я знаю, что это должно быть в файле portal-ext.properties, но это все равно не сработало, поэтому я устранил все возможные побочные эффекты.
К сожалению, Liferay продолжает регистрировать моих пользователей в обычном режиме. Я читал о перехватах и методах ext для создания пользовательского кода в Liferay, поэтому, возможно, я что-то упускаю. Я прочитал много сообщений на форуме, прежде чем писать здесь.
Я использую пакет liferay-ce-portal-7.0-ga3 tomcat.
Спасибо.
Комментарии:
1. как следует из сообщения в блоге, попробуйте использовать для этого ext, а также использовать sserver в режиме отладки для проверки потока к соответствующему классу во время аутентификации
Ответ №1:
Если вы хотите переопределить аутентификацию Liferay, вам необходимо создать компонент hook для переопределения пользовательского входа.
Он должен реализовать фильтр для перехвата заголовка запроса и изменения метода, используемого порталом для входа в систему.
Я надеюсь, что это будет полезно для вас.
Ответ №2:
спасибо за ваши мысли. Я, наконец, обошел это, используя перехват. Я основал себя на плагине аутентификации Shibboleth для Liferay (см. github). Изначально он был встроен в maven, но мне удалось преобразовать его в ant, чтобы иметь возможность использовать среду SDK плагина Liferay.