Shiro相关术语

2019-04-20 15:58|来源: 网路

请花2分钟阅读和理解Shiro中的术语 - 这是非常重要的。这里的术语和概念在文档中的任何地方都被引用,并且将大大简化您对Shiro和一般的安全性的理解。

因为使用了一些您可能不太明白的术语,所以安全可能真的令人很困惑。下面将通过一些核心概念来更容易地理解Shiro常用的知识,在接下来的章节中会看到Shiro API如何反映它们:

  • 认证
    认证是验证主体身份的过程 - 基本上证明有人真的是他们所说的他们是谁那样。 当认证成功时,应用程序可以信任保证为应用程序期望的对象。

  • 授权
    授权,也称为访问控制,是确定用户/主题是否被允许做某事的过程。 通常通过检查和解释主体的角色和权限(见下文),然后允许或拒绝对所请求的资源或功能的访问来实现。

  • 密码
    密码是用于执行加密或解密的算法。 该算法通常依赖于称为密钥的一条信息。 并且加密基于密钥而变化的,因此如果没有它,则解密是非常困难的。
    密码有不同的变化。 块密码对通常具有固定大小的符号块进行工作,而流密码对连续的符号流进行工作。 对称密码使用相同的密钥进行加密和解密,而非对称密码使用不同的密钥。 如果非对称密码中的密钥不能从另一个密钥导出,则可以共享创建公钥/私钥对。

  • 凭据
    证书是验证用户/主体的身份的一条信息。 在认证尝试期间,一个(或多个)凭证与主体一起提交,以验证提交它们的用户/主题实际上是关联的用户。 证书通常是非常秘密的东西,只有特定用户/主体知道,诸如:密码或PGP密钥或生物特征属性或类似机制。
    这个想法是,对于主体,只有一个人会知道正确的证书与该主体“配对”。 如果当前用户/主题提供与存储在系统中的正确凭证相匹配的正确凭证,则系统可以假定并相信当前用户/主题真正是他们所说的。 信任程度随着更安全的凭证类型(例如生物特征签名>密码)而增加。

  • 加密
    密码术是通过隐藏信息或将其转换为废话来保护信息免于不受欢迎的访问的做法,因此没有人能读取它。 Shiro专注于加密技术的两个核心元素:使用公钥或私钥加密数据的密码,以及对密码等数据进行不可逆加密的哈希(也称为消息摘要)。

  • 哈希
    哈希函数是输入源(有时称为消息)的单向,不可逆转换,转换为编码的哈希值,有时称为消息摘要。 它通常用于密码,数字指纹或具有底层字节数组的数据。

  • 权限
    权限在Shiro中解释:它是一个描述应用程序中的原始功能的语句。 权限是安全策略中的最低级别构造。 他们只定义了应用程序可以做什么。不描述“谁”能够执行的操作。 权限只是一个行为的声明,没有更多。
    一些权限的示例:

    • 打开一个文件

    • 查看’/user/list‘网页

    • 打印文档

    • 删除一个用户等

  • 主体
    主体是应用程序用户(主题)的任何标识属性。 “标识属性”可以是对您的应用程序有意义的任何内容 - 用户名,姓氏,给定名称,社会安全号码,用户ID等。Shiro还引用了称为主体的主要主体的东西。主要主体是在整个应用程序中唯一标识主题的任何主体。 理想的主要主体是用户名或用户ID,它是RDBMS用户表主键。 应用程序中的用户(主题)只有一个主要主体。

  • 领域
    领域是可以访问特定于应用程序的安全数据(如用户,角色和权限)的组件。 它可以被认为是一个安全特定的DAO(数据访问对象)。 领域将这种特定于应用程序的数据转换为Shiro理解的格式,所以Shiro可以提供一个易于理解的主题编程API,无论存在多少数据源或应用程序特定的数据。
    领域通常与数据源(例如关系数据库,LDAP目录,文件系统或其他类似资源)具有1对1关联。 因此,领域接口的实现使用数据源特定的API来发现。诸如JDBC,文件IO,Hibernate或JPA或任何其他数据访问API的授权数据(角色,权限等)。

  • 角色
    角色的定义可以根据您与谁交谈。 在许多应用程序中,人们使用隐含地定义安全策略的模糊概念。 Shiro更喜欢将角色解释为一个命名的权限集合。 这是一个应用程序唯一名称,聚合一个或多个权限声明。
    这是一个比许多应用程序使用的隐式更具体的定义。 如果你选择让数据模型反映Shiro的假设,你会发现将有更多的权力来控制安全策略。

  • 会话
    会话是在一段时间内与软件系统交互的单个用户/主题相关联的有状态数据上下文。 在主题使用应用程序时,可以从会话中添加/读取/删除数据,并且应用程序可以稍后在必要时使用此数据。 当用户/主题注销应用程序或由于不活动导致超时时,会话将终止。
    对于熟悉
    HttpSession的人来说,Shiro会话的目的也是一样的,除了Shiro会话可以在任何环境中使用,即使没有Servlet容器或EJB容器可用。

  • 主题
    主题只是一个奇特的安全术语,基本上意味着应用程序用户的安全特定的“视图”。 主体并不总是需要反映一个人,虽然 - 它可以表示一个外部进程调用您的应用程序,或者可能是一个守护进程系统帐户在一段时间间歇地执行某些事情(如
    cron作业)。 它基本上是与应用程序做某事的任何实体的表示。


