您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > Apache_Shiro_reference(中文版)
ApacheShiroReferenceDocumentationIntroductiontoApacheShiroWhatisApacheShiro?ApacheShiro是一个强大而灵活的开源安全框架,它干净利落地处理身份认证,授权,企业会话管理和加密。ApacheShiro的首要目标是易于使用和理解。安全有时候是很复杂的,甚至是痛苦的,但它没有必要这样。框架应该尽可能掩盖复杂的地方,露出一个干净而直观的API,来简化开发人员在使他们的应用程序安全上的努力。以下是你可以用ApacheShiro所做的事情:验证用户来核实他们的身份对用户执行访问控制,如:判断用户是否被分配了一个确定的安全角色判断用户是否被允许做某事在任何环境下使用SessionAPI,即使没有Web或EJB容器。在身份验证,访问控制期间或在会话的生命周期,对事件作出反应。聚集一个或多个用户安全数据的数据源,并作为一个单一的复合用户“视图”。启用单点登录(SSO)功能。为没有关联到登录的用户启用RememberMe服务…以及更多——全部集成到紧密结合的易于使用的API中。Shiro视图在所有应用程序环境下实现这些目标——从最简单的命令行应用程序到最大的企业应用,不强制依赖其他第三方框架,容器,或应用服务器。当然,该项目的目标是尽可能地融入到这些环境,但它能够在任何环境下立即可用。ApacheShiroFeaturesApacheShiro是一个拥有许多功能的综合性的程序安全框架。下面的图表展示了Shiro的重点,并且这个参考手册也会与之类似的被组织起来:Shiro把Shiro开发团队称为“应用程序的四大基石”——身份验证,授权,会话管理和加密作为其目标。Authentication:有时也简称为“登录”,这是一个证明用户是他们所说的他们是谁的行为。Authorization:访问控制的过程,也就是绝对“谁”去访问“什么”。SessionManagement:管理用户特定的会话,即使在非Web或EJB应用程序。Cryptography:通过使用加密算法保持数据安全同时易于使用。也提供了额外的功能来支持和加强在不同环境下所关注的方面,尤其是以下这些:WebSupport:Shiro的web支持的API能够轻松地帮助保护Web应用程序。Caching:缓存是ApacheShiro中的第一层公民,来确保安全操作快速而又高效。Concurrency:ApacheShiro利用它的并发特性来支持多线程应用程序。Testing:测试支持的存在来帮助你编写单元测试和集成测试,并确保你的能够如预期的一样安全。RunAs:一个允许用户假设为另一个用户身份(如果允许)的功能,有时候在管理脚本很有用。RememberMe:在会话中记住用户的身份,所以他们只需要在强制时候登录。ApacheShiroTutorialYourFirstApacheShiroApplication如果你从未使用过ApacheShiro,这个简短的教程将会向您展示如何建立一个由ApacheShiro担保的初始的及非常简单的应用程序。一路上我们将讨论Shiro的核心概念来帮助你熟悉Shiro的设计和API。当你遵循本教程时,如果你确实不想编辑文件,你可以得到一个几乎相同的实例应用程序并按照你的意愿引用它。选择一个位置:在ApacheShiro的版本控制库:在ApacheShiro的源代码的samples/quickstart目录。该源代码在Download页面提供下载。Setup在这个简单的示例中,我们将创建一个非常简单的命令行应用程序,它将会运行并迅速退出,这样你能够获得对Shiro的API的感受。AnyApplicationApacheShiro从开始的那天起就被设计成能够支持任何应用程序——从最小的命令行应用程序到最大的群集Web应用程序。即使我们为该教程创建的是一个简单的应用,了解相同的使用模式适用于无论你的应用程序是怎样创建的及它被部署到哪里。该教程需要Java1.5及更高本。我们也使用ApacheMaven作为我们的构建工具,但当然这不是使用ApacheShiro所必需的。你可以获取Shiro的jar包并按你喜欢的方式合并到你的应用程序,例如可能是一ApacheAnt和Ivy。对于本教程,请确保你正在使用Maven2.2.1或更高版本。你应该能够键入mvn-version命令行提示符,并看到与下面类似的东西:现在,在你的文件系统上创建一个新的目录,例如,shiro-tutorial并在该目录下保存下面的Mavenpom.xml文件:pom.xml?xmlversion=1.0encoding=UTF-8?projectxmlns=:xsi=:schemaLocation=://maven.apache.org/maven-v4_0_0.xsdmodelVersion4.0.0/moderVersiongroupIdorg.apache.shiro.tutorials/groupIdartifactIdshiro-tutorial/artifactIdversion1.0.0-SNAPSHOT/versionnameFirstApacheShiroApplication/namepackagingjar/packagingpropertiesproject.build.sourceEncodingUTF-8/project.build.sourceEncoding/propertiesbuildpluginsplugingroupIdorg.apache.maven.plugins/groupIdartifactIdmaven-compiler-plugin/artifactIdversion2.0.2/versionconfigurationsource1.5/sourcetarget1.5/targetencoding${project.build.sourceEncoding}/encoding/configuration/plugin!--Thispluginisonlytotestrunourlittleapplication.ItisnotneededinmostShiro-enabledapplications:--plugingroupIdorg.codehaus.mojo/groupIdartifactIdexec-maven-plugin/artifactIdversion1.1/versionexecutionsexecutiongoalsgoaljava/goal/goals/execution/executionsconfigurationclasspathScopetest/classpathScopemainClassTutorial/mainClass/configuration/plugin/plugins/builddependenciesdependencygroupIdorg.apache.shiro/groupIdartifactIdshiro-core/artifactIdversion1.1.0/version/dependency!--ShirouseSLF4Jforlogging.We'llusethe'simple'bindinginthisexampleapp.See我们将运行一个简单的命令行应用程序,因此,我们需要创建一个拥有publicstaticvoidmain(String[]args)方法的Java类。在包含你pom.xml文件的同样目录下,创建src/main/java子目录。在src/main/java目录下创建具有下面内容的Tutorial.java文件:src/main/java/Tutorial.javaimportorg.apache.shiro.SecurityUtils;importorg.apache.shiro.authc.*;importorg.apache.shiro.config.IniSecurityManagerFactory;importorg.apache.shiro.mgt.SecurityManager;importorg.apache.shiro.session.Session;importorg.apache.shiro.subject.Subject;importorg.apache.shiro.util.Factory;importorg.slf4j.Logger;importorg.slf4j.LoggerFactory;publicclassTutorial{privatestaticfinaltransientLoggerlog=LoggerFacutory.getLogger(Tutorial.class);publicstaticvoidmain(String[]args){log.info(MyFirstApacheShiroApplication);System.exit(0);}}现在不必担心import语句——我们不久将会涉及到它们。但现在,我们得有一个命令行应用程序“外形”。该程序所能够做到全部事情是打印出文本MyFirstApacheShiroApplication并退出。TestRun要试用我们的教程应用程序,请在你的教程项目的根目录下执行以下的命令提示符,并键入以下内容:mvncompileexec:java然后你将看到我们的little教程“程序”运行并退出。你应该会看到与下面相似的一些东西(注意粗体文本,它显示了我们的输出):RuntheApplicationlhazlewood:~/projects/shiro-tutorial$mvncompileexec:java...abunchofMavenoutput...1[Tutorial.main()]INFOTutorial-MyFirstApacheShiroApplicationlhazlewood:~/projects/shiro-tutorial\$我们已经验证了该程序运行成功——现在让我们启用ApacheShiro。当我们继续本教程的时候,你可以在每次我们添加一些代码后运行mvncompileexec:java来观察我们变化后的结果。EnableShiro在应用程序中启用Shiro最先要明白的事情是几乎在Shiro中的每个东西都与一个名为SecurityManager的主要的/核心的组件有关。对于那些熟悉Java安全的人来说,这是Shiro的SecurityManager概念——它不等同于java.la
本文标题:Apache_Shiro_reference(中文版)
链接地址:https://www.777doc.com/doc-5196770 .html