登录/注册
小开开
2649
占位
2
占位
0
浏览量
占位
粉丝
占位
关注
初识SpringSecurity
小开开
2021-03-17 16:27:42 2021-03-17
818
0

出处: http://moxi159753.gitee.io/learningnotes/#/README

参考

来源于黑马程序员: 手把手教你精通新版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>

最终依赖树

image-20200919183927385

配置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/javaee
http://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/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd
http://www.springframework.org/schema/security
http

暂无评论