Попытка использовать Spring Security для процесса аутентификации, но получение Bad credentials
exception.here как я определил вещи в моем spring-security.xml
файлеНеверные учетные данные Исключение | Spring Security
<beans:bean id="passwordEncoder"
class="org.springframework.security.authentication.encoding.ShaPasswordEncoder">
</beans:bean>
<beans:bean id="passwordEncoder"
class="org.springframework.security.authentication.encoding.ShaPasswordEncoder">
</beans:bean>
<authentication-manager id="customerAuthenticationManager">
<authentication-provider user-service-ref="customerDetailsService">
<password-encoder hash="sha" />
</authentication-provider>
</authentication-manager>
customerDetailsService
наша собственная реализация, оказываемый весной security.In моего Java код при регистрации пользователя, я кодирующим при условии пароля, прежде чем добавить пароль на базу данных, как
import org.springframework.security.authentication.encoding.PasswordEncoder;
@Autowired
private PasswordEncoder passwordEncoder;
customerModel.setPassword(passwordEncoder.encodePassword(customer.getPwd(), null));
Когда я пытался отладить мое приложение, оно кажется весна зовут AbstractUserDetailsAuthenticationProvider
метод аутентификации и при его выполнении additionalAuthenticationCheck с additionalAuthenticationChecks(user, (UsernamePasswordAuthenticationToken) authentication);
из DaoAuthenticationProvider
, он бросает Bad удостоверения исключения в следующей точке
if (authentication.getCredentials() == null) {
logger.debug("Authentication failed: no credentials provided");
throw new BadCredentialsException(messages.getMessage(
"AbstractUserDetailsAuthenticationProvider.badCredentials", "Bad credentials"), userDetails);
}
Я не уверен, где я делаю неправильно и что должно быть сделано здесь, чтобы положить вещи в нужном месте , Я уже проверил, что клиент есть в базе данных и пароль закодирован.
Две фасоли с одинаковым идентификатором? Попробуйте использовать атрибут 'ref'' password-encoder'. –
@AleksandrM: Спасибо, что просто опечатка, я просто скопировал ее дважды: D –
Хорошо. Вы пробовали с ref? –