当前位置: 首页 > news >正文

SpringSecurity -- 入门使用

文章目录

  • 什么是 SpringSesurity ?
  • 细节
  • 使用方法

什么是 SpringSesurity ?

在我们的开发中,安全还是有些必要的
用 拦截器 和 过滤器 写代码还是比较麻烦。

SpringSecuritySpringBoot 的底层安全默认选型。一般我们需要认证和授权,这也是它的核心功能。我们仅仅需要导入 spring-boot-starter-security 模块,进行少量的配置,即可实现强大的安全管理

认证:验证当前访问系统的用户 是不是本系统的用户,并且要具体哪一个用户
授权:经过认证后判断当前用户是否有权限进行某个操作

细节

登录过程

在这里插入图片描述

在这里插入图片描述

负责我们在登录页面填写的用户和密码登录的请求,入门案例主要由他负责。

使用方法

总结到代码之中。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

// 开启 web 安全
@EnableWebSecurity
public class springSecurityConfig extends WebSecurityConfigurerAdapter { // 然后我们继承 web安全配置 适配器// 链式编程@Overrideprotected void configure(HttpSecurity http) throws Exception {http.authorizeRequests().  // authorize 授权antMatchers("/").permitAll()  //  ant ==> 蚂蚁    matcher ==> 匹配器 permitAll ==> 允许所有.antMatchers("/test1/**").hasRole("vip1")  //  role角色.antMatchers("/test2/**").hasRole("vip2").antMatchers("/test3/**").hasRole("vip3");// 如果没有用户的情况下,则会跳转到 login 页面       // 登录加工的urlhttp.formLogin().loginPage("/toLogin").usernameParameter("name").passwordParameter("pwd").loginProcessingUrl("/Login");//                 http.formLogin()
//                   .loginPage("/toLogin") // 设置登录页面URL
//                   .loginProcessingUrl("/Login") // 设置表单提交的URL 个人感觉:应该是需要认证的模块
//                   .failureUrl("/login-error") // 登录失败后的重定向URL
//                   .defaultSuccessUrl("/home", true) // 登录成功后的默认重定向URL
//                .and()
//                  .logout()
//                   .logoutSuccessUrl("/"); // 注销成功后的重定向URL// 开启记住我功能http.rememberMe().rememberMeParameter("jiZhuWo");http.csrf().disable();  // 关闭脚本跨站攻击// 开启注销功能http.logout().logoutSuccessUrl("/index");  // 注销成功后,回到 “/index” 之中。}// 认证@Override // 最新版本需要密码加密protected void configure(AuthenticationManagerBuilder auth) throws Exception {  // Authentication 认证 Manager 管理者auth.inMemoryAuthentication().passwordEncoder(new BCryptPasswordEncoder()) // Memory 记忆.withUser("xj").password(new BCryptPasswordEncoder().encode("abc")).roles("vip1","vip2")  // memory ==> 记忆.and().withUser("test").password(new BCryptPasswordEncoder().encode("cba")).roles("vip3");}
}

我们可以看到,拥有这个功能,不仅提供了权限、安全等,还另外 省去了写登录后台、过滤器等大量繁杂的代码,十分的方便

相关文章:

  • 在某服务中,两方法递归调用导致堆栈溢出
  • 【第十六章:Sentosa_DSML社区版-机器学习之生存分析】
  • “投其所招”-智能投标领军者丨OPENAIGC开发者大赛高校组AI创作力奖|
  • 基于RepLKNet31B模型在RML201610a数据集上的调制识别【代码+数据集+python环境+GUI系统】
  • Rust 全局变量的最佳实践 lazy_static/OnceLock/Mutex/RwLock
  • # linux从入门到精通(三)
  • UDP通信
  • [数据结构] 二叉树题目 (二)
  • 阿博图书馆管理系统:SpringBoot技术应用
  • c语言中的杨氏矩阵的介绍以及元素查找的方法
  • django drf 分页器
  • MP4 格式:前世今生与技术解析
  • HarmonyOS鸿蒙系统开发应用程序,免费开源DevEco Studio开发工具
  • 高级前端进阶:揭秘 MemFire Cloud 的强大助力
  • python和pyqt-tools安装位置
  • 【挥舞JS】JS实现继承,封装一个extends方法
  • bearychat的java client
  • canvas 高仿 Apple Watch 表盘
  • CSS3 聊天气泡框以及 inherit、currentColor 关键字
  • es6--symbol
  • Java|序列化异常StreamCorruptedException的解决方法
  • LeetCode29.两数相除 JavaScript
  • Lucene解析 - 基本概念
  • Mysql数据库的条件查询语句
  • python学习笔记 - ThreadLocal
  • react 代码优化(一) ——事件处理
  • TCP拥塞控制
  • 阿里研究院入选中国企业智库系统影响力榜
  • 百度贴吧爬虫node+vue baidu_tieba_crawler
  • 从零开始的webpack生活-0x009:FilesLoader装载文件
  • 动态规划入门(以爬楼梯为例)
  • 面试题:给你个id,去拿到name,多叉树遍历
  • 前端学习笔记之原型——一张图说明`prototype`和`__proto__`的区别
  • 设计模式 开闭原则
  • - 转 Ext2.0 form使用实例
  • #define与typedef区别
  • (C语言)深入理解指针2之野指针与传值与传址与assert断言
  • (done) 声音信号处理基础知识(2) (重点知识:pitch)(Sound Waveforms)
  • (Matalb时序预测)WOA-BP鲸鱼算法优化BP神经网络的多维时序回归预测
  • (超简单)构建高可用网络应用:使用Nginx进行负载均衡与健康检查
  • (二)换源+apt-get基础配置+搜狗拼音
  • (介绍与使用)物联网NodeMCUESP8266(ESP-12F)连接新版onenet mqtt协议实现上传数据(温湿度)和下发指令(控制LED灯)
  • (免费领源码)python#django#mysql公交线路查询系统85021- 计算机毕业设计项目选题推荐
  • (牛客腾讯思维编程题)编码编码分组打印下标题目分析
  • (七)Java对象在Hibernate持久化层的状态
  • (全注解开发)学习Spring-MVC的第三天
  • (算法)区间调度问题
  • (一)C语言之入门:使用Visual Studio Community 2022运行hello world
  • (原創) 如何安裝Linux版本的Quartus II? (SOC) (Quartus II) (Linux) (RedHat) (VirtualBox)
  • .gitignore文件忽略的内容不生效问题解决
  • .MyFile@waifu.club.wis.mkp勒索病毒数据怎么处理|数据解密恢复
  • .NET 4.0中使用内存映射文件实现进程通讯
  • .Net面试题4
  • ::什么意思
  • @DependsOn:解析 Spring 中的依赖关系之艺术