Когда я отправляю запрос на публикацию во встроенный / логин Spring-Security, получаю ответ «Произошла непредвиденная ошибка (type = Not Found, status = 404) - PullRequest
0 голосов
/ 25 июня 2019

Мое веб-приложение построено с использованием Spring-boot и Spring-Security.Когда я отправляю пост-запрос во встроенный / логин Spring-Security для аутентификации, я получаю ответ «Произошла непредвиденная ошибка (тип = Не найдено, статус = 404).».

SecurityConfig.java
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {

  @Autowired
  private ReaderRepository readerRepository;

  @Override
  protected void configure(HttpSecurity http) throws  Exception {
    http
      .authorizeRequests()
        .antMatchers("/readingList/**").access("hasRole('READER')")
        .antMatchers("/**").permitAll()
      .and()
      .formLogin()
        .loginPage("/myLogin")
        .failureUrl("/myLogin?error=true");
  }

  @Override
  protected void configure(AuthenticationManagerBuilder auth) 
    throws Exception {
      auth
        .userDetailsService(new UserDetailsService() {
          @Override
          public UserDetails loadUserByUsername(String username)
            throws UsernameNotFoundException {
            return readerRepository.findOne(username);
          }
        });
  }
}

myLogin.html
<form name='f' th:action="@{/login}" method='POST'>
<table>
<tr>
  <td>User:</td>
  <td><input type='text' name='username' value='' /></td>
</tr>
<tr>
  <td>Password:</td>
  <td><input type='password' name='password' /></td>
</tr>
<tr>
  <td colspan='2'><input name="submit" type="submit" value="Login" /></td>
</tr>
</table>
</form>

Я полагаю, что когда я запускаю веб-приложение, оно перенаправляет меня на myLogin.html.Когда я ввожу правильное имя пользователя и пароль в форму, отправляю в / login, некоторый фильтр безопасности Spring-security перехватывает запрос и обрабатывает аутентификацию, используя информацию об учетной записи, настроенную в классе SecurityConfig.Но я получаю ответ «Произошла непредвиденная ошибка (тип = Не найдено, статус = 404). Сообщение недоступно».

1 Ответ

0 голосов
/ 25 июня 2019

Попробуйте явно указать URL-адрес обработки входа в систему безопасности spring в методе http configure, например, "/ userAuth". Затем попробуйте отправить запрос по почте и проверить, не удается ли найти конечную точку.

Здесь:

@Override
    protected void configure(HttpSecurity http) throws  Exception {
        http
                .authorizeRequests()
                .antMatchers("/readingList/**").access("hasRole('READER')")
                .antMatchers("/**").permitAll()
                .and()
                .formLogin().loginProcessingUrl("/userAuth")
                .loginPage("/myLogin")
                .failureUrl("/myLogin?error=true");
    }

Я использовал этот учебник еще тогда, когда изучал Spring Security. В частности, в разделе 8.2 приведено объяснение конечных точек обработки входа в систему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...