动手试一试 Spring Security入门
1.创建Spring Boot项目
引入Web和Thymeleaf的依赖启动器
2.引入页面Html资源文件
在项目的resources下templates目录中,引入案例所需的资源文件(下载地址),项目结构如下
3.创建控制器
@Controller
public class FilmController {// 影片详情页@GetMapping("/detail/{type}/{path}")public String toDetail(@PathVariable("type")String type, @PathVariable("path")String path) {return "detail/"+type+"/"+path;}}
至此,使用Spring Boot整合Spring MVC框架实现了一个传统且简单的Web项目,
目前项目没有引入任何的安全管理依赖,也没有进行任何安全配置,
项目启动成功后,通过http://localhost:8080访问首页,单击影片进入详情详情页。
4.开启安全管理
添加spring-boot-starter-security启动器
一旦项目引入spring-boot-starter-security启动器,MVC Security和WebFlux Security负责的安全功能都会立即生效
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-security</artifactId>
</dependency>
5.项目启动测试
项目启动时会在控制台Console中自动生成一个安全密码
如果是热部署重启项目,可能不会有安全密码,那就关闭项目,再启动
浏览器访问http://localhost:8080/查看项目首页,会跳转到一个默认登录页面。
因为添加了Security依赖后,会进行spring security的自动化配置,需要先登录,才能访问首页,Spring Security会自带一个默认的登录页面。
随意输入一个错误的用户名和密码,会出现错误提示
Security会默认提供一个可登录的用户信息,其中用户名为user,密码随机生成,
这个密码会随着项目的每次启动随机生成并打印在控制台上,在登录页面输入用户名和密码。
这种默认安全管理方式存在诸多问题,例如:
只有唯一的默认登录用户user、密码随机生成且过于暴露、登录页面及错误提示页面不是我们想要的等。