powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Spring Security: автоматически создавать незарегистрированного пользователя.
3 сообщений из 3, страница 1 из 1
Spring Security: автоматически создавать незарегистрированного пользователя.
    #37928297
MarMot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день!

Есть проект написанный на Spring с использованием Spring Security. Пользователи храняться в postgresql с паролями в md5.

При доступе с определенных ip, фильтр редиректит на страницу '/login.html'. При вводе логина и пароля, надо давайть доступ к сайту. Если пароль не верный, выводить сообщение. Если такого пользователя нет, то создавать нового и давайть доступ к сайту.

Подскажите, пожалуйста, где можно перехватить ошибку авторизации и достать логин/пароль, для создания пользователя.

Я пытался добраться через DefaultAuthenticationEventPublisher.

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
public class MyAuthenticationEventPublisher extends DefaultAuthenticationEventPublisher {

	@Override
	public void publishAuthenticationFailure(AuthenticationException exception, Authentication authentication) {
		Object userName = authentication.getPrincipal();
		Object credentials = authentication.getCredentials();
		logger.warn("Failed login using USERNAME [" + userName + "]");
		logger.warn("Failed login using PASSWORD [" + credentials + "]");
		super.publishAuthenticationFailure(exception, authentication);
	}
}



spring-security.xml
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
	<bean id="userDetailsService"
		class="com.model.persistence.security.UserDetailsDaoService">
		<constructor-arg ref="userDao" />
	</bean>

	<bean id="myAuthenticationEventPublisher"
		class="com.model.persistence.security.MyAuthenticationEventPublisher" />

	<bean id="daoAuthenticationProvider"
		class="org.springframework.security.authentication.dao.DaoAuthenticationProvider">
		<property name="userDetailsService" ref="userDetailsService" />
	</bean>

	<bean
		id="org.springframework.security.authentication.authenticationManager"
		class="org.springframework.security.authentication.ProviderManager">
		<property name="providers">
			<list>
				<ref bean="daoAuthenticationProvider" />
			</list>
		</property>
		<property name="authenticationEventPublisher" ref="myAuthenticationEventPublisher" />
	</bean>

	<security:authentication-manager alias="authenticationManager">
		<security:authentication-provider
			user-service-ref="userDetailsService">
			<security:password-encoder hash="md5" />
		</security:authentication-provider>
	</security:authentication-manager>



Но это событие не срабатывает.

Заранее спасибо.
...
Рейтинг: 0 / 0
Spring Security: автоматически создавать незарегистрированного пользователя.
    #37928317
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AuthenticationFailureHandler не оно?
...
Рейтинг: 0 / 0
Spring Security: автоматически создавать незарегистрированного пользователя.
    #37928369
mesier
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczAuthenticationFailureHandler не оно?
Совершенно точно оно!
Причем можно не выдумывать новое имя пользователя, а использовать то, что ввел "неправильно" пользователь - взять из реквеста.
Код: java
1.
String userName = request.getParameter("j_username");
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Spring Security: автоматически создавать незарегистрированного пользователя.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]