SpringSecurity(安全)、Shiro简介

在web开发中,安全第一位!过滤器,拦截器~
开发网站,安全应该在什么时候考虑?

  • 漏洞,隐私泄漏~
  • 架构一旦确定~
    shiro、SpringSecurity,这两个很像,除了类不一样,名字不一样;
    认证,授权(每个用户都有哪些权限)
  • 功能权限
  • 访问权限
  • 菜单权限
  • …拦截器,过滤器:大量的原生代码~冗余
    AOP:横切~配置类

1、Spring Security

简介
Spring Security是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架。它提供了一组可以在Spring应用上下文中配置的Bean,充分利用了Spring IoC,DI(控制反转Inversion of Control ,DI:Dependency Injection 依赖注入)和AOP(面向切面编程)功能,为应用系统提供声明式的安全访问控制功能,减少了为企业系统安全控制编写大量重复代码的工作。

  • WebSecurityConfigurerAdapter:自定义Security策略
  • AuthenticationManagerBuilder:自定义认证策略
  • @EnableWebSecurity:开启WebSecurity模式,@Enablexxxxx开启某个功能
    Spring Security的两个主要目标是“认证”和“授权”(访问控制)
    “认证”(Authentication)
    “授权”(Authorization)
    这个概念是互通的,而不是只在Spring Security中存在
    参考官网:Spring-Security找到对应的帮助文档

2、Shiro简介

2.1、什么是Shiro?

  • Apache Shiro是一个Java的安全(权限)框架。
  • Shiro可以非常容易的开发出足够好的应用,其不仅可以用在JavaSE环境,也可以用在JavaEE环境。
  • Shiro可以完成认证,授权,加密,会话管理,Web集成,缓存等。
  • 下载地址:Shiro官网

Shiro

  1. 导入依赖
  2. 配置文件
    自定义Realm继承AuthorizingRealm、重写doGetAuthorizationInfo方法
    在这里插入图片描述
    在这里插入图片描述

过滤
允许用户访问自己有权限的资源

/*
anon:无需认证就可以访问
authc:必须认证了才能访问
user:必须拥有 记住我 功能才能用
perms:拥有对某个资源的权限才能访问
role:拥有某个角色权限才能访问
*/
Map<String,String> filterMap = new LinkedHashMap<>();
filterMap.put("/user/add","authc");
bean.setFilterChainDefinitionMap(filterMap);
  1. HelloWord
    Spring Secutiry-都有
//获得 当前用户
Subject currentUser = securityUtils.getSubject();
//用户获得session
Session session = currentUser.getSession();
//判断用户是否被认证
currentUser.isAuthenticated()
//判断用户是否拥有这个角色
currentUser.hasRole()
//粗粒度
currentUser.isPermitted()
//注销
currentUser.logout();

401 未授权

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Spring SecurityShiro都是Java领域中常用的安全框架,用于应用程序的身份验证和授权。它们提供了一些功能来保护应用程序的安全性,但在实现和使用上有一些区别。 1. Spring Security是一个基于Spring框架的安全解决方案,它提供了一套完整的认证和授权机制。它可以与Spring框架无缝集成,支持灵活的配置和扩展。Spring Security提供了许多内置的认证和授权特性,例如基于角色的访问控制、记住我功能、并发会话管理等。 2. Shiro是一个独立的安全框架,它可以与任何Java应用程序集成,不依赖于任何特定的框架。Shiro提供了简单易用的API,可以处理身份验证、授权、会话管理和密码加密等。与Spring Security不同,Shiro更加灵活,可以根据需求进行自定义配置。 在比较Spring SecurityShiro时,有几个方面需要考虑: 1. 集成和依赖:Spring SecuritySpring框架的一部分,与其他Spring组件集成非常方便。而Shiro是一个独立的框架,可以与任何Java应用程序集成。 2. 功能和扩展性:Spring Security提供了许多内置的认证和授权特性,并且具有强大的扩展性,可以满足大多数应用程序的需求。Shiro相对而言更加灵活,可以根据具体需求进行自定义配置。 3. 学习曲线和复杂性:Spring Security相对复杂一些,需要熟悉Spring框架的相关概念和配置。Shiro则相对简单,学习曲线较为平缓。 4. 社区支持和文档资料:Spring Security是一个非常流行的框架,有着庞大的社区支持和丰富的文档资料。Shiro虽然没有Spring Security那么大的社区,但也有一定的支持和文档资源可供参考。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

RYGAR

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值