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

spring security权限问题

  1. `
    org.springframework.boot
    spring-boot-starter-security

    引入jar

  2. extends WebSecurityConfigurerAdapter 用来配置登陆和权限

  3. configure(HttpSecurity http) 覆盖这个方法

  4. //配置授权相关的
    .authorizeRequests ()
    //任何请求
    .anyRequest()
    //要求授权后可以访问
    .authenticated();

  5. spring security 的实现原理,是一系列的filter。 UsernamePasswordAuthenticationFilter 用于表单的用户名和密码的验证,用于处理exception的ExceptionTranslationFilter 。最后的过滤器这个之后就是直接访问我们的其你去了FilterSecurityInterceptor 。

  6. 因为我们要提交用户名密码,所以spring有个专门处理这个的接口。UserDetailsService 。

  7. 如何自定义用户获取信息的,如何校验,密码的加密解密 UserDetailService 主要是根据String 的用户名,获取相对应的密码。无论是从哪里查

  8. UserDetail 可以处理用户的锁定,用户的失效,密码过期问题。

  9. 自己设置登陆页面 http
    //.httpBasic()

           .formLogin()//自己的登陆页面。如果是springboot项目,这个地址是一个mapping的地址。在mapping中设置跳转的html也就是mvc的模式。.loginPage("/homeLogin")// 这个是登陆页面提交的mapping地址。其实也就是UserNamePassword 那个filter 默认处理的地址是 /login,设置后,就是新的这个地址,filter会自动处理。拿到username和password等等,以及之后的流程。.loginProcessingUrl("/userLogin").and()//配置授权先关的.authorizeRequests ()//因为下面几行的访问限制是所有的路径,所以这块是放行登陆页面,如果不放行,会一直请求登陆页面,但是又没有权限,也就是循环请求了,浏览器会报重定向次数过多。.antMatchers("/homeLogin").permitAll()//任何请求.anyRequest()//要求授权后可以访问.authenticated().and()//这个如果不配置。在新版的security中,登陆页面输入用户名和密码提交会一直刷新登陆页面。所以这是必须配置的,让这个安全配置失效.csrf().disable();
    
  10. 在上面这些配置下,完成自定义登陆页面。可以在输入正确的用户密码的情况下,请求mapping。如果错误,暂时没有定义错误页面,因为别的页面没有权限,还是会跳转到登陆页面

http://www.lryc.cn/news/17676.html

相关文章:

  • mysql 8.0.22安装
  • Mysql系列:Mysql5.7编译安装
  • 设备树(配合LED驱动说明)
  • (二十六)大白话如何从底层原理解决生产的Too many connections故障?
  • ASEMI高压MOS管60R380参数,60R380特征,60R380应用
  • Python期末试卷
  • Linux | 网络通信 | http协议介绍 | cookie策略讲解
  • 招投标系统简介 招投标系统源码 java招投标系统 招投标系统功能设计
  • winapi获取和修改camera raw界面元素数据
  • C++问答汇总_2023自用
  • IDA 实战--(2)熟悉工具
  • Deep Unsupervised Learning using Nonequilibrium Thermodynamics论文翻译学习
  • 使用Autoware标定工具包联合标定相机和激光雷达
  • 了解线程安全
  • 【git】git版本控制
  • 模电学习7. 三极管特性曲线与静态工作点
  • LeetCode题解:633. 平方数之和,双指针,JavaScript,详细注释
  • Keil编译头文件iec_std_functions.h错误解决
  • 2022 赣育杯 CTF --- Crypto Lost_N wp
  • 【趋势分析方法三】MATLAB代码实现TFPW-MK检验
  • 一文学会 Spring 整合 MyBatis
  • ElasticSearch - 文档 | 索引文档 | 检索文档 | 创建索引并指明映射
  • SQL中的DML、DDL、DCL分别是什么意思
  • kubeasz部署k8s高可用集群
  • 2022年工程机械出口专题研究【重工】
  • [python入门(51)] - python时间日期格式time和datetime
  • 别担心ChatGPT距离替代程序猿还有距离
  • SpringBoot项目打包部署到阿里云服务器、通过Maven插件制作Docker镜像、部署项目容器、配置生产环境
  • OpenGov的首个方案已上线Moonriver
  • (三十一)大白话MySQL如果事务执行到一半要回滚怎么办?再探undo log回滚日志原理