zoukankan      html  css  js  c++  java
  • shiro(1) 介绍

    一、什么是shiro
    (1)属性:java框架
    (2)用途:身份验证、用户授权、加密、会话管理
    (3)优点:轻量、易用


    二、三大组件
    (1)subject:代表当前主体,与当前应用交互的任何东西都是subject;
    (2)SecurityManager :安全管理器,所有有关安全的操作均与此有关。是shiro核心,负责与其他组件交互。
    (3)Realms:域。Shiro 从 Realm 获取安全数据(如用户、角色、权限),就是说 SecurityManager 要验证用户身份,那么它需要从 Realm 获取相应的用户进行比较以确定用户身份是否合法,也需要从 Realm 得到用户相应的角色/权限进行验证用户是否能进行操作。
    举个例子:

    小明,小红、小强和小刚买火车票回家,此时整个火车站(包括售票机,工作人员,火车)都属于subject,与用户进行交互。
    进入火车站时需要检票,检票人员需要核对票的有效性,发现小刚的票是假的,就拒绝他进入。核票时,需要从数据库获取信息,此时数据库就是,用于提供用户信息。
    进入候车厅后,小强突然大发雷霆,随意伤人,被巡逻的安保人员扣下。此时安保人员充当SecurityManager ,用来控制操作安全。


    三、其他组件
    Authenticator:认证器,用于用户身份确认。相当于检票人员。
    Authorizer:授权器,用于判断用户是否有权限操作。比如,小红是一等座,小明是无座,小明若是强行占座,就会被抓起来。
    Session Manager:会话管理,即用户登录后就是一次会话,在没有退出之前,它的所有信息都在会话中;小明到站后,再想上火车,就必须再买票检票。
    Cryptography:加密,保护数据的安全性,如密码加密存储到数据库,而不是明文存储;火车票上的信息都会进行加密处理,防止坏人获取。
    CacheManager:缓存管理,将用户权限数据存储在缓存,这样可以提高性能。列车员会进行用户登记,登记过一次后就不再查票了。
    Cryptography即密码管理,shiro提供了一套加密/解密的组件,方便开发。比如提供常用的散列、加/解密等功能。比如火车票上的二维码,扫码时可以获取当前车次信息。
  • 相关阅读:
    iOS: 复选框使用---第三方框架SSCheckBoxView-master
    iOS: 使用故事板和xib设置按钮圆角方法
    iOS:详解MJRefresh刷新加载更多数据的第三方库
    万不要忽视身体发出的九大求救讯号
    MapX小试
    Nginx -HTTP和反向代理服务器简单配置
    Mapinfo修改道路方向
    This version of the rendering library is more recent than your version of ADT plug-in. Please update ADT plug-in问题
    世界上超难找的药方
    合并apk和odex 为完整的apk安装文件
  • 原文地址:https://www.cnblogs.com/miys/p/10538680.html
Copyright © 2011-2022 走看看