Как переопределить 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.

Благодарю.

2 ответа

Решение

Спасибо за ваши мысли Я наконец-то обошел это с помощью крючка. Я основал себя на плагине аутентификации Shibboleth для Liferay (см. Github). Первоначально он был построен в maven, но мне удалось преобразовать его в ant, чтобы иметь возможность использовать среду Liferay Plugin SDK.

Если вы хотите переопределить аутентификацию Liferay, вы должны создать подключаемый компонент для переопределения пользовательского входа в систему.

Он должен реализовывать фильтр для перехвата заголовка запроса и изменения метода, который портал использует для входа в систему.

Я надеюсь, что это будет полезно для вас.

Другие вопросы по тегам