【Spring Security系列】一文带你了解权限框架与Spring Security核心概念

这篇具有很好参考价值的文章主要介绍了【Spring Security系列】一文带你了解权限框架与Spring Security核心概念。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

权限框架

权限框架是软件开发中用于管理用户权限和访问控制的工具。在企业或者我们毕设复杂的系统中,不同的用户或角色需要拥有不同的访问和操作权限,以确保系统的安全性和数据完整性。今天我们就讨论一下Java中的安全框架!

流行的安全框架

【Spring Security系列】一文带你了解权限框架与Spring Security核心概念,云原生系列--微服务,spring,数据库,spring cloud,安全架构

在企业的开发中,Spring Security,Shiro都是比较流行的权限框架,它们可以用于为应用程序提供安全访问控制功能。下面我们来学习一下它们。

Spring Security

Spring Security是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架(声明式哦)。

它充分利用了Spring IoC、DI和AOP功能,为我们的应用系统提供声明式的安全访问控制功能,减少了为企业系统安全控制编写大量重复代码的工作。

Spring Security的核心概念主要包括认证和授权。认证就是验证用户身份的过程,通常涉及用户名和密码等凭据的校验。授权则是验证用户是否有权限执行特定操作或访问特定资源。Spring Security他给我们提供了丰富的功能,可以用来做角色管理、权限控制、单点登录。

Shiro

Shiro是一个强大且易用的Java安全框架,它为我们提供了认证、授权、加密和会话管理等功能。

【Spring Security系列】一文带你了解权限框架与Spring Security核心概念,云原生系列--微服务,spring,数据库,spring cloud,安全架构

Shiro可以工作在任何应用环境中,不仅支持Web项目,还支持非Web项目。它具有低依赖性,不需要任何框架和容器,可以独立运行。

Shiro的关键对象包括主体、权限和角色。主体是需要访问资源的用户或程序,权限则是用于控制对资源的访问。Shiro通过角色来管理用户的权限,不同的角色可以拥有不同的权限集合。

Spring Security和Shiro的区别

  • 集成与依赖上:Spring Security是基于Spring框架的,所有与Spring应用集成得更加紧密。它依赖于Spring容器,可以充分利用Spring的IoC和AOP等特性。而Shiro则独立于Spring,可以在任何Java应用中使用,无需依赖Spring容器。这也是我们经常使用Spring Security的原因!!!

  • 功能丰富性上:Spring Security在功能方面相对Shiro更加丰富。它提供了更多的安全特性和选项,比如更细粒度的权限控制、单点登录支持。Shiro虽然功能也很强大,但在某些方面还是不如Spring Security强大

  • 配置与使用上:Shiro的配置和使用相对简单,对于初学者来说更加友好。Spring Security因为功能丰富,所以上手稍微复杂一些,需要更多的学习和配置。

我们Java开发人员日常使用Spring框架比较多,需要更丰富的安全功能和更紧密的集成,所有通常情况下Spring Security是一个更好的选择。接下来我们学习一下Spring Security。

Spring Security的核心概念

Spring Security的核心概念包括:

  • 认证(Authentication):验证用户身份的过程,通常通过用户名和密码等凭据进行。

【Spring Security系列】一文带你了解权限框架与Spring Security核心概念,云原生系列--微服务,spring,数据库,spring cloud,安全架构

  • 授权(Authorization):确定已认证用户是否有权访问某个资源或执行某个操作的过程。
    【Spring Security系列】一文带你了解权限框架与Spring Security核心概念,云原生系列--微服务,spring,数据库,spring cloud,安全架构
虽然英文比较相似,但它俩不是“双胞胎”!!!
  • 角色(Role):用于表示用户权限的一种抽象概念,可以将多个权限组合成一个角色,方便管理和分配。
  • 安全上下文(Security Context):保存认证用户的信息和授权信息的地方,可以在整个应用中访问。
  • 过滤器链(Filter Chain):Spring Security使用过滤器链来处理安全相关的请求,每个过滤器负责处理特定的安全任务。

Spring Security简单使用

讲了这么多Spring Security的概念,我们现在来简单使用一下!

首先第一步,在项目的pom.xml文件中添加Spring Security的依赖:

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

然后创建一个配置类SecurityConfig

@Configuration
public class SecurityConfig {

    @Bean
    public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {

        http.formLogin()             //自定义自己编写的登陆页面
                .loginPage("/login.html")    //登录页面设置
                .loginProcessingUrl("/login") //登录访问路径
                .permitAll()//登录页和登录访问路径无需登录也可以访问
                .and()
                .authorizeRequests()
                .antMatchers("/css/**","/images/**").permitAll()
                .anyRequest().authenticated()
                .and()
                .csrf().disable();    //关闭csrf防护
        return http.build();
    }

}

然后我们创建一个简单的控制器,用于测试认证和授权:

@RequestMapping("/hello")
public String hello(){
    //认证成功,得到认证成功之后用户信息
    Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
    String userName = authentication.getName();
    return "hello  "+userName;
}

我们启动程序,输入URL:
【Spring Security系列】一文带你了解权限框架与Spring Security核心概念,云原生系列--微服务,spring,数据库,spring cloud,安全架构
密码输出在了控制台,我们通过控制台可以得到密码
【Spring Security系列】一文带你了解权限框架与Spring Security核心概念,云原生系列--微服务,spring,数据库,spring cloud,安全架构

