Как переопределить 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, вы должны создать подключаемый компонент для переопределения пользовательского входа в систему.
Он должен реализовывать фильтр для перехвата заголовка запроса и изменения метода, который портал использует для входа в систему.
Я надеюсь, что это будет полезно для вас.