Spring Security Example застрял при входе в систему - PullRequest
1 голос
/ 03 апреля 2019

Я недавно настраивал Spring Security с помощью этого урока:

https://spring.io/guides/gs/securing-web/

Когда я пытаюсь войти в систему, он просто перенаправляет меня на страницу входа без ошибок.Я могу получить доступ к домашней странице просто отлично.И когда я пытаюсь получить доступ к защищенному ресурсу, он просит меня войти в систему. Но страница входа перенаправляет меня на страницу входа.Это просто не аутентифицирует меня.

Также мой Intellij ide говорит мне, что "${param.error}" не может быть восстановлено и xmlns:sec = "http://www.thymeleaf.org/thymeleaf-extras-springsecurity3" никогда не используется.Это в login.html.

Редактировать: Просто из любопытства я попробовал разные браузеры.Логин работает нормально для Firefox, IE и т. Д. Это, вероятно, означает, что это не ошибка программирования.У кого-нибудь есть идеи, что может вызвать это при использовании хрома?Также он работает на вкладке инкогнито в моем Chrome.

Вот остальные файлы:

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class HelloApplication {

    public static void main(String[] args) {
        SpringApplication.run(HelloApplication.class, args);
    }

}
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

@Configuration
public class MvcConfig implements WebMvcConfigurer {

    public void addViewControllers(ViewControllerRegistry registry) {
        registry.addViewController("/home").setViewName("home");
        registry.addViewController("/").setViewName("home");
        registry.addViewController("/hello").setViewName("hello");
        registry.addViewController("/login").setViewName("login");
    }

}
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
import org.springframework.security.core.userdetails.User;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.security.provisioning.InMemoryUserDetailsManager;

@Configuration
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
                .authorizeRequests()
                    .antMatchers("/", "/home").permitAll()
                    .anyRequest().authenticated()
                    .and()
                .formLogin()
                    .loginPage("/login")
                    .permitAll()
                    .and()
                .logout()
                    .permitAll();
    }

    @Bean
    @Override
    public UserDetailsService userDetailsService() {
        UserDetails user =
                User.withDefaultPasswordEncoder()
                        .username("user")
                        .password("password")
                        .roles("USER")
                        .build();

        return new InMemoryUserDetailsManager(user);
    }
}
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org"
      xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity3">
<head>
    <title>Hello World!</title>
</head>
<body>
<h1 th:inline="text">Hello [[${#httpServletRequest.remoteUser}]]!</h1>
<form th:action="@{/logout}" method="post">
    <input type="submit" value="Sign Out"/>
</form>
</body>
</html>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org" xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity3">
<head>
    <title>Spring Security Example</title>
</head>
<body>
<h1>Welcome!</h1>

<p>Click <a th:href="@{/hello}">here</a> to see a greeting.</p>
</body>
</html>
<!DOCTYPE html>
<html xmlns = "http://www.w3.org/1999/xhtml" xmlns:th = "http://www.thymeleaf.org"
      xmlns:sec = "http://www.thymeleaf.org/thymeleaf-extras-springsecurity3">

<head>
    <title>Spring Security Example </title>
</head>
<body>
<div th:if = "${param.error}">
    Invalid username and password.
</div>
<div th:if = "${param.logout}">
    You have been logged out.
</div>

<form th:action = "@{/login}" method = "post">
    <div>
        <label> User Name : <input type = "text" name = "username"/> </label>
    </div>
    <div>
        <label> Password: <input type = "password" name = "password"/> </label>
    </div>
    <div>
        <input type = "submit" value = "Sign In"/>
    </div>
</form>

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