Не получается реализовать авторизацию в спринг секьюрити

Не авторизуется пользователь при вводе верных логина (в моем случае почта) и пароля. Пытался проверить в чем ошибка через точку остановы, но в loadUserByUsername даже не заходит.
Регистрация при этом работает исправно. Из за того что пытался не использовать WebSecurityConfigurerAdapter, получилось, так что не очень много инфы смог найти. Самому разобраться не хватает опыта.

@Configuration
public class MvcConfig implements WebMvcConfigurer {
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/static/**")
                .addResourceLocations("classpath:/static/");
    }
    public void addViewControllers(ViewControllerRegistry registry){
        registry.addViewController("/main").setViewName("main");
        registry.addViewController("/").setViewName("main");
        registry.addViewController("/login").setViewName("login");
        registry.addViewController("/registration").setViewName("registration");
    }
}

...

public class WebSecurityConfig {
    @Autowired
    private UserService userService;

        protected void configure(AuthenticationManagerBuilder auth) throws Exception {
        auth.userDetailsService(userService).passwordEncoder(bCryptPasswordEncoder());
    }

    @Bean
    public BCryptPasswordEncoder bCryptPasswordEncoder() {
        return new BCryptPasswordEncoder();
    }

    @Bean
    public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception{
        http
                .authorizeHttpRequests((requests)->requests
                        .requestMatchers("/login","/static/**","/registration").permitAll()
                        .anyRequest().authenticated()
                )
                .formLogin((form)->form
                        .loginPage("/login")
                        .permitAll()
                )
                .logout((logout)->logout.permitAll());
        return http.build();
    }
    @Bean
    public UserDetailsService userDetailsService() {
        UserDetails user =
                User.withDefaultPasswordEncoder()
                        .username("user")
                        .password("password")
                        .roles("USER")
                        .build();

        return new InMemoryUserDetailsManager(user);
    }
}

...

@Service
public class UserService implements UserDetailsService {
@PersistenceContext
    private EntityManager em;
@Autowired
    UserRepository userRepository;
    @Autowired
    private RoleRepository roleRepository;

    private BCryptPasswordEncoder bCryptPasswordEncoder;

    @Override
    public UserDetails loadUserByUsername(String email) throws UsernameNotFoundException {
        User user = userRepository.findByEmail(email);

        if(user == null){
            throw new UsernameNotFoundException("User not found");
        }
        return user;
    }
    public User findUserById(Long userId){
        Optional<User> userFromDb = userRepository.findById(userId);
        return userFromDb.orElse(new User());
    }
    public List<User> allUser(){
        return userRepository.findAll();
    }
    public boolean saveUser(User user){
        User userFromDb = userRepository.findByEmail(user.getUsername());
        Role userRole = roleRepository.findByName("ROLE_ADMIN");
        String email = user.getEmail();
        if(userRole == null){
            userRole = roleRepository.findByName("ROLE_USER");
            if(userRole == null)    {
                Role role = new Role("ROLE_USER");
            roleRepository.save(role);
            }
        }
        if(userFromDb != null) {
            return false;
        }

        user.setRole(userRole);
        user.setPassword(bCryptPasswordEncoder.encode(user.getPassword()));
        userRepository.save(user);
        return true;
    }
    public boolean deleteUser(Long userId){
        if(userRepository.findById(userId).isPresent()){
            userRepository.deleteById(userId);
            return true;
        }
        return false;
    }
    public List<User> usergtList(List idMin){
        return em.createQuery("SELECT u FROM User u WHERE u.id > :paramId", User.class)
                .setParameter("paramId", idMin).getResultList();
    }
}

...

@Entity
@Data
@Table(name = "role")
public class Role implements GrantedAuthority {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "id")
    private Long id;
    @Column(name = "name")
    private String name;
    @Transient
    @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER, mappedBy = "role")
    private Set<User> users;
    public Role(){

    }
    public Role(String name){
        this.name = name;
    }

    @Override
    public String getAuthority() {
        return getName();
    }

    public String getName() {
        return name;
    }
}

Ответы (0 шт):