Здравствуйте, младшие разработчики, в проекте с Spring Framework + Hibernate + Spring Security + JSF У меня довольно проблемы, при входе зарегистрированного пользователя в построитель Spring Security, я могу легко получить пользователя из .xhtml ипроверьте базу данных, но когда я передаю пользователя весенней безопасности, она не активируется.
Часть моего customUserDetail, в которой я передаю пользователя в класс SecurityConfig, представляет собой следующий
public org.springframework.security.core.userdetails.UserDetails loadUserByUsername(String username)
throws UsernameNotFoundException {
// TODO Auto-generated method stub
System.out.println("das"+ usuario_login.getDas());
System.out.println("pass"+ usuario_login.getPassword());
List<GrantedAuthority> authorities = buildUserAuthority(usuario_login.getRoles());
return buildUserForAuthentication(usuario_login, authorities);
//SecurityConfig sec = new SecurityConfig().configureGlobal(auth);
}
private User buildUserForAuthentication ( Usuarios user, List<GrantedAuthority> authorities) {
return new User(user.getDas(),user.getPassword(),true,true,true,true,authorities);
}
private List<GrantedAuthority> buildUserAuthority(Roles roles) {
Set<GrantedAuthority> setAuths = new HashSet<GrantedAuthority>();
setAuths.add(new SimpleGrantedAuthority("ROLE_ADMIN"));
List<GrantedAuthority> Result = new ArrayList<GrantedAuthority>(setAuths);
return Result;
}
список пользователя на данный момент жестко закодирован как Role_admin.Дело в том, что даже при отладке все работает нормально при выполнении этих 3 предыдущих методов, но вместо этого, загружая configure (AuthenticationManagerBuilder auth)
метод SecurityConfig.class, он просто ничего не делает.
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Autowired
private UserDetailsService userDetailsService;
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
// TODO Auto-generated method stub
auth.userDetailsService(userDetailsService).passwordEncoder(passwordEncoder());
}
Когда я запускаю приложение, первое, что он делает, это загружает SecurityConfig.class и его метод, но затем, когда появляется представление входа в систему и все проверкис базой данных сделано, этот конструктор в SecurityConfig никогда не используется снова.