Spring Security 启动器

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-security</artifactId>
</dependency>

编写 SpringSecurityConfig 安全配置类

SpringSecurityConfig 安全控制配置类作为安全控制中心, 用于实现身份认证与授权配置功能:

  • SpringSecurityConfig必须继承抽象类WebSecurityConfigurerAdapter
  • 类上添加注解==@Configuration==(标识为配置类),和==@EnableWebSecurity==(启动SpringSecurity过滤器链功能)
  • 一般重写以下两个方法:
    • **configure(AuthenticationManagerBuilder auth)**身份认证管理器

      • 认证信息提供方式
      • 储存方式(内存、数据库)
    • **configure(HttpSecurity http)**资源权限配置(过滤链)
      • 拦截资源
      • 角色权限
      • 认证方式:httpBasic、httpForm
      • 定制登陆页面、登陆请求地址、错误处理方式
      • 自定义SpringSecurity过滤器链等

基于内存存储认证

@Bean
public PasswordEncoder passwordEncoder() {// 明文+随机盐值加密存储return new BCryptPasswordEncoder();
}
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {// 数据库存储的密码必须是加密后的,不然会报错:There is no PasswordEncoder mapped for the id "null"String password = passwordEncoder().encode("123456");logger.info("加密之后存储的密码:" + password);auth.inMemoryAuthentication().withUser("user1").password(password).authorities("ADMIN");
}

HttpForm表单认证

@Override
protected void configure(HttpSecurity http) throws Exception {// 表单登录方式http.formLogin()// 登陆页面地址.loginPage("/login/page")// 表单提交地址.loginProcessingUrl("/login/form")// 用户名属性名称.usernameParameter("username")// 密码属性名称.passwordParameter("password").and().authorizeRequests() // 认证请求//登陆页面放行.antMatchers("/login/page").permitAll()//所有访问该应用的http请求都要通过身份认证才可以访问.anyRequest().authenticated(); // 注意不要少了分号
}

静态资源放行

@Override
public void configure(WebSecurity web) {web.ignoring().antMatchers("/dist/**", "/modules/**", "/plugins/**");
}

SpringSecurity底层认证流程

SpringSecurity采用过滤器链实现认证与授权

请求过滤器链:

  • UsernamePasswordAuthenticationFilter:请求中包括用户和密码则进行认证,认证成功标记认证成功,否则进行下一个认证过滤器。

  • BasicAuthenticationFilter:请求头有basic开头的信息,base64解密后认证,认证成功标记认证成功,否则进入下一认证过滤器。

  • 其他认证过滤器

ExceptionTranslationFilter:捕获异常处理后续处理。

FilterSecurityInterceptor:认证通过后,根据资源权限配置来判断当前请求是否可以访问对应资源

SpringSecurity启动器相关推荐

  1. SpringSecurity+jwt安全框架

    目录 1.环境搭建 1.1maven项目 1.2导入依赖 2.测试环境 3.实现安全认证 3.1原理 3.1.1实现UserDetailsService接口默认是从内存中获取密码,我们需要从数据库中来 ...

  2. Spring Security进行登录认证和授权

    一.Spring Security内部认证流程 用户首次登录提交用户名和密码后spring security 的UsernamePasswordAuthenticationFilter把用户名密码封装 ...

  3. SpringBoot 居然有 44 种应用启动器

    点击上方 好好学java ,选择 星标 公众号 重磅资讯.干货,第一时间送达 今日推荐:腾讯推出高性能 RPC 开发框架 个人原创100W+访问量博客:点击前往,查看更多 啥是应用启动器?Spring ...

  4. SpringBoot_入门-HelloWorld细节-场景启动器(starter)

    前面我们编写了一个springboot,通过这个helloworld我们发现,Springboot确实简单,他只需要写一个主程序,来启动Springboot的应用,接下来我们就按照我们的业务逻辑,编写 ...

  5. spring boot 启动卡住_SpringBoot 居然有 44 种应用启动器

    点击上方 好好学java ,选择 星标 公众号 重磅资讯.干货,第一时间送达 今日推荐:腾讯推出高性能 RPC 开发框架 个人原创100W+访问量博客:点击前往,查看更多 啥是应用启动器?Spring ...

  6. spring boot 启动卡住_SpringBoot集成的44种启动器,你知道几种?

    点击蓝字"程序员考拉"欢迎关注! 啥是应用启动器?SpringBoot集成了spring的很多模块,比如tomcat.redis等等.你用SpringBoot搭建项目,只需要在po ...

  7. Spring Boot的启动器Starter详解

    Spring Boot的启动器Starter详解 作者:chszs,未经博主允许不得转载.经许可的转载需注明作者和博客主页:http://blog.csdn.net/chszs Spring Boot ...

  8. SpringBoot应用场景启动器

    SpringBoot主程序类,主入口 项目目录结构 下面的图中展示了上一篇博客中创建的入门程序,从这里我们开始了解关于SpringBoot程序启动原理 我们知道在Java中,每一个Java应用程序都有 ...

  9. Spring Boot(3)---Spring Boot启动器Starter详解

    Spring Boot的启动器Starter详解 Spring Boot 简化了 Spring 应用开发,不需要配置就能运行 Spring 应用, Spring Boot 管理 Spring 容器.第 ...

最新文章

  1. DailyTick 开发实录 —— UI 设计
  2. android标题栏(titlebar)显示进度条
  3. mysql 平均日营业额_一条SQL语句中算日销售额和月销售额
  4. Java EE WEB工程师培训-JDBC+Servlet+JSP整合开发之10.Web_工程结构
  5. Linux虚拟文件系统(VFS)
  6. Codeforces Round #599 (Div. 2) E. Sum Balance 图转换 + 子集dp + 环
  7. 二级c语言需要记库函数不,【2017年必备】计算机等级二级C语言上机考试题库(熟记必过,不看后悔).doc...
  8. 【Java】数据结构——栈(图文)
  9. nodejs fs创建文件_节点FS – NodeJS创建文件,读取文件,写入文件
  10. ubuntu 16.04无法正常关机、重启
  11. 亲身经历:如何判断一个字符在a/z之前?
  12. 2022年上半年网络工程师下午真题及答案
  13. Silverlight游戏设计(Game Design):(十四)练习用游戏素材资源的获取及相关工具使用心得
  14. intel cpu core/“酷睿”系列发展史,供组装机的朋友们参考
  15. bootmgr快速修复win7_这可能是史上最简单的一键安装虚拟机win7系统了
  16. 使用gimp批量处理图片
  17. Windows窗体之ShowWindow函数分析
  18. IT十大最尴尬瞬间 盖茨遭遇Win98死机列榜首
  19. AI视觉千亿规模市场虚席以待 初创企业看好“算法决定芯片”路径
  20. 计算机黑屏论文,在家写论文电脑突然黑屏自救方案,这几个方法可以解决95%以上的电脑问题...

热门文章

  1. 马克扎克伯格节俭_马克·扎克伯格的垃圾实在很难抢
  2. 马云退休启示录:第一代互联网创始人老去,谁来接棒?
  3. Android Scrapped or attached views may not be recycled.
  4. 《STL源码剖析》读书笔——(1)空间配置器
  5. 小灵通退市:生得伟大 死得光荣!
  6. [kpw] USBNetwork + WinSCP + PublicKey + PrivateKey
  7. 自定义ImageView实现切图的无缝对接
  8. 【读后感】Netty 系列之 Netty 高性能之道 - 相比 Mina 如何 ?
  9. PDF转CAD怎么弄?PDF文件转换快速入门
  10. Xilinx 官方论坛帖子、AR记录