0到1使用spring-security(Spring的安全认证框架)

本文详细介绍了Spring-Security的安全认证框架,包括认证与权限的基本概念、RBAC模型,以及Spring-Security的使用步骤。从创建可匿名访问的资源、自定义登录页面,到从数据库查询用户信息、密码加密、配置权限控制,再到注解方式的权限控制和退出登录功能,全方位展示了Spring-Security在实际项目中的应用。通过实例解析,帮助读者理解并掌握Spring-Security的配置和使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一:搞清楚认证与权限

1.1:什么是认证?

认证就是身份的核实,在我们生活中无处不在。譬如说你坐高铁需要拿着你的身份证以及你的英俊漂亮的脸,过闸机时那个操作相对于铁路局的操作系统而言就是需要对你进行认证,检查你是否有买当天的票,检查你与身份证以及票是否是同一个人。当我们使用别人的身份证进去时就亮红灯,不给进。这就是认证。

1.2:什么是权限?

接着上面的认证,咱们进去候车厅之后,然后等车,上车,接着找自己的位置。那么你是坐一等坐呢?还是二等座?亦或是三等座(站票)?这就取决于你买票的时候所选的坐席以及付出的money了(三等座于二等座同价不必抬杠)。你能坐到什么的位置就是你的权限。

1.3:小结

认证就是对身份的校验,权限就是你这个身份所拥有那些操作。

1.4:RBAC(基于角色的访问控制)

其基本思想是,对系统操作的各种权限不是直接授予具体的用户,而是在用户集合与权限集合之间建立一个角色集合。每一种角色对应一组相应的权限。一旦用户被分配了适当的角色后,该用户就拥有此角色的所有操作权限。这样做的好处是,不必在每次创建用户时都进行分配权限的操作,只要分配用户相应的角色即可,而且角色的权限变更比用户的权限变更要少得多,这样将简化用户的权限管理,减少系统的开销。
在这里插入图片描述

二:Spring-Security(安全认证框架)

1.1:什么是Spring-Security?

Spring Security是 Spring提供的安全认证服务的框架。 使用Spring Security可以帮助我们来简化认证和授权的过程。官网:Spring-Security

  1. SpringSecurity是Spring家族的一个安全框架, 简化我们开发里面的认证和授权过程, (登陆, 访问url时的权限控制 secuirty帮我们做了)
  2. SpringSecurity内部封装了Filter(只需要在web.xml容器中配置一个过滤器–代理过滤器,真实的过滤器(12个)在spring的容器中配置)
  3. 常见的安全框架
    1: Spring的 SpringSecurity 配置复杂 有个好老爸(spring) 无缝整合 链式模式
    2: Apache的Shiro http://shiro.apache.org/ 比较简单 apache 写整合 外观者模式

1.2:小结

为什么要用spring-security?那么麻烦的配置咱们还用它作甚?不用不行啊,因为企业中谁不用spring的东西啊?sping已经成为了企业的春天了。正因如此,为了更好的使用安全框架就用spring-security了。

三:Spring-Security入门

3.1:目标

使用Spring Security进行控制: 网站(一些页面)需要登录才能访问(认证)

3.2:环境

3.2.1:idea、tomcat、maven

1:在idea中创建maven工程的web项目,pom.xml文件引入spring以及spring-secruity依赖,我这里引入了spring的多个依赖,后面用到就不用再引入了。

	    <spring.security.version>5.0.5.RELEASE</spring.security.version>
	                <!-- Spring -->
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-context</artifactId>
                <version>${spring.version}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-beans</artifactId>
                <version>${spring.version}</version>
            </dependency>
            <!--springmvc-->
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-web</artifactId>
                <version>${spring.version}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-webmvc</artifactId>
                <version>${spring.version}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-jdbc</artifactId>
                <version>${spring.version}</version>
            </dependency
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值