SpringBoot(33) ——用户认证和授权

本文介绍如何使用SpringSecurity实现项目的认证和授权功能,通过简单的步骤引入依赖并配置,即可为项目增加强大的安全控制。
  • Spring Security 是针对Spring项目的安全框架,也是Spring Boot底层安全模块默认的技术选型,他可以实现强大的Web安全控制,对于安全控制,我们仅需要引入 spring-boot-starter-security 模块,进行少量的配置,即可实现强大的安全管理!

  • 记住两个类和一个注解:

    • WebSecurityConfigurerAdapter:自定义Security策略
    • AuthenticationManagerBuilder:自定义认证策略
    • @EnableWebSecurity:开启WebSecurity模式
  • Spring Security的两个主要目标是 “认证” 和 “授权”(访问控制)

    • “认证”(Authentication)

      • 身份验证就是验证您的身份凭据,如用户名/用户ID和密码,以验证您的身份是否合法
      • 身份验证通常通过用户名和密码完成,有时与身份验证因素结合使用
    • “授权” (Authorization)

      • 授权发生在系统成功验证您的身份后(即你需要先通过认证证明你的身份合法性,spring security才会去检查你的身份对应的角色,spring security才会对你进行授权验证,对比你请求的资源是不是你对应的角色的权限范围内的,是就返回资源,不是就403)
  • 这两个概念是通用的,而不是只在Spring Security 中存在



1.导入依赖

  • 导入依赖,只需要导入启动器即可,我们可以在原来有的启动器依赖上面修改即可导入,这是因为springBoot的启动器依赖格式都是spring-boot-starter-XXX
     <!--Spring Security的依赖-->
     <dependency>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-security</artifactId>
     </dependency>
    
  • 我们可以观察一下这个依赖为我们导入的其他依赖
    在这里插入图片描述
  • 可以发现它导入了aop依赖和安全配置和安全web依赖

2.简单上手

@EnableWebSecurity	//使用注解@EnableWebSecurity
public class Config extends WebSecurityConfigurerAdapter {
   
   	//继承WebSecurityConfigurerAdapter 
    @Override
    protected void configure(HttpSecurity http) throws Exception {
   
   	//覆写configure()即可
        http
            .apply(customDsl())
                .flag(true)
                .and()
            ...;
    }
}
  • 按照官方模板创建一个config
    package com.thhh.config;
    
    import org.springframework.security.config.annotation.web.builders.HttpSecurity;
    import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
    import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
    
    @EnableWebSecurity
    public class SecurityConfig extends WebSecurityConfigurerAdapter {
         
         
        @Override
        protected void configure(HttpSecurity http) throws Exception {
         
         
            super.configure(http);
        }
    }
    

1.授权(Authorization/or)

  • 需求:首页大家都可以访问,但是其他功能也只有有权限的人才能进行访问
  • 注意:按照模板写的方法是对父类的方法的覆写,所以方法具体怎么实现我们可以去参照父类的实现
    在这里插入图片描述
  • 照猫画虎实现覆写的方法
    package com.thhh.config;
    
    import org.springframework.security.config.annotation.web.builders.HttpSecurity;
    import org.springframework
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值