初识SpringSecurity
小开开 2021-03-17 16:27:42 2021-03-17 818 0
参考
来源于黑马程序员: 手把手教你精通新版SpringSecurity
权限管理概念
权限管理,一般指根据系统设置的安全规则或者安全策略,用户可以访问而且只能访问自己被授权的资源。权限管
理几乎出现在任何系统里面,前提是需要有用户和密码认证的系统。在权限管理的概念中,有两个非常重要的名词:
- 认证:通过用户名和密码成功登陆系统后,让系统得到当前用户的角色身份。
- 授权:系统根据当前用户的角色,给其授予对应可以操作的权限资源。
完成权限管理需要三个对象
- 用户:主要包含用户名,密码和当前用户的角色信息,可实现认证操作。
- 角色:主要包含角色名称,角色描述和当前角色拥有的权限信息,可实现授权操作。
- 权限:权限也可以称为菜单,主要包含当前权限名称,url地址等信息,可实现动态展示菜单。
注:这三个对象中,用户与角色是多对多的关系,角色与权限是多对多的关系,用户与权限没有直接关系,
二者是通过角色来建立关联关系的。
初识SpringSecurity
Spring Security是spring采用AOP思想,基于servlet过滤器实现的安全框架。它提供了完善的认证机制和方法级的
授权功能。是一款非常优秀的权限管理框架。创建SpringSecurity
Spring Security主要jar包功能介绍
- spring-security-core.jar:核心包,任何Spring Security功能都需要此包。
- spring-security-web.jar:web工程必备,包含过滤器和相关的Web安全基础结构代码。
- spring-security-config.jar:用于解析xml配置文件,用到Spring Security的xml配置文件的就要用到此包。
- spring-security-taglibs.jar:Spring Security提供的动态标签库,jsp页面可以用。
导入pom依赖
<dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-taglibs</artifactId> <version>5.1.5.RELEASE</version></dependency><dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-config</artifactId> <version>5.1.5.RELEASE</version></dependency>
最终依赖树
配置web.xml
<web-app xmlns="http://java.sun.com/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://java.sun.com/xml/ns/javaeehttp://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"version="3.0"><display-name>Archetype Created Web Application</display-name><!--Spring Security过滤器链,注意过滤器名称必须叫springSecurityFilterChain--> <filter> <filter-name>springSecurityFilterChain</filter-name> <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class> </filter> <filter-mapping> <filter-name>springSecurityFilterChain</filter-name> <url-pattern>/*</url-pattern> </filter-mapping></web-app>
配置SpringSecurity.xml
```xml
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xmlns:aop="http://www.springframework.org/schema/aop"xmlns:tx="http://www.springframework.org/schema/tx"xmlns:security="http://www.springframework.org/schema/security"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/aophttp://www.springframework.org/schema/aop/spring-aop.xsdhttp://www.springframework.org/schema/txhttp://www.springframework.org/schema/tx/spring-tx.xsdhttp://www.springframework.org/schema/securityhttp