Пользовательская страница входа в Spring security не перенаправляется

#jsf #spring-security

#jsf #spring-безопасность

Вопрос:

Я использую сервлет jsf и создал пользовательскую страницу входа, использовал форму с действием j_spring_security_check , метод POST, использовал j_username и j_password. Проблема, с которой я сталкиваюсь, когда я нажимаю кнопку входа в систему, она не перенаправляется на страницу, но в сетевом столбце Chrome отображается метод post j_spring_security_check с кодом состояния 302, правильно ли я использую spring security?

Страница Login.jsf:

 <form action="j_spring_security_check" method="POST" >
                    <div class="input-group mb-3">
                        <div class="input-group-append">
                            <span class="input-group-text"><i class="fas fa-user"></i></span>
                        </div>
                        <p:inputText type="text" name="j_username" id="j_username" class="form-control input_user" value="" placeholder="username"/>
                    </div>
                    <div class="input-group mb-2">
                        <div class="input-group-append">
                            <span class="input-group-text"><i class="fas fa-key"></i></span>
                        </div>
                        <p:password type="password" id="j_password" name="j_password" class="form-control input_pass" value="" placeholder="password" />
                    </div>
                    
                    <div class="d-flex justify-content-center mt-3 login_container">
                        <button type="submit" class="btn login_btn"  >Login</button>
                    </div>
                </form>
  

Конфигурация веб-безопасности:

 @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.authorizeRequests()
                .antMatchers("/resources/**").permitAll()
                .anyRequest().authenticated()
                .and()
                .formLogin().loginPage("/login").successForwardUrl("/WelcomePage.jsf").failureForwardUrl("/addPicture.jsf").permitAll()

                .successForwardUrl("/WelcomePage.jsf")
                .and()
                .logout().permitAll();

        http.csrf().disable();

    }
  

Изображение из chrome:
введите описание изображения здесь

Ответ №1:

Я решил проблему, изменил действие в форме с j_spring_security_check на #{request.ContextPath}/login и все заработало.