首页 > 其他分享 >SpringSecurity表单认证(一)

SpringSecurity表单认证(一)

时间:2024-01-15 15:36:07浏览次数:29  
标签:SpringSecurity FilterSecurityInterceptor 请求 认证 登陆 过滤器 http 表单

配置类

  1. 创建securityConfig,并继承WebSecurityConfigurerAdapter,它是web应用的安全适配器
  2. 重写configure方法,共有三个,重写参数为http的configure方法
  3. configure(HttpSecurity http)方法,配置表单登陆认证方法,任何请求都需要表单认证
@Override
protected void configure(HttpSecurity http) throws Exception {
    //http.formLogin() //表单登陆认证方式,浏览器跳转到specurity默认登陆页面
    http.httpBasic()//浏览器弹出登陆对话框登陆认证方式
    .and()
    .authorizeRequests() //设置请求符合访问资源的权限
    .anyRequest().authenticated(); //对任何请求都要登陆认证后才能访问
}

基本原理

  • springSecurity过滤器链(认证过滤器),认证方式有很多种(过滤器),最后有FilterSecurityInterceptor拦截器决定是否可以访问资源,决定的依据是由配置类的configure方法决定。
  • 其中设置主要有两部分:1.设置认证方式(过滤器);2.设置请求符合访问资源的权限;
  • 任何一个过滤器认证了一个请求之后,会给这个请求做一个标记,表明这个请求认证成功了,下面过滤器放行即可
  • 如果请求符合配置的条件,则访问资源,否则FilterSecurityInterceptor会抛出不同的异常;
  • ExceptionTranslationFilter会接收FilterSecurityInterceptor抛出的异常做相应的处理;比如,使用formLogin认证方式,如果没有登陆,ExceptionTranslationFilter会跳转到登陆页面;

IMG_256

自定义认证方式就是在过滤器链上增加过滤器,如,短信登陆,微信登陆,qq登陆等.

注意:上面过滤器链上,绿色的部分可以我们通过配置来决定某个过滤器是否生效了。比如上面不配置http.httpBasic()那么Basic Authentication Filter就不会生效。其他过滤器是不能控制的。他们一定会在过滤器链路上,并且其位置也是不能更改的

调试表单认证

  1. rest api断点

IMG_256

  1. FilterSecurityInterceptor拦截器断点

IMG_256

  1. ExceptionTranslationFilter的doFilter断点

IMG_256

  1. UsernamePasswordAuthenticationFilter的attemptAuthentication断点

IMG_256

请求/user(未登陆)

  1. 进入FilterSecurityInterceptor拦截器断点

IMG_256

  1. 进入xceptionTranslationFilter的doFilter,拦截异常(未登陆)

IMG_256

  1. 跳转登录页面,输入用户名/密码,登陆
  2. UsernamePasswordAuthenticationFilter的attemptAuthentication

IMG_256

  1. 认证通过,进入FilterSecurityInterceptor拦截器

IMG_256

6.进入请求接口逻辑

关闭登陆验证

关闭Spring security的登录验证,springboot2.x启动类上排除
@SpringBootApplication(exclude = {SecurityAutoConfiguration.class, ManagementWebSecurityAutoConfiguration.class})

springboot1.0

security:
basic:
enabled: false #关闭登陆.springboot 1.x

标签:SpringSecurity,FilterSecurityInterceptor,请求,认证,登陆,过滤器,http,表单
From: https://www.cnblogs.com/wangzhilei-src/p/17965444

