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

【Spring】springSecurity中WebSecurityConfigurerAdapter类中configure方法(5版本以下)

1、简介

  • 在Spring Security中,WebSecurityConfigurerAdapter 类是一个配置适配器,它提供了多种 configure 方法的重载,允许开发者以声明性的方式配置Web安全。

2、相关规则

1. configure(WebSecurity web)

此方法用于配置哪些请求应该被Spring Security的过滤器链忽略。这通常用于静态资源(如CSS、JS、图片等),这些资源不需要进行安全认证。

@Override  
public void configure(WebSecurity web) throws Exception {  web.ignoring()  .antMatchers("/css/**", "/js/**", "/images/**", "/favicon.ico");  
}

2. configure(HttpSecurity http)

这是 WebSecurityConfigurerAdapter 中最重要的 configure 方法之一,它用于配置HTTP安全。通过这个方法,你可以定义哪些URL模式需要被保护,以及如何进行身份验证和授权。

@Override  
protected void configure(HttpSecurity http) throws Exception {  http  // 启用CSRF保护  .csrf().disable() // 注意:出于示例目的,这里禁用了CSRF保护,实际项目中应启用  // 配置请求授权  .authorizeRequests()  .antMatchers("/login", "/register", "/public/**").permitAll() // 这些URL允许匿名访问  .anyRequest().authenticated() // 其他所有请求都需要认证  .and()  // 配置表单登录  .formLogin()  .loginPage("/login") // 自定义登录页面  .defaultSuccessUrl("/home", true) // 登录成功后的默认跳转页面  .failureUrl("/login-error") // 登录失败后的页面  .permitAll() // 允许所有人访问登录页面  .and()  // 配置登出  .logout()  .logoutUrl("/logout") // 登出请求的URL  .logoutSuccessUrl("/login?logout") // 登出成功后的跳转页面  .permitAll() // 允许所有人访问登出功能  .and()  // 添加HTTP安全头部  .headers()  .frameOptions().deny() // 禁止iframe  .and()  // 会话管理  .sessionManagement()  .invalidSessionUrl("/invalid-session"); // 无效会话时的跳转页面  
}

3. configure(AuthenticationManagerBuilder auth)

此方法用于配置认证管理器(AuthenticationManager),它决定了如何对用户进行身份验证。可以通过它来定义用户信息的来源(如内存、数据库、LDAP等)和密码的加密方式。

@Autowired  
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {  // 使用内存中的用户进行认证  auth  .inMemoryAuthentication()  .withUser("user").password("{noop}password").roles("USER")  .and()  .withUser("admin").password("{noop}admin").roles("USER", "ADMIN");  // 或者使用自定义的用户详情服务  // auth.userDetailsService(userDetailsService).passwordEncoder(passwordEncoder());  
}  @Bean  
public PasswordEncoder passwordEncoder() {  return new BCryptPasswordEncoder();  
}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 2022 RoboCom省赛题目解析
  • Git: fatal: cannot lock ref‘HEAD‘: Unable to create
  • SQL 存储过程
  • 短视频矩阵:批量发布的秘密揭秘
  • SpringBoot常见注解
  • 数列分块<2>
  • int类型变量表示范围的计算原理
  • RISC-V指令集架构详细组成
  • ASP.NET Core 使用Log4net
  • elasticSearch快速了解
  • shark云原生-日志体系-ECK
  • 基于前馈神经网络 FNN 实现股票单变量时间序列预测(PyTorch版)
  • 打卡第9天-----字符串
  • MySQL 条件函数/加密函数/转换函数
  • 从零开始学习嵌入式----Makefile工具
  • 【108天】Java——《Head First Java》笔记(第1-4章)
  • 【React系列】如何构建React应用程序
  • Hexo+码云+git快速搭建免费的静态Blog
  • idea + plantuml 画流程图
  • Java Agent 学习笔记
  • js面向对象
  • js写一个简单的选项卡
  • Leetcode 27 Remove Element
  • React 快速上手 - 07 前端路由 react-router
  • 后端_ThinkPHP5
  • 机器人定位导航技术 激光SLAM与视觉SLAM谁更胜一筹?
  • 小程序开发之路(一)
  • puppet连载22:define用法
  • # 再次尝试 连接失败_无线WiFi无法连接到网络怎么办【解决方法】
  • $(function(){})与(function($){....})(jQuery)的区别
  • (33)STM32——485实验笔记
  • (Java岗)秋招打卡!一本学历拿下美团、阿里、快手、米哈游offer
  • (Pytorch框架)神经网络输出维度调试,做出我们自己的网络来!!(详细教程~)
  • (编程语言界的丐帮 C#).NET MD5 HASH 哈希 加密 与JAVA 互通
  • (每日持续更新)jdk api之StringBufferInputStream基础、应用、实战
  • (十三)Maven插件解析运行机制
  • (五十)第 7 章 图(有向图的十字链表存储)
  • (终章)[图像识别]13.OpenCV案例 自定义训练集分类器物体检测
  • (转)详解PHP处理密码的几种方式
  • .bat批处理(十一):替换字符串中包含百分号%的子串
  • .env.development、.env.production、.env.staging
  • .MSSQLSERVER 导入导出 命令集--堪称经典,值得借鉴!
  • .net 4.0发布后不能正常显示图片问题
  • .NET 应用架构指导 V2 学习笔记(一) 软件架构的关键原则
  • .NET/C#⾯试题汇总系列:⾯向对象
  • .NET开发不可不知、不可不用的辅助类(三)(报表导出---终结版)
  • .NET连接数据库方式
  • .net最好用的JSON类Newtonsoft.Json获取多级数据SelectToken
  • [AIGC] Java List接口详解
  • [BZOJ] 3262: 陌上花开
  • [bzoj2957]楼房重建
  • [CISCN 2019华东南]Web11
  • [CLIP-VIT-L + Qwen] 多模态大模型源码阅读 - 语言模型篇(4)
  • [Design Pattern] 工厂方法模式
  • [DevEpxress]GridControl 显示Gif动画