Spring Security 入门

Spring Projects 简介

从配置到安全性,Web应用到大数据 - 无论您的应用程序的基础架构需求如何,都有一个Spring Project来帮助您构建它。
从小处着手,根据需要使用 - Spring是通过设计模块化的。
https://spring.io/projects
QQ20180409-101459@2x

Spring Security 简介

Spring Security是一个强大且高度可定制的身份验证和访问控制框架。
这是保护基于Spring的应用程序的事实标准。
Spring Security是一个专注于为Java应用程序提供身份验证和授权的框架。
与所有Spring项目一样,Spring Security的真正实力在于如何轻松扩展以满足自定义需求

Spring Security 功能

全面和可扩展的支持认证和授权
防止会话固定,点击劫持,跨站点请求伪造等攻击
Servlet API集成
与Spring Web MVC的可选集成
多得多…

Spring Boot项目集成Spring Security

现在有一个spring boot web项目,只有一个非常简单控制器:

@Controller
public class MainController {

	@RequestMapping("/")
	public String root() {
		return "redirect:/index";
	}

	@RequestMapping("/index")
	public String index() {
		return "index";
	}

	@RequestMapping("/user/index")
	public String userIndex() {
		return "user/index";
	}

}

有三个主要请求路径
/ 访问根路径跳转
/index 网站首页
/user/index 用户的首页

接下来接入Spring Security,这里定义一下用户及角色:
用户名为“user”的用户拥有角色“USER”,有角色“USER”的用户才有权限访问/user/index

新建类SecurityConfig

@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(HttpSecurity http)