相关文章

  • 喜报!思迈特荣获DCMM稳健级认证,数据管理能力达国家标准
    近日,经中国电子信息行业联合组织主办的数据管理能力成熟度评估(简称DCMM)专家评审会的严格审查,思迈特成功取得DCMM稳健级(乙方三级)证书。这一成就标志着在数据战略和执行方面,思迈特取得了显著的进展,其数据管理能力已达到行业领先水平。DCMM是我国数据管理领域的国家级评估标准,自2018年......
  • 聊城申请ISO认证包含了哪些内容有什么好处
    聊城申请ISO认证包含了哪些内容有什么好处恒标知产刘经理 什么是ISO?ISO是世界上最大的国际标准化组织(InternationalOrganizationforStandardization)的简称。它成立于1947年2月23日,它的前身是1928年成立的“国际标准化协会国际联合会”(简称ISA)。ISO的成员由来自世界上100多个......
  • 每日一练 | 华为认证真题练习Day164
    1、当两台BGP邻居协商的HOLDTime参数为0时,则不发送Keeplive报文。A.正确B.错误2、ospf路由协议中,bandwidth-reference命令的单位是mbps。A.正确B.错误3、在OSPF广播或者NBMA网络类型中,ROUTERPRIORITY大的设备不一定会成为DR。A.正确B.错误4、在广播或nbma网络上,并非所有的......
  • 网工内推 | 信息安全主管,CISP/CISSP认证优先,最高25K
    01武汉华康世纪医疗股份有限公司招聘岗位:网络安全主管职责描述:1、推进公司信息/网络安全管理体系规划、建设、持续改进,促进信息安全管理的推行落地,保障网络、系统与数据安全;2、维护管理信息/网络管理软件,设备如:防火墙、IPS、堡垒机、AD域等;3、负责公司信息/网络安全(风险预防、安......
  • Ajax注册表单用户名实时验证
    Ajax注册表单用户名实时验证 1.1.1摘要很多时候在网站上注册时,我们会发现,注册表单通常需要检查用户名和电子邮件地址的可用性;从而确保用户之间不拥有相同的用户名和电子邮件地址;一些网站喜欢在用户提交填写的用户信息时,做信息可用性的检查,而一些网站会做实时的用户名和电子......
  • 【胖虎的逆向之路】Android自制Https证书实现双向认证
    Android自制Https证书实现双向认证1.基本概念1.1HTTP1.2HTTPS1.3加密方式1.3.1对称加密1.3.2非对称加密1.4SSL功能1.4.1客户对服务器的身份认证1.4.2服务器对客户的身份认证1.4.3建立服务器与客户之间安全的数据通道1.5CA证书2.证书生成2.1生成根证书(CA)2.2生成服务......
  • CPC儿童产品认证
    什么是CPC认证?CPC认证的全称是Children’sProductCertificate。CPC证书类似于中国的质检报告,在通过相关检测、出具报告后同时发放的证书。证书列明进/出口商信息,商品信息、以及已通过的相关检测项目及其依据的法规标准。亚马逊平台在上线一些类别的产品(如儿童玩具、婴童用品,儿童......
  • 欧洲的产品有哪些要做CE认证
    低压电子产品(不带插头)例如:鼠标,键盘,电动牙刷,遥控器,剃须刀等。高压电子产品(带插头)例如:吸尘器,电熨斗,洗碗机等所有玩具。纺织品,皮革,衣服面料等。无线产品(带蓝牙,WiFi,GPS,FM)等如若是刺穿皮肤的珠宝首饰和仿制珠宝首饰,例如耳环和穿环商品戴在手指和脚趾上的珠宝首饰和仿制珠宝首饰,例如戒指......
  • 2024年1月深圳CPDA数据分析师认证报名指南,快来看看
    CPDA数据分析师认证是大数据方面的认证,助力数据分析人员打下扎实的数据分析基础知识功底,为入门数据分析保驾护航。帮助数据分析人员掌握系统化的数据分析思维和方法论,提升工作效率和决策能力,遇到问题能够举一反三,为大部分决策难题提供解决方案。帮助数据分析人员掌握几种通用的数据......
  • 2024年1月DAMA-CDGP数据治理专家认证报名指南,快来看看
    DAMA认证为数据管理专业人士提供职业目标晋升规划,彰显了职业发展里程碑及发展阶梯定义,帮助数据管理从业人士获得企业数字化转型战略下的必备职业能力,促进开展工作实践应用及实际问题解决,形成企业所需的新数字经济下的核心职业竞争能力。DAMA是数据管理方面的认证,帮助数据从业者提升......