SpringSecurity入门
1.1 Spring Security简介
Spring Security是一个功能强大且高度可定制的身份验证和访问控制框架。它是用于保护基于 Spring的应用程序的实际标准。Spring Security是一个框架,致力于为Java应用程序提供身份验证和授 权。与所有Spring项目一样,Spring Security的真正强大之处在于可以轻松扩展以满足自定义要求.
1.2 Spring Security框架功能简介
1. 认证: 用户登录, 解决的是"你是谁?"
2. 授权: 判断用户拥有什么权限,可以访问什么资源. 解决的是"你能干什么?"
3. 安全防护,防止跨站请求,session 攻击等
1.3 SpringSecurity应用场景
1. 用户登录, 传统基于web开发的项目的登录功能.
2. 用户授权, 在系统中用户拥有哪些操作权限
3. 集成cas,做单点登录,即多个系统只需登录一次,无需重复登录
4.集成oauth2 ,做登录授权, 可以用于app登录和第三方登录(QQ,微信等), 也可以实现cas的功能.
5. 单一登录, 一个账号只能在同一时间只能在一个地方进行登录, 如果在其他地方进行第二次登录,则 剔除之前登录操作
1.4 SpringSecurity入门案例
1. 创建Spring Boot 工程
Spring Boot版本选择2.7.0 , 并选中Spring Web 模块。点击next,项目创建成功。
2. 编写Controller
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | package com.grouphy.controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; /** * Created With IntelliJ IDEA. * Descriptions: * User:Mr.Du * Date:2022/6/17 * Time:9:44 */ @RestController public class TestController { @RequestMapping( "/test" ) public String test(){ return "Nice, Security" ; } } |
3. 启动项目,访问: http://localhost:8080/test
4. 添加SpringSecurity依赖
1 2 3 4 | <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency> |
5. 重新访问 http://localhost:8080/test
我们建成的项目没有任何页面,怎么会出现这个登录表单,其实,这是SpringSecurity默认的表单,当你引入它的依赖后,启动项目,不管你的url输入是什么,它都会跳转到这个页面,只有当你输入正确的用户名和密码,他才会跳转到你输入的url页面。那么它的用户名和密码又是什么呢?我们先来看一下他这个网页源代码,如下:
这里有三点需要大家注意下:
1. 表单的提交方式和路径: post /login
2. input输入项的name值: username password
3. 隐藏域input的name: 值为: _csrf value值为 63370291-a3ad-4d62-b956-f0d73807ff3e
其实SpringBoot已经提供了默认用户名user,密码在项目启动时随机生成,如图:
输入用户名和密码登录成功,成功输出内容
大功告成!!!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理