При авторизации на сайте пишет Request method 'POST' not supported

Столкнулся с такой вот проблемой, при попытке авторизации на сайте у меня в логах выдает предупреждение (Request method 'POST' not supported), а на самой странице сайта пишет (There was an unexpected error (type=Method Not Allowed, status=405).). И причину почему оно мне это пишет я прекрасно понимаю, в html у меня форма с методом POST, а в контроллер никакой обработки этого метода нет, но дело в том, что когда я разбирался с Spring Security никакой обработки метода пост при авторизации на сайт и не было. Я сначала написал черновой код регистрации и авторизации и он у меня работает, а как решил по сути его же повторить в моем учебном проекте у меня пишет эту ошибку при попытке именно войти на сайт (регистрация проходит успешно, пользователь добавляется в БД).Подскажите мне, либо я что-то не понимаю или мне надо как-то отдельно обрабатывать в контроллере этот метод POST для авторизации на сайте (если это так можете примерно хоть показать что именно там писать надо или ссылку дать на такую обработку)

Класс WebSecurityConfig

@Configuration
@EnableWebSecurity
@EnableGlobalMethodSecurity(prePostEnabled = true)
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {

@Autowired
UserService userService;

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

@Override
protected void configure(HttpSecurity httpSecurity) throws Exception {
    httpSecurity
            .csrf()
            .disable()
            .authorizeRequests()
            .antMatchers("/resources/**","/","index").permitAll()
            //Доступ только для не зарегистрированных пользователей
            .antMatchers("/","/index","/login","/registration").permitAll()
            //Доступ только для пользователей с ролью Администратор
            .antMatchers("/admin/**").hasRole("ADMIN")
            .antMatchers("/blog").hasRole("USER")
            //Все остальные страницы требуют аутентификации
            .anyRequest().authenticated()
            .and()
            //Настройка для входа в систему
            .formLogin()
            .loginPage("/login")
            //Перенарпавление на главную страницу после успешного входа
            .defaultSuccessUrl("/")
            .permitAll()
            .and()
            .logout()
            .permitAll()
            .logoutSuccessUrl("/");
}

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

@Override
public void configure(WebSecurity web) throws Exception {
    web.ignoring().antMatchers("/resources/**", "/static/**",
            "/css/**", "/js/**", "/images/**","/vendor/**","/fonts/**").anyRequest();
}

Класс UserService

@Service
public class UserService implements UserDetailsService {

@PersistenceContext
private EntityManager em;
@Autowired
public UserRepository userRepository;
@Autowired
public RoleRepository roleRepository;
@Autowired
public BCryptPasswordEncoder bCryptPasswordEncoder;

@Override
public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
    User user = userRepository.findByUsername(username);
    if (user == null) {
        throw new UsernameNotFoundException("Пользователь не найден");
    }
    return user;
}

public User findUserById(Long userId) {
    Optional<User> userFromDb = userRepository.findById(userId);
    return userFromDb.orElse(new User());
}

public List<User> allUsers() {
    return userRepository.findAll();
}

public boolean saveUser(User user) {
    User userFromDB = userRepository.findByUsername(user.getUsername());

    if (userFromDB != null) {
        return false;
    }

    user.setUsername(user.getUsername());
    user.setRoles(Collections.singleton(new Role(1L, "ROLE_USER")));
    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;
}

}

Login.html

<div class="container">
<div class="row main-form">
    <form class="" method="post" th:action="@{/login}" modelAttribute="userForm">

        <div class="form-group">
            <label for="username" class="cols-sm-2 control-label">Ваш Логин</label>
            <div class="cols-sm-10">
                <div class="input-group">
                    <span class="input-group-addon"><i class="fa fa-users fa" aria-hidden="true"></i></span>
                    <input type="text" class="form-control" name="username" id="username" path="username" placeholder="Введите ваш логин"/>
                </div>
            </div>
        </div>

        <div class="form-group">
            <label for="password" class="cols-sm-2 control-label">Пароль</label>
            <div class="cols-sm-10">
                <div class="input-group">
                    <span class="input-group-addon"><i class="fa fa-lock fa-lg" aria-hidden="true"></i></span>
                    <input type="password" class="form-control" name="password" id="password" path="password" placeholder="Введите ваш пароль"/>
                </div>
            </div>
        </div>

        <div class="form-group ">
            <input type="submit" value="Войти"id="button" class="btn btn-primary btn-lg btn-block login-button" />
        </div>

    </form>
</div>

InputController

@Controller
public class InputController {

// Для перехода на страницу с формой логин 
@GetMapping("/login")
public String inputLogin(){
    return "login";
}
}

Вроде весь код который тут нужен. Подскажите что я не так делаю или что я не понимаю тогда тут...


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