как переопределить аутентификацию liferay

#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.