我们正在使用Spring Security,它在单个Web应用程序中运行良好。现在,我需要使用Spring安全性创建另一个Web应用程序。在第一个应用程序中,用户可以出售他/她的东西(例如eBay)。我现在创建的第二个应用程序,它适用于一般用户,他可以保存他的一般偏好,搜索,保存他看过的一些项目等。他可能/可能不是现有用户。所以两个用户之间的区别是: 用户1(现有用户):可以发布他的东西出售。 用户2:他/她应该能够登录。保存他的一般活动等。如果他/她想要出售他/她的物品,他/她需要通过额外的步骤进行验证。
由于某些原因,所有这些都不能在一个应用程序中完成。我的问题是如何处理安全问题?我应该为每个应用程序创建单独的安全筛选器,还是可以使用可以管理这两个应用程序的通用安全实现。请提供您的反馈意见,我真的很感激。
答案 0 :(得分:0)
如果将两个组件都包装在两个不同的Web应用程序中,则每个组件都有自己的Spring安全Web过滤器基础结构。 因此,原则上每个Web应用程序都会有一个安全会话,由您使用的任何身份验证系统提供支持。 如果您使用JDBC,则用户必须登录两次。
如果您希望您的客户只登录一次,您可以使用基于令牌的系统。 当您从webapp 1交叉链接到webapp 2时,您可以将链接挂钩到重定向servlet。 然后,servlet生成一个令牌,将其持久保存在数据库中,并使用url中的令牌将用户转发给另一个webapp。 在spring security中,您可以实现自己的PRE_AUTH_FILTER,它会读取令牌,验证它是否在数据库中持久化。 出于安全考虑,您应该只使用这些令牌。