Как использовать корневой путь для входа в Spring Boot Security? - PullRequest
0 голосов
/ 11 апреля 2019

Я использую безопасность Spring Boot с WebSecurityConfigurerAdapter для входа в систему.Моя корневая индексная страница на моем веб-сайте - это место, где пользователь будет входить в систему, поэтому я хочу установить для HttpSecurity loginPage значение loginPage ("/").

Я пробовал различные способы изменить loginPage (" / ") вдля того чтобы он работал.Если я использую loginPage ("/"), отправка формы ничего не делает.Если я использую loginPage ("/ login"), отправка формы выдаст мне ошибку, потому что она пытается перенаправить на / login, который не существует, потому что моя форма входа находится на моей странице корневого индекса.

Это моя форма Thymeleaf:

<form th:action="@{login}" th:object="${user}" method="post">
    <div class="form-group row">
        <label for="userUserName" class="col-sm-2 col-form-label">Username</label>
        <div class="col-sm-10">
            <input type="text" class="form-control" name="userUserName" id="userUserName">
        </div>
    </div>
    <div class="form-group row">
        <label for="userPassword" class="col-sm-2 col-form-label">Password</label>
        <div class="col-sm-10">
            <input type="password" class="form-control" name="userPassword" id="userPassword">
        </div>
    </div>
    <div class="col-sm-12 text-center">
        <button type="submit" class="btn btn-primary">Login</button>
    </div>
</form>

Это мой Java-код:

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
            .authorizeRequests()
                .antMatchers("/", "/index", "/webjars/**", "/assets/**", "/images/**").permitAll()
                .antMatchers("/admin/**").hasRole("ADMIN") //EADM - Event administrator
                .anyRequest().fullyAuthenticated()
                .and()
                    .formLogin()
                    .loginPage("/")
                        .usernameParameter("userUsername").passwordParameter("userPassword")
                        .successHandler(secureAuthenticationSuccessHandler) //Custom Handler to get User Role and redirect to correct page.
                .and()
                    .logout()
                        .logoutRequestMatcher(new AntPathRequestMatcher("/logout"))
                        .logoutSuccessUrl("/")
                        .deleteCookies("JSESSIONID")
                        .invalidateHttpSession(true)
                .and()
                    .exceptionHandling().accessDeniedHandler(accessDeniedHandler());
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...