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

  • 相关阅读:
    ASP.NET Core 中间件 中间件(Middleware)和过滤器(Filter)的区别
    ASP.NET Core 中间件详解及项目实战
    开源项目1:某大学校友管理系统
    web安全浅析
    p2p网贷平台设计简析
    一些常见的并且比较难解决的设计问题
    CentOS 新增swap交换空间
    策略模式
    Centos6.4 本地yum源配置
    Linux(CentOs6.4)安装Git
  • 原文地址:https://www.cnblogs.com/StanleyBlogs/p/10732278.html
Copyright © 2011-2022 走看看