需要有关Web应用程序安全设计的建议

时间:2014-04-27 08:14:41

标签: spring security spring-security-ldap spring-security-acl

我正在使用Spring安全性为Web应用程序设计安全模块。使用单独的登录进行3次单独的战争(3个应用程序),部署在JBOSS服务器中。 要求是,如果用户在一个应用程序中进行了身份验证,那么他应该能够在不登录的情况下访问其他应用程序。是否可以在Web应用程序之间共享安全上下文(不同的战争不在单个EAR中)。 我们讨论了SSO,但我们正试图通过Spring安全性和App服务器的支持来实现这一目标。有什么办法吗?请提供宝贵的建议和意见。 如果您需要更多信息,请告诉我。

2 个答案:

答案 0 :(得分:0)

我最近使用SSO和Spring Security完成了这项工作,但是我编写了自己的安全过滤器,用于获取SPNEGO过滤器提供的HttpServletRequest.getRemoteUser()值。 SSO的一个方面是:大多数机制都使用Kerberos,它只能在本地桌面环境中运行。可以编写一个回退机制,将用户重定向到登录页面,但是您仍然可以解决您的问题。

另一种选择是将您的应用程序重新打包为EAR(请参阅here)。

答案 1 :(得分:0)

最简单的方法是采用通常的Spring Security身份验证(例如,基于表单的用户名/密码)和启用remember-me feature

只要所有三个应用程序都部署在同一个域上(并因此可以共享其cookie),remember-me功能将无缝地为所有应用程序工作,即一旦用户在任何应用程序上进行身份验证,她将能够访问其他人而无需重新认证。

这当然不能解决单点注销等问题,但这似乎不是你的目标。

您可以在短时间内完成此设置,并且不需要和第三方SSO组件。虽然传播标准SSO协议和专用技术往往是一种更安全的选择。