Spring Security HTTP POSTMAN - Логин - Статус 405 - Метод не разрешен - PullRequest
0 голосов
/ 28 апреля 2020

Создание небольшого приложения с использованием пружинной безопасности. Я пытался узнать, возможно ли войти в систему с помощью POSTMAN.

Проблема в том, что я получаю недопустимый метод ошибки 405.

URL, который я использую для публикации запроса для входа в систему /authenticateTheUser.

Размещение формы в / authenticateTheUser, работает нормально.

Я хотел бы получить совет, чтобы узнать, возможно ли выполнить вход в систему через POSTMAN.

<form action="${pageContext.request.contextPath}/authenticateTheUser" 
                          method="POST">

URL, который я использую на POSTMAN -> http://dev.security.com/authenticatetheUser?username=mary&password=12345

Я знаю, что не передаю токен csrf. Сначала я пытаюсь решить проблему 405.

protected void configure(HttpSecurity http) throws Exception {
    http.authorizeRequests()
            .antMatchers("/").permitAll() 
            .antMatchers("/manager").hasRole("manager")
            .antMatchers("/user/**").hasRole("user")
            .antMatchers("/admin/**").hasRole("admin")
            .and()
            .formLogin()
                .loginPage("/showLoginPage")
                .loginProcessingUrl("/authenticateTheUser")
            .successHandler(customAuthenticationSuccessHandler)
                .permitAll()
            .and()
            .logout()
            .permitAll()
            .and()
                .exceptionHandling()
                .accessDeniedPage("/access-denied");
}

1 Ответ

0 голосов
/ 29 апреля 2020

Прежде всего, ваша конфигурация безопасности Spring верна, так как форма входа работает.

Теперь отправленный вами запрос POSTMAN не подходит для вашей конфигурации безопасности Spring ... причина в том, что Spring Security ожидание запроса HTTP POST, который содержит имя пользователя и пароль в BODY. И вы отправляете запрос POST, а не POST имя пользователя и пароль в ТЕЛЕ, вместо этого вы публикуете в URL, как запрос HTTP GET.

, чтобы заставить его работать, просто измените ваш запрос POSTMAN с URL http://dev.security.com/authenticatetheUser но введите имя пользователя и пароль в ТЕЛЕ как данные формы ...

...