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页面或者提示