Я пытался аутентифицировать свое обслуживание весной. Для этого я использую фильтр какпользовательский логин с поддержкой JPA и весной
Это конфигурация безопасности, которую я использовал. В этой конфигурации я фильтрую все запросы и разрешаю все путем аутентификации. Для аутентификации у меня есть страница входа. В форме входа я использую «имя пользователя» для электронной почты и «пароль» для пароля для имен атрибутов соответственно.
public class LoginAuthenticate extends WebSecurityConfigurerAdapter{
@Autowired
@Qualifier("userDetailsService")
MyUserDetailService userDetailsService;
@Autowired
@Override
public void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.userDetailsService(userDetailsService).passwordEncoder(passwordEncoder());
System.out.println("reaching");
}
@Override
protected void configure(HttpSecurity http) throws Exception{
http.authorizeRequests()
.antMatchers("/resources/**").permitAll()
.anyRequest().authenticated()
.and()
.formLogin()
.loginPage("/login")
.usernameParameter("username")
.passwordParameter("password")
.defaultSuccessUrl("/success")
.failureUrl("/")
.permitAll()
.and()
.logout()
.permitAll().and().csrf().disable();
}
@Bean
public PasswordEncoder passwordEncoder(){
PasswordEncoder encoder = new BCryptPasswordEncoder();
return encoder;
}
Это моя структура программы
И для реализации UserDEtailService
я сделал следующее
Это мой UserDetailsService
который я перекрытая, я autowired хранилище, чтобы получить электронную почту адрес и пароль из базы данных [используя адрес электронной почты как имя пользователя], а затем создали пользовательский объект userdetails с именем пользователя и паролем и вернули этот объект. Когда использование вводит имя пользователя и пароль на странице входа в систему, я должен иметь возможность аутентифицироваться с помощью деталей с данными, вытащенными из базы данных, такими как адрес электронной почты и пароль пользователя, которые должны совпадать с адресом электронной почты и паролем, полученным из db. Но проблема это я не мог сгореть метод AUTHENTICATE в конфигурации системы безопасности пружинной:
@Service("userDetailsService")
public class MyUserDetailService implements UserDetailsService{
@Autowired
IUsers userrepo;
@Override
public UserDetails loadUserByUsername(String username)
throws UsernameNotFoundException {
User user = userrepo.finduserByUserName(username);
if (user == null) {
return null;
}
List<GrantedAuthority> auth = AuthorityUtils
.commaSeparatedStringToAuthorityList("ROLE_USER");
if (username.equals("admin")) {
auth = AuthorityUtils
.commaSeparatedStringToAuthorityList("ROLE_ADMIN");
}
String password = user.getLoginPassword();
String Email = user.getEmailAddress();
System.out.println(password+ " "+ Email);
return new org.springframework.security.core.userdetails.User(Email,password,auth);
}
}
Но моя функция аутентификации не оценки пользователя!
Может кто-нибудь помочь мне, что здесь не так. Для отладки ошибок нет. Я утешился, если дошел до функции аутентификации, но не достиг. Я пробовал всевозможные вещи в Интернете по этому настраиваемому логину с JPA, но мои усилия не принесли ничего полезного.
Но это не поможет мне, потому что я уже это сделал. Я не включил его здесь, чтобы сделать его коротким. Хотя второе предложение «я возьму его». благодаря – venkatamangina