zoukankan      html  css  js  c++  java
  • Java安全(权限)框架

    Java安全(权限)框架 - Shiro 功能讲解 架构分析

    作者 : Stanley 罗昊

    转载请注明出处和署名,谢谢!

    简述Shiro

    Shiro出自公司Apache(阿帕奇),是java的一个安全和权限框架

    在这之前,我想各位应该也学过 SpringMvc、struts2。他们都是web的mvc框架,紧接着一些ORM框架,比如Mybatis 、Hibernate,而这个Shiro更加主流、也更加简单易用,它不但是适用于javaSE环境,也适用于javaEE环境;

    Shiro可以完成如:认证、授权、加密、会话管理、与web集成、缓存等;

    Shiro功能简介

    Authentication

    认证,说白了就是登陆,我们可以利用Shiro完成登陆,登录时的密码匹配,就是Shiro帮我们完成的

    Authorization

    授权,当我们点一个连接或一个按钮的时候,Shiro会帮我们判断你有没有这个权限;

    SessionManagement

    Shiro向我们提供的Session;

    我们在web环境下可以使用SesCryptsion,当然,这个是httpSession,如果使用Shiro的话,即便你身处非web环境下,我们也可以使用Session,那个Session,就是Shiro给我们提供的;

    Cryptography

    加密,到后面会有具体详解;

    Web Support

    可以很容易的跟,JavaEE应用进行集成;

    Caching

    可以在多线程的情况下进行授权,认证;

    Tssting

    测试

    Caching

    Shiro提供了缓存模块,让我们的运行速度更快;

    Run As

    让,已经登录的用户,以另外一个用户的身份,来操作当前的系统;

    RememberMe

    记住我

    Shiro架构

    从外部看,最主要的组件有两个:

    SecunityManager 、 Realm

    架构图讲解:

    Application Code,当应用程序去访问Shiro的时候,那么就一定会是Subject(这个就表示当前用户),比如你等没登录、如何登陆、你是不是可以访问某一个权限、都是要去搞这个Subject,它是一个门面;

    而,后面的核心是SecurityManager,它就像一个大管家一样,它管理者Shiro的各个组件;

    当我们需要访问一些安全数据的时候,比如:获取用户信息,获取权限信息,我们就需要用到这个Reaim,它相当于是一个SecrityDAO

    Shiro架构详细分析

    subject应用代码直接交互点对象是Subject,也就是说Shiro的对外API核心就是Subject。Subject代表了当前“用户”,这个用户不一定是一个具体的人,与当前应用交互的任何东西都是Subject,如网络爬虫、机器人等;

    与Subject的交互都会委托给SecurityManager才是实际的执行者

    SecurityManager:安全管理器;即所有与安全有关的操作都会与SecurityManager交互;且其管理所有Subject;可以看出他是Shiro的核心,它负责与Shiro的其他组装件进行交互,它相当于SpringMVC中的DispatcherServlet

    Realm:Shiro从Realm获取安全数据(如用户、角色、权限),就是说SecurityManager需要验证用户身份,那么它需要从Realm得到用户相应的角色/权限进行验证用户是否能进行操作;可以把Realm看成DataSource

  • 相关阅读:
    有点忙啊
    什么是协程
    HDU 1110 Equipment Box (判断一个大矩形里面能不能放小矩形)
    HDU 1155 Bungee Jumping(物理题,动能公式,弹性势能公式,重力势能公式)
    HDU 1210 Eddy's 洗牌问题(找规律,数学)
    HDU1214 圆桌会议(找规律,数学)
    HDU1215 七夕节(模拟 数学)
    HDU 1216 Assistance Required(暴力打表)
    HDU 1220 Cube(数学,找规律)
    HDU 1221 Rectangle and Circle(判断圆和矩形是不是相交)
  • 原文地址:https://www.cnblogs.com/StanleyBlogs/p/10732278.html
Copyright © 2011-2022 走看看