У нас есть пользовательский тип пользователя для приложения, поэтому мы не хотим использовать
@Override
public Authentication authenticate(Authentication authentication) {
String name = authentication.getName();
в нашем
public EmployeeAuthenticationProvider implements AuthenticationProvider {
но, поскольку у нас разные имена для входящих параметров POST, например
@Override
public Authentication authenticate(Authentication authentication) {
String employeeName = authentication.getEmployeeName();
String employeePassword = authentication.getEmployeePassword();
, поскольку мы используем пользовательский компонент Employee для пользователей приложения.
Можно ли продлить Аутентификацию и заменить ее в методе аутентификации? Должен ли наш EmployeeServiceImplementation реализовывать также org.spring.security.core.Authentication или она должна быть реализована в нашем bean-компоненте Employee (это будет немного разочаровывать)? Я немного запутался в том, как решить эту проблему.
Спасибо за вашу помощь.
EDIT
Согласно этому великому POST Spring получите пользовательские детали UserDetails в SecurityContextHolder
У меня сейчас
class EmployeeUserDetailsService implements UserDetailsService {
и
class EmployeeUserDetails extends Employee implements UserDetails, Authentication{
Теперь у меня есть класс
class EmployeeAuthenticationProvider implements AuthenticationProvider {
и я хочу изменить метод
org.springframework.security.authentication.AuthenticationProvider#authenticate(Authentication authentication)
, поэтому я могу использовать EmployeeUserDetails
вместо Authentication
?