使用Acegi保护Java应用程序,第3部分: 实现对Java对象的访问控制 - 编程入门网
器配置包含三个需要进行配置的属性,可以保护对 Java bean 的访问:authenticationManager、accessDecisionManager 和 objectDefinitionSource。
回忆一下,您在本系列第 1 部分的 配置身份验证处理过滤器 中曾对 authenticationManager 属性进行了配置。authenticationManager 属性的作用 是对用户进行身份验证。 您在本系列的第二篇文章中了解了 accessDecisionManager 属性。这个访问 决策管理器负责制定授权决策。在允许对一个安全 bean 进行访问之前,方法安 全拦截器使用 authenticationManager 和 accessDecisionManager 属性对用户 进行身份验证和授权。 现在查看 清单 5 中配置的 objectDefinitionSource 属性。它类似于第 1 部分中出现的 objectDefinitionSource 属性。以前的 objectDefinitionSource 包含类似于 /protected/* 和 /** 这样的 URL,清单 5 中的 objectDefinitionSource 属性指定类和方法名;例如, sample.PrivateCatalog 是之前执行过代理的类的名称,而 getData 是您希望 对其控制用户访问的方法的名字。 当用户访问 PrivateCatalog bean 的 getData() 方法时,控制权将自动传 递给拦截器。拦截器使用 Acegi 框架检查用户的业务角色是否为 ROLE_HEAD_OF_ENGINEERING(特定于本文的示例)。如果是的话,拦截器将允许 对 getData() 方法进行访问。如果拦截器发现用户角色不是 ROLE_HEAD_OF_ENGINEERING,则拒绝访问。 下一节将查看一个示例 Acegi 应用程序,它将实现您目前所了解的所有概念 。 使用Acegi保护Java应用程序,第3部分: 实现对Java对象的访问控制(7)时间:2011-09-07 ibm Bilal Siddiqui示例 Acegi 应用程序 本文的 下载源代码 包含了一个名为 AcegiMethodSecurity 的示例应用程序 ,可按照以下方法进行配置和部署: 使用用户信息填充 LDAP 服务器。下载的示例应用程序 包含一个 LDIF 文件 ,其中含有预备装载到 LDAP 服务器的用户信息。关于如何将 LDIF 文件导入到 LDAP 服务器,请参考第 2 部分的 “填充服务器” 一节。注意,该应用程序涉 及与第 2 部分相同的用户(alice、bob 和 specialUser)。 将本文下载源代码中的 acegiMethodSecurity.war 文件复制到 Tomcat 安装 目录中的 webapps 目录。 将 Acegi 的 jar 文件复制到示例应用程序的 WEB-INF/lib 文件夹。(有关 内容请参考第 1 部分的 “部署和运行应用程序” 一节。 ) 下载 cglib-full-2.0.2.jar 文件并将其复制到示例应用程序的 WEB- INF/lib 文件夹。 启动 Tomcat 并尝试运行示例应用程序。 运行示例应用程序 通过从浏览器访问 http://localhost:8080/acegiMethodSecurity URL 可调 用示例应用程序。AcegiMethodSecurity 显示的索引页面包含两个链接 (Catalog 和 Login),如图 2 所示: 图 2. 示例应用程序的主页面 当单击应用程序的 Catalog 链接时,它将要求您进行登录。如果以 alice 或 specialUser 的身份进行登录,示例应用程序将提供完整的 类别,包括公有 数据和私有数据。这是因为在 清单 5 中,您对方法安全性拦截器进行了配置, 允许用户使用 ROLE_HEAD_OF_ENGINEERING 访问私有类别,而 alice 和 specialUser 都具有该访问权。另一方面,如果您以 bob 的身份登录,示例应 用程序将仅显示公有数据。 使用Acegi保护Java应用程序,第3部分: 实现对Java对象的访问控制(8)时间:2011-09-07 ibm Bilal Siddiqui为通过身份验证的用户分配额外角色 本节将演示经过增强的示例应用程序。增强后的示例应用程序将展示 Acegi 如何使您能够在运行时向通过身份验证的用户临时分配额外角色。 当安全 bean(例如 清单 3 的 privateCatalog bean)要访问一个原创资源 时, |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |