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

spring boot —— Spring Security定制权限管理

前言

Spring Security是一个功能强大且高度可定制的身份验证和访问控制框架。提供了完善的认证机制和方法级的授权功能。是一款非常优秀的权限管理框架。它的核心是一组过滤。

类似于Shiro

启动spring boot项目后,会先验证,如果没有登陆,会跳转到框架默认登录页面(封装好的,不用自己写)

如果没有配置登录用户,那么终端会自动生成用户并打印随机生成的用户密码,如果有配置,就不会生成。

Spring Security的使用

1、pom文件导依赖

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

2、Spring Security的xml配置文件基本内容:

spring.security.user.name=test
spring.security.user.password=123456
spring.security.user.roles[0]=user
spring.security.user.roles[1]=admin

3、控制类

Spring Security控制器 

@Controller
public class TestControoller {

    @RequestMapping("/index")
    @ResponseBody
    public String index(){
        return "index页面";
    }
}

项目逻辑控制器 

@Controller
public class TestControoller {
    @RequestMapping("/index")
    @ResponseBody
    public String index(){
        return "欢迎访问";
    }
}

4、实现类

//        让所有用户都有访问的权限

.antMatchers().permitAll()

//        授予用户权限,对应xml文件里的roles的

.anyRequest().hasRole("user")

@Configuration
public class SecurityConfigration extends WebSecurityConfigurerAdapter
{
    @Override
    protected void configure(HttpSecurity http) throws Exception{
        http
                .authorizeHttpRequests()
                .antMatchers().permitAll()
                .anyRequest().hasRole("user")
                .and()
                .formLogin();
        
    }

}

运行过程:

访问:http://localhost:8080/index,会跳转http://localhost:8080/login,输入在xml配置文件内容

 点击登陆后,跳转index页面显示“index页面”

其他:

 

相关文章:

  • Python从入门到实践:包的使用
  • kubernetes二进制安装教程单master
  • LeetCode-998. 最大二叉树 II【最大二叉树】
  • 如何快速使用proteus【硬件课程设计】
  • 从零开始手写一个Transformer
  • java基于springboot+Vue图片分享社区网站
  • Appium环境搭建及元素定位
  • 神经网络算法处理器设计,神经网络是机器算法吗
  • 爱上开源之golang入门至实战第四章函数(Func)(九)
  • Ubuntu安装可视化界面ElasticSearch-head插件
  • 【数论:组合数学】排列组合
  • kickstarter/indiegogo海外众筹六大核心
  • 做库存功能业务场景详解,S2B2B系统助力建筑建材企业精准掌握库存动态
  • 操作系统——内存管理例题
  • 自动化测试框架Pytest(九)——任务管理
  • css布局,左右固定中间自适应实现
  • echarts花样作死的坑
  • export和import的用法总结
  • Hibernate最全面试题
  • IndexedDB
  • JS进阶 - JS 、JS-Web-API与DOM、BOM
  • JS专题之继承
  • Laravel核心解读--Facades
  • PHP 的 SAPI 是个什么东西
  • Shell编程
  • Synchronized 关键字使用、底层原理、JDK1.6 之后的底层优化以及 和ReenTrantLock 的对比...
  • 安装python包到指定虚拟环境
  • -- 查询加强-- 使用如何where子句进行筛选,% _ like的使用
  • 从零到一:用Phaser.js写意地开发小游戏(Chapter 3 - 加载游戏资源)
  • 仿天猫超市收藏抛物线动画工具库
  • 给初学者:JavaScript 中数组操作注意点
  • 开年巨制!千人千面回放技术让你“看到”Flutter用户侧问题
  • 前端_面试
  • 前端攻城师
  • 入职第二天:使用koa搭建node server是种怎样的体验
  • 推荐一个React的管理后台框架
  • 掌握面试——弹出框的实现(一道题中包含布局/js设计模式)
  • Python 之网络式编程
  • # 飞书APP集成平台-数字化落地
  • #免费 苹果M系芯片Macbook电脑MacOS使用Bash脚本写入(读写)NTFS硬盘教程
  • (03)光刻——半导体电路的绘制
  • (1)(1.13) SiK无线电高级配置(五)
  • (13)Latex:基于ΤΕΧ的自动排版系统——写论文必备
  • (9)目标检测_SSD的原理
  • (bean配置类的注解开发)学习Spring的第十三天
  • (MonoGame从入门到放弃-1) MonoGame环境搭建
  • (板子)A* astar算法,AcWing第k短路+八数码 带注释
  • (初研) Sentence-embedding fine-tune notebook
  • (附源码)ssm航空客运订票系统 毕业设计 141612
  • (五)关系数据库标准语言SQL
  • (新)网络工程师考点串讲与真题详解
  • (转)winform之ListView
  • .cn根服务器被攻击之后
  • .describe() python_Python-Win32com-Excel
  • .equals()到底是什么意思?