美文网首页
SpringBoot使用SpringSecurity

SpringBoot使用SpringSecurity

作者: Kylin824 | 来源:发表于2021-07-07 00:31 被阅读0次

    目的:验证请求用户的身份,提供安全访问
    优势:基于Spring,配置方便,减少大量代码

    一、SpringBoot中应用Spring Security

    1. 在SpringBoot项目的pom中配置Spring Security:
    <dependency>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-starter-security</artifactId>
    </dependency>
    
    1. 启动项目:
      控制台会输出一个由SpringSecurity自动生成的密码(用户名默认为 user ):
    2. 访问任一项目路径会弹出用户验证界面:

      填入用户名和密码,验证成功。

    由此可见SpringBoot已经为用户采用默认配置,只需要引入pom依赖就能快速启动Spring Security。
    然而默认配置每次都启动项目都会重新生成密码,同时用户名和拦截请求也不能自定义,在实际应用中往往需要自定义配置,因此接下来对Spring Security进行自定义配置。

    二、SpringBoot中配置Spring Security

    目标:配置两个用户角色(Admin和User),设置不同密码(存储在内存中);同时设置角色访问权限,其中Admin可以访问所有路径(即/*),User只能访问/user下的所有路径。

    1. 自定义配置类,实现WebSecurityConfigurerAdapter接口,WebSecurityConfigurerAdapter接口中有两个用到的 configure()方法,其中一个配置用户身份,另一个配置用户权限:
      1.1 配置用户身份的configure()方法:


      注释:
      • inMemoryAuthentication()表示将用户名和密码存在内存中,也可以存在数据库或redis等缓存中
      • passwordEncoder用于对密码进行加密
      • roles是给予该用户的后台角色,用于下面的用户权限配置。
      1.2 配置用户权限的configure()方法:

      注释:

      • antMatchers()配置拦截的路径
      • hasAnyRole()配置哪类角色可以访问该路径
      • formLogin()配置登录界面,可以添加自定义界面, 没添加则用系统默认的界面。

    再次启动项目便可实现两个用户名(admin,user)登录,同时两类用户(Admin,User)有不同访问权限的效果。

    相关文章

      网友评论

          本文标题:SpringBoot使用SpringSecurity

          本文链接:https://www.haomeiwen.com/subject/ijjgultx.html