这个时候访问URL时就可以看到下图的结果了:

【Spring Security系列】一文带你了解权限框架与Spring Security核心概念,云原生系列--微服务,spring,数据库,spring cloud,安全架构

文章到这里就结束了,后续会分享其他这方面的知识点,感谢大家的支持!

【Spring Security系列】一文带你了解权限框架与Spring Security核心概念,云原生系列--微服务,spring,数据库,spring cloud,安全架构文章来源地址https://www.toymoban.com/news/detail-853792.html

到了这里,关于【Spring Security系列】一文带你了解权限框架与Spring Security核心概念的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 安全框架Spring Security是什么?如何理解Spring Security的权限管理?

    大家好,我是卷心菜。本篇主要讲解Spring Security的基本介绍和架构分析,如果您看完文章有所收获,可以三连支持博主哦~,嘻嘻。 🎁 作者简介: 在校大学生一枚,Java领域新星创作者,Java、Python正在学习中,期待和大家一起学习一起进步~ 💗 个人主页:我是一棵卷心菜的

    2024年02月02日
    浏览(54)
  • 【Java】一文带你快速入门Shiro权限框架

    📓推荐网站(不断完善中):个人博客 📌个人主页:个人主页 👉相关专栏:CSDN专栏 🏝立志赚钱,干活想躺,瞎分享的摸鱼工程师一枚 在我们实战开发过程中,对于权限的控制是必不可少的,一个系统中常见的有 普通会员、管理员、超级管理员 等等不同的角色出现。 我们

    2024年02月08日
    浏览(44)
  • 一文带你了解 Jetpack Compose UI 框架

    对于类似 Button 函数的这种,提供了 onClick 函数式接口供外部设置点击监听; 对于类似 Text 函数这种,没有提供显式接口设置的,通过 Modifier 类设置点击监听; Button 函数设置点击事件 @Composable fun TextButton() { Button( onClick = { Log.d(“Andoter”, this.javaClass.name) Toast.makeText(this@Mai

    2024年04月11日
    浏览(60)
  • 系列二、Spring Security中的核心类

    1.2.1、概述         Spring Security 提供了多种密码加密方案,官方推荐使用 BCryptPasswordEncoder,BCryptPasswordEncoder 使用 BCrypt 强哈希函数,开发者在使用时可以选择提供 strength 和 SecureRandom 实例。strength 越大,密钥的迭代次数越多,密钥迭代次数为 2^strength。strength 取值在 4~3

    2024年02月01日
    浏览(37)
  • 一文带你迅速了解下Spring中的AOP

    AOP(Aspect Oriented Programming):面向切面编程。 面向切面编程是一种思想,其实就是对某一类事情进行统一的处理。而 SpringAOP就是一种AOP的具体实现的框架。这就好比 IOC 和 DI 一样的关系。 上述就是对登录功能进行了一个统一的处理! 除了上面的判断登录之外,还有: 统一日

    2024年02月13日
    浏览(38)
  • 一文带你快速了解Python史上最快Web框架

    【作者主页】: 吴秋霖 【作者介绍】:Python领域优质创作者、阿里云博客专家、华为云享专家。长期致力于Python与爬虫领域研究与开发工作! 【作者推荐】:对JS逆向感兴趣的朋友可以关注《爬虫JS逆向实战》,对分布式爬虫平台感兴趣的朋友可以关注《分布式爬虫平台搭建

    2024年02月05日
    浏览(51)
  • 【Linux系列P3】Linux的权限有哪些?一文带你理清!

    ​ 前言 大家好吖,欢迎来到 YY 滴 Linux系列 ,热烈欢迎! 本章主要内容面向接触过Linux的老铁,主要内容含: 欢迎订阅 YY 滴Linux专栏!更多干货持续更新!以下是传送门! 订阅专栏阅读: YY 的《Linux》系列 ❀❀❀❀❀ 【Linux系列-P1】 Linux环境的搭建 【Linux系列-P2】Linux的基

    2024年02月07日
    浏览(66)
  • spring boot中常用的安全框架 Security框架 利用Security框架实现用户登录验证token和用户授权(接口权限控制)

    spring boot中常用的安全框架 Security 和 Shiro 框架 Security 两大核心功能 认证 和 授权 重量级 Shiro 轻量级框架 不限于web 开发 在不使用安全框架的时候 一般我们利用过滤器和 aop自己实现 权限验证 用户登录 Security 实现逻辑 输入用户名和密码 提交 把提交用户名和密码封装对象

    2024年02月06日
    浏览(54)
  • 【宝藏系列】一文带你了解STM32内置的硬件功能安全属性

    对于功能安全,ST MCU 从芯片内置的硬件安全属性,经过认证的软件自检库和完备的安全文档三个层面来支持STM32用户在系统级进行开发,达到要求的功能安全等级。 下表中列出了STM32MCU内置的一些主要硬件安全属性。下面我们一起来看看这些属性在功能安全中的用处。 🌸🌸

    2024年02月10日
    浏览(36)
  • 一文带你了解Spring中存入Bean和获取Bean的方式

    上图中就是五大类注解对应的层,通过源码可以看到其他四个注解都基于@Conponent Spring既然是一个包含众多工具方法的IoC容器,它是一个控制反转的容器,所以就需要将Bean对象存入到容器中,需要用的时候从容器中获取Bean对象,下面我们来介绍下存入Bean对象。 配置了 Bean 的

    2024年02月16日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包