Apache Shiro入门介绍

得意时要看淡,失意时要看开。不论得意失意,切莫大意;不论成功失败,切莫止步。志得意满时,需要的是淡然,给自己留一条退路;失意落魄时,需要的是泰然,给自己觅一条出路Apache Shiro入门介绍,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

概述

Apache Shiro 官网

Apache Shiro是Apache Software Foundation的顶级项目之一。
Apache Shiro是一个强大且易用的Java安全框架,发音 “shee-roh”。可以 执行身份验证(Authentication)、授权(Authorization)、密码(Cryptography)、会话管理(Session Management)、Web集成(Web Integration)、Java集成等。
使用Shiro的易于理解的API,您可以快速、轻松地获得任何应用程序,从最小的移动应用程序到最大的网络和企业应用程序。

InfoQ有提供一个迷你的电子书,可以免费下载:

https://www.infoq.com/minibooks/apache-shiro-ee-7/

介绍Shiro的文章:

What is Apache Shiro?

优点

  • 易用性:使用简单
  • 全面:没有其他的安全框架具有Apache Shiro所宣称的广泛的范围,所以它可能是您的安全需求的“一站式商店”
  • 灵活:Apache Shiro可以在任何应用环境中工作。虽然它在web、EJB和IoC环境中工作,但不需要它们。Shiro也没有要求任何规范,甚至没有很多依赖关系。
  • Web能力:Apache Shiro提供了出色的Web应用程序支持,允许您基于应用程序url和Web协议(如REST)创建灵活的安全策略,同时还提供了一组JSP库来控制页面输出
  • 可插拔:Shiro干净的API和设计模式使得它很容易与许多其他框架和应用程序集成。您将看到Shiro与Spring、Grails、Wicket、Tapestry、Mule、Apache Camel、Vaadin等框架无缝集成。
  • 支持:Apache Shiro是Apache软件基金会的一部分,该组织已被证明以其社区的最佳利益行事。项目开发和用户组有友好的用户群体随时准备提供帮助。商业公司,如Katasoft也提供专业支持和服务,如果需要。

核心概念

Subject

主体。
Subject这个词是一个安全术语,它的基本意思是“当前执行的用户”。它之所以不叫“用户”,是因为“用户”这个词通常和人联系在一起。在安全领域,术语“Subject”可以指人,也可以指第三方进程、守护进程帐户或任何类似的东西。它只是指“当前正在与软件交互的东西”。对于大多数意图和目的,你可以把它看作Shiro的“用户”概念。

您可以在代码的任何地方轻松获取Shiro主体,如下所示:

import org.apache.shiro.subject.Subject;
import org.apache.shiro.SecurityUtils;
...
Subject currentUser = SecurityUtils.getSubject();

SecurityManager

安全管理器
主体代表当前用户的安全操作,安全管理器是所有用户的安全操作。它是Shiro架构的核心,充当一种“伞形”对象,引用许多内部嵌套的安全组件,这些组件形成了对象图。然而,一旦安全管理及其内部对象图被配置好,应用程序开发人员通常会将其全部时间花费在主体API上。
每个应用程序几乎总是有一个SecurityManager实例。它本质上是一个应用单例(尽管它不需要是静态单例)。与Shiro中的几乎所有东西一样,默认的SecurityManager实现是pojo,并且可以通过任何与pojo兼容的配置机制进行配置——普通Java代码、Spring XML、YAML、.properties和.ini文件等等。基本上,可以使用任何能够实例化类和调用与javabean兼容的方法的方法。

Realms

领域。
领域充当Shiro和应用程序安全数据之间的“桥”或“连接器”。也就是说,当需要实际与安全相关数据(如用户帐户)进行交互以执行身份验证(登录)和授权(访问控制)时,Shiro会从为应用程序配置的一个或多个领域中查找其中的许多内容。
从这个意义上说,领域本质上是一个安全特定的DAO:它封装了数据源的连接细节,并使Shiro在需要时可以使用相关数据。
在配置Shiro时,必须指定至少一个用于身份验证和/或授权的域。可以配置多个领域,但至少需要一个。
Shiro提供了开箱即用的领域来连接许多安全数据源(也就是目录),如LDAP、关系数据库(JDBC)、文本配置源(如INI和属性文件)等等。
如果默认的领域不能满足您的需要,您可以插件自己的领域实现来表示自定义数据源。

核心功能

认证

认证是验证用户身份的过程。也就是说,当用户使用应用程序进行身份验证时,他们正在证明他们确实是他们所说的那个人。这有时也被称为“登录”。这是一个典型的三步过程。

  1. 收集用户的标识信息(称为主体)和身份的支持证明(称为凭据)。
  2. 向系统提交主体和凭证
  3. 如果提交的凭证与系统对该用户身份(主体)的期望相匹配,则认为该用户已通过身份验证。如果它们不匹配,则认为用户未通过身份验证。

授权

授权本质上是一种访问控制,控制用户可以访问应用程序中的哪些内容,比如资源、web页面等。

会话管理

Apache Shiro提供了安全框架是世界中独一无二的东西,在任何应用程序和任何架构层中都可用的一致会话API。

密码学

Shiro在加密方面的目标是简化和使用JDK的加密支持。
Shiro真正关注加密支持的两个领域是加密哈希(又名消息摘要)和加密密码。

Web支持

自定义过滤器。

URL-Specific过滤器链

Shiro通过其创新的URL过滤器链接功能支持特定于安全的过滤器规则。它允许您为任何匹配的URL模式指定特别的筛选器链。这意味着在使用Shiro的过滤机制来强制执行安全规则(或规则组合)方面,您有很大的灵活性——这比您仅在web.xml中定义过滤器要灵活得多。
过滤器名称(anon、user、perms、authc)是Shiro提供的与安全相关的特殊过滤器。
anon:无需认证即可访问。
authc:需要认证才可访问。
user:点击“记住我”功能可访问。

JSP标签库

Shiro还提供了一个JSP标记库,允许您根据当前主题的状态控制JSP页面的输出。

%@ taglib prefix="shiro" uri="http://shiro.apache.org/tags" %>

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/155736.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!