Spring Security 快速入门

运行环境: jdk1.8+    maven3.0+    使用IDEA构建一个springboot项目

POM.xml 就不记了  构建时候直接选上SrpingSecurity就行了

thymeleaf模版: index.html     hello.html     login.html   不贴了

视图处理器

@Configuration
public class MvcConfig extends WebMvcConfigurerAdapter {

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

}

当访问http://localhost:8080时,默认访问index.html首页

当访问http://localhost:8080/hello时,跳到/login页面,由Spring Security拦截请求,并处理认证过程。

如果认证未通过,跳转至/login页面。

认证成功后,跳转至/hello页面。

注销登录时,也应该跳回/login页面。

 

SpringSecurity配置类:

@Configuration
@EnableWebSecurity // 启用Spring Security的Web安全支持,并提供Spring MVC集成
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
            .authorizeRequests()
                .antMatchers("/", "/index").permitAll() // 无需身份验证URL
                .anyRequest().authenticated()
                .and()
            .formLogin() // 开启表单验证
                .loginPage("/login") // 默认的登录视图,任何用户都可以访问
                .permitAll()
                .and()
            .logout()
                .permitAll();
    }

    @Autowired
    public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
        auth
            .inMemoryAuthentication()
                .withUser("user").password("password").roles("USER"); // 向内存中设置一个用户
    }
}

 

你可能感兴趣的:(Spring,Security)