Spring Security 是一个提供身份认证、授权和防范常见攻击的安全权限框架。无论是对命令式,还是响应式web应用程序都完美支持,现在主要用作保护基于 Spring 框架的应用程序的事实标准。相对于shiro来说,SpringSecurity功能更加复杂而且更加强大
1.SpringBoot整合security
pom中加入依赖
<!--security-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<!--lomback-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.10</version>
</dependency>
<!--thymeleaf模板引擎-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
<version>2.6.5</version>
</dependency>
<!--mysql驱动包-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<!--mybatis-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.4</version>
</dependency>
<!--阿里驱动类-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.2.5</version>
</dependency>
当引入security依赖后,启动项目再访问时,会被要求登录,我们账号输入user,密码在控制台
成功登录。
登录成功后我们可以访问Controller里的资源
在SecurityConfig里配置拦截路径,以及放行路径,
在Config里注入BCryptPasswordEncoder,Hbase密码加密类
接下来实现LoadUserByUserName,它会根据name去数据库查找比对密码,成功则放行,失败拦截
注意数据表里的password字段要经过BCrt类密码加密,才能比对成功
最后测试,打开浏览器输入url地址,会跳转到登录页面进行登录,输入账号,密码,成功登陆
如果账号密码比对失败或者断网,会跳转到对应的error页面或者提示