相关问答

更多
  • java里shiro的用法[2023-05-02]

    好在配置简单,以前做一个权限模块要写好多代码。现在spring security好像是集成了shiro的功能,实现了代码量更少,高速开发的目的。
  • java里shiro的用法[2022-07-05]

    好在配置简单,以前做一个权限模块要写好多代码。现在spring security好像是集成了shiro的功能,实现了代码量更少,高速开发的目的。
  • 多种情况会导致【循环重定向】即302报错。你提到了shiro,在shiro最常见的情况是过滤器循环触发,检查思路: 通过浏览器debug, 找到循环访问了哪个请求【状态为302】, 根据这个请求url,修改shiro配置文件中: bean名为[org.apache.shiro.spring.web.ShiroFilterFactoryBean]中 property名为[filterChainDefinitions]中的[value]对应的过滤值 当然也有可能是其他filter、controller类中的代码 ...
  • 可以参考下跟着开涛学Shiro,如果英语好,官方的文档最好了。
  • shiro和jwt区别[2022-08-06]

    不是一回事 shiro是一套权限管理框架,包括认证、授权等,在使用时直接写相应的接口就可以了,已经把底层处理都写好了 而jwt只是一种生成token的机制,所有权限处理逻辑还需要自己写
  • 求图包。。SHIRO[2022-01-28]

    此图为画师しろ(SHIRO)的单幅绘画作品 原图参考: 其他: 4L的答案,我查了下,貌似没此人物,但可以肯定,该游戏《交响乐之雨》 人设就是SHIRO 我看了下春日野穹的图,发型是有点相似,可能是同人吧。 毕竟我看到了他笔下的AIR的同人,那真的是把萌角色更加的萌化啊... 同人的精髓就是要把握原型的特征,而服装就是最能体现原型的地方,如果春日野穹也有这套黑衣服,那么就肯定是同人了
  • 您可以扩展您正在使用的域,并在doGetAuthenticationInfo(AuthenticationToken token)日期条件时覆盖方法doGetAuthenticationInfo(AuthenticationToken token) : public class DateRealm extends JdbcRealm { @Override protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToke ...
  • 重载有几个具有相同名称的函数,但参数不同。 例如 例如 void SayHi(string name) { ... } void SayHi(string, int age) {.... } 这些都是超载。 覆盖“替换”现有的函数,因此您正在使用现有函数并提供具有相同名称和相同参数的全新函数 class Person { public virtual void SayHi(string name) { // .... } } class Teenager : Pe ...
  • 我的Web应用程序将在ContextRefreshedEvent上重新加载上下文(当ApplicationContext初始化时),我重写代码以避免重新加载,并且NullPointerException消失。 虽然我不太了解逻辑,但似乎重载使sessionManager变为null。 希望有人能解释一下:-D。 My web application will reload context on ContextRefreshedEvent(when ApplicationContext get initial ...
  • 内存管理术语表 The Memory Management Glossary