框架(四)安全

    xiaoxiao2025-04-15  14

    只要有用户参与的系统一般都要有权限管理,权限管理实现对用户访问系统的控制,按照安全规则或者安全策略控制用户可以访问而且只能访问自己被授权的资源(url)。权限管理包括用户认证和授权两部分。 关键对象 subject:主体,理解为用户,可能是程序,都要去访问系统的资源,系统需要对subject进行身份认证; principal:身份信息,通常是唯一的,一个主体还有多个身份信息,但是都有一个主身份信息(primary principal); credential:凭证信息,可以是密码 、证书、指纹。 主体在进行身份认证时需要提供身份信息和凭证信息

    授权的过程w[who]:subject; w[what]:Resource; w[how]:Permission; 权限控制{基于角色,基于资源} 实现粗粒度和细粒度权限管理:粗粒度权限管理,对资源类型的权限管理。细粒度权限管理,对资源实例的权限管理。资源实例就资源类型的具体化。细粒度权限管理就是数据级别的权限管理。细粒度权限管理在业务层去控制。

    Spring security

    总结 Spring security除了能和Spring更好的整合外,其它的没有什么太明显的优点。而且显得太笨重了。 一大堆的Filter层层过滤,一个简单的请求,最少得经过它的8个Filter左右,让人很不爽。没有shiro使用简单。shiro不依赖于spring,shiro不仅可以实现 web应用的权限管理,还可以实现c/s系统,分布式系统权限管理,shiro属于轻量框架,越来越多企业项目开始使用shiro。

    Shiro Authentication:身份认证/登录,验证用户是不是拥有相应的身份。 Authorization:授权,即权限验证,验证某个已认证的用户是否拥有某个权限;即判断用户是否能做事情,常见的如:验证某个用户是否拥有某个角色。或者细粒度的验证某个用户对某个资源是否具有某个权限。 Session Manager:会话管理,即用户登录后就是一次会话,在没有退出之前,它的所有信息都在会话中;会话可以是普通JavaSE环境的,也可以是如Web环境的。 Cryptography:加密,保护数据的安全性,如密码加密存储到数据库,而不是明文存储。 Web Support:Web支持,可以非常容易的集成到Web环境。 Caching:缓存,比如用户登录后,其用户信息、拥有的角色/权限不必每次去查,这样可以提高效率。 Concurrency:shiro支持多线程应用的并发验证,即如在一个线程中开启另一个线程,能把权限自动传播过去。 Testing:提供测试支持。 Run As:允许一个用户假装为另一个用户(如果他们允许)的身份进行访问。 Remember Me:记住我,这个是非常常见的功能,即一次登录后,下次再来的话不用登录了。

    Shiro(Jeesite)

    转载请注明原文地址: https://ju.6miu.com/read-1298083.html
    最新回复(0)