2015-12-04 3 views
3

Мне интересно, есть ли способ зарегистрировать все попытки входа в Liferay 6.2. Моя цель - контролировать все попытки входа (успешные и неудачные), поэтому я могу создать панель ELK и посмотреть, есть ли внезапный пик, например. faild login attemts - возможно, потому что какой-то бот проникает на мой сайт.Log Liferay попытки входа в систему

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

Если есть предварительные и последующие события, которые я могу использовать в крючке, это было бы хорошо для меня. Тогда я позабочусь о задачах каротажа. К сожалению, мои попытки до сих пор не оправдались. Я не смог включить учетные данные в строку журнала.

ответ

3

Нет такой функциональности из коробки.

Но, как правило, в Liferay, у вас есть два варианта:

  • Проверить на рынке, если есть плагин для этого
  • Или создать такой плагин самостоятельно

Там есть плагин на рынке, который может соответствовать вашим потребностям: Audit EE

Я никогда не использовал его, поэтому я ничего не могу вам рассказать.

И в случае, если вы не удовлетворены с вариантами, которые она предлагает, вот написать плагин себе решение:

Если вы хотите войти только неудачные попытки, необходимо реализовать AuthFailure класс:

public LogLoginFailures implements AuthFailure { 

    public void onFailureByEmailAddress(long companyId, String emailAddress, 
     Map<String, String[]> headerMap, 
     Map<String, String[]> parameterMap) throws AuthException { 
    MyLoginLogUtil.logFailure(emailAddress); 
    } 

    // Implement the two other onFailure... methods the same way 

} 

Вам нужно будет написать MyLoginLogUtil самостоятельно. Вы можете использовать сервис Liferay, который вы создадите с помощью Liferay Service Builder.

Чтобы объявить AuthFailure экземпляр вам просто нужно добавить его в вашем portal-ext.properties:

auth.failure=com.liferay.portal.security.auth.LoginFailure,...LogLoginFailures 

Свойство хранит список обработчиков. Вы должны сохранить значение по умолчанию LoginFailure, чтобы иметь поведение по умолчанию для хранения последней неудачной попытки входа на пользователя.

Если вы действительно хотите, чтобы войти все знак в попытках, вы можете добавить Authenticator в auth.pipeline.post собственности в ваших portal-ext.properties:

public LogLoginFailures implements AuthFailure { 

    public int authenticateByEmailAddress(long companyId, String emailAddress, 
     String password, Map<String, String[]> headerMap, 
     Map<String, String[]> parameterMap) throws AuthException { 
    MyLoginLogUtil.logSuccesss(emailAddress); 
    return SUCCESS; 
    } 

    // Implement the two other authenticate... methods the same way 

} 

Это будет регистрировать удавшегося попытки входа в систему.

Вы также можете добавить аутентификатора в качестве первого обработчика в свойстве auth.pipeline.pre, но это не сможет отличить неудавшиеся и успешные логины.

+0

Просто примечание - мы использовали плагин аудита EE с настраиваемым атрибутом аудита для отслеживания при изменении макета страницы. Такой же подход мог бы работать и для аудита входа в систему – VC1

Смежные вопросы