Фактическое сопоставление имени пользователя и пароля происходит у поставщика аутентификации. UsernamePasswordAuthenticationFilter получает имя пользователя/pwd и переходит к authenticationManager, который inturn делегирует его аутентификацииProvider. В вашем случае, вам нужно добавить пользовательский поставщик аутентификации следующим образом:
@Component
public class CustomAuthenticationProvider implements AuthenticationProvider {
@Override
public Authentication authenticate(Authentication authentication) throws AuthenticationException {
String username = authentication.getName();
String password = authentication.getCredentials().toString();
if(username.equals("user123") && password.equals("password123")) {
List<GrantedAuthority> grantedAuths = new ArrayList<>();
grantedAuths.add(new SimpleGrantedAuthority("ROLE_USER")); //assign some role
Authentication auth = new UsernamePasswordAuthenticationToken(username, password, grantedAuths);
return auth; //return Authentication object, not true
} else {
return null;
}
}
@Override
public boolean supports(Class<?> authentication) {
return authentication.equals(UsernamePasswordAuthenticationToken.class);
}
}
объявить новый поставщик аутентификации в нашей конфигурации:
<authentication-manager>
<authentication-provider ref="customAuthenticationProvider"/>
</authentication-manager>
Ссылка:
https://danielkaes.wordpress.com/2013/02/20/custom-authentication-provider-in-spring/
У вас нет. Это то, что весенняя безопасность делает для вас, –
Да, Thats true, Но где-то нам нужно настроить, как в теге в файле конфигурации. Итак, если я поместил вручную действительные учетные данные пользователя в тег , то как мне связать его с тегами пользовательского фильтра ? –
doga
Вы даете ему псевдоним и вводите его в свой фильтр. Хотя я бы не пошел на решение, которое у вас есть в другой теме. Я также не связываюсь с этой нитью, но предоставляю всю информацию здесь, не очень приятно иметь людей, которые хотят помочь вам щелкнуть, чтобы получить всю информацию. –