Web 容器管理安全性的常见替代方案?
Posted
技术标签:
【中文标题】Web 容器管理安全性的常见替代方案?【英文标题】:Common alternatives to web container managed security? 【发布时间】:2012-05-29 08:45:09 【问题描述】:使用 Tomcat(或 Websphere)容器管理的安全性的常见替代方法是什么?
我有一个令人不快的安全库,它从多个地方提取授权和身份验证,最初将在 Tomcat 上进行早期开发,然后在 Websphere 上进行后期开发和生产。而不是通过 JAAS 为 Tomcat 设置自定义领域所需的 hack-a-doo,然后在 WAS 上进行另一轮 hack,是否有任何常见的替代方案?
我只在 Tomcat 上做过基于领域的安全。我见过一些有趣的自制方法,例如在会话http://www.vitarara.org/cms/struts_2_cookbook/creating_a_login_interceptor 中监视用户对象。我也很好奇带有 http://host.com/view.jsp?a_wiki_page 的 wiki 页面(例如)如何设法保持角色直截了当,因为这似乎是 wiki 和 bbs 通常需要的,也许这就是我的解决方案?
有什么建议吗?
【问题讨论】:
【参考方案1】:Spring Security 提供了一种全面的、与容器无关的方法,我已在 WebSphere 和 Tomcat 上成功使用过该方法(特别是在 Tomcat 上构建/测试并在 WebSphere 上部署)。
我真正喜欢该框架的地方在于,它为您提供了一个以应用程序为中心、与源代码无关的当前用户及其在应用程序中的权限的视图。这意味着您可以从任何地方加载用户和权限,并且只需要关注配置的来源(LDAP、数据库、属性文件、内存中测试对象、SAML 断言等)
它还为您提供了许多您在 Java EE 安全性中根本没有定义的细粒度授权控制(基于 URL 和基于方法)。您可以使用正则表达式和 Ant 样式的表达式进行模式匹配,否则您将无法使用。表达式语法也相当丰富。如果您需要进行数据特定的访问控制,我们提供了 DDL 供您添加到您的数据库并直接集成到您的安全中。
Spring Security 作为过滤器运行,使用“/*”URL 映射(或您选择保护的任何映射)过滤您对 Web 容器的所有请求。
【讨论】:
谢谢,这很有用。这里的小组非常不愿意使用 Spring,但他们确实使用了 Struts2,并且由于您的回答,我能够找到一个使用 Struts 拦截器的对称解决方案。谢谢! 很高兴您找到了答案。但是,作为记录,您可以独立于 MVC 框架使用 Spring Security。所以这意味着(如果你愿意的话)你可以毫无问题地使用 Spring Security 和 Struts2。 我愿意。坦率地说,我也更愿意使用 Struts MVC,但是这些怪人不想在任何地方看到 spring jar 文件。但是他们确实希望他们的身份验证由 JAAS 支持(然后使用使用 Hibernate 的自定义登录模块)。这将是一份痛苦的合同。【参考方案2】:Spring Security 是一种流行的替代方案:
http://www.springsource.org/spring-security
【讨论】:
以上是关于Web 容器管理安全性的常见替代方案?的主要内容,如果未能解决你的问题,请参考以下文章
何时从容器管理的安全性转移到 Apache Shiro、Spring Security 等替代方案?
何时从容器管理的安全性转移到 Apache Shiro、Spring Security 等替代方案?
何时从容器管理的安全性转移到 Apache Shiro、Spring Security 等替代方案?
何时从容器管理的安全性转移到 Apache Shiro、Spring Security 等替代方案?