学科分类
目录
Spring Boot开发

开启安全管理效果测试

在Spring Boot项目中开启Spring Security的方式非常简单,只需要引入spring-boot-starter-security启动器即可。下面,在项目中引入安全管理依赖,开启项目的安全管理并进行测试。

1.添加spring-boot-starter-security启动器

在项目的pom.xml文件中引入Spring Security安全框架的依赖启动器spring-boot-starter-security,示例代码如下。

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-security</artifactId>
</dependency>

上述引入的依赖spring-boot-starter-security就是Spring Boot整合Spring Security安全框架而提供的依赖启动器,其版本号由Spring Boot进行统一管理,在当前Spring Boot版本下,对应的Spring Security框架对应的版本号为5.1.4。

需要说明的是,一旦项目引入spring-boot-starter-security启动器,MVC Security和WebFlux Security负责的安全功能都会立即生效(WebFlux Security生效的另一个前提是项目属于WebFlux Web项目);对于OAuth2安全管理功能来说,则还需要额外引入一些其他安全依赖。

2.项目启动测试

启动chapter07项目进行效果测试,仔细查看控制台打印信息,如图1所示。

图1 添加spring-boot-starter-security后项目启动效果

从图1可以看出,项目启动时会在控制台Console中自动生成一个安全密码(security password,这个密码在每次启动项目时都是随机生成的)。

通过浏览器访问“http://localhost:8080/”查看项目首页,效果如图2所示。

图2 项目首页访问效果

从2可以看出,执行“http://localhost:8080/”访问项目首页,自动跳转到了一个新的登录链接页面“http://localhost:8080/login”,这说明在项目中添加spring-boot-starter-security依赖启动器后,项目实现了Spring Security的自动化配置,并且具有了一些默认的安全管理功能。另外,项目中并没有手动创建用户登录页面,而添加了Security依赖后,Spring Security会自带一个默认的登录页面。

在图2所示的登录页面随意输入一个错误的用户名和密码,会出现错误提示,效果如图3所示。

图3 项目登录错误效果

从图3可以看出,当在Spring Security提供的默认登录页面“/login”中输入错误登录信息后,会重定向到“/login?error”页面并显示出错误信息“用户名或密码错误(Bad credentials)”。

需要说明的是,在Spring Boot项目中加入spring-boot-starter-security依赖启动器后,Security会默认提供一个可登录的用户信息,其中用户名为user,密码随机生成,这个密码会随着项目的每次启动随机生成并打印在控制台上。

下面,在登录页面输入用户名和密码,效果如图4所示。

图4 项目登录成功效果

从图4可以看出,在Spring Security提供的登录页面“/login”输入正确信息后,就会自动跳转到项目首页,单击不同的电影名称可以查看影片详情。

细心的读者可能会发现,这种默认安全管理方式存在诸多问题,例如,只有唯一的默认登录用户user、密码随机生成且过于暴露、登录页面及错误提示页面不是我们想要的等。

点击此处
隐藏目录