0

我们正在使用 Spring Security,它在单个 Web 应用程序中运行良好。现在,我需要创建另一个具有 Spring 安全性的 Web 应用程序。在第一个应用程序中,用户可以出售他/她的东西(例如 EBay)。我现在创建的第二个应用程序,它是为一般用户,他可以保存他的一般偏好,搜索,保存他看过的一些项目等。他可能/可能不是现有用户。所以这两个用户之间的区别是: 用户 1(现有用户):可以发布他的东西进行销售。用户 2:他/她应该能够登录。保存他/她的一般活动等,如果他/她想出售他/她的物品,他/她需要通过额外的步骤进行验证。

由于某些原因,所有这些都不能在一个应用程序中完成。我的问题是如何处理安全问题?我应该为每个应用程序创建单独的安全过滤器,还是有办法使用可以管理这两个应用程序的通用安全实现。请提供您的反馈,我将不胜感激。

4

1 回答 1

0

如果您将这两个组件包装在两个不同的 Web 应用程序中,每个组件都将拥有自己的 Spring Security Web 过滤器基础设施。因此,原则上每个 Web 应用程序都会有一个安全会话,由您使用的任何身份验证系统提供支持。如果您使用 JDBC,则用户必须登录两次。

如果您希望您的客户只登录一次,例如,您可以使用基于令牌的系统。当您从 webapp 1 交叉链接到 webapp 2 时,您可以将链接连接到重定向 servlet。然后,servlet 生成一个令牌,将其保存在数据库中,并将带有 url 中令牌的用户转发到另一个 web 应用程序。在 Spring Security 中,您可以实现自己的PRE_AUTH_FILTER读取令牌,验证它是否保留在数据库中。出于安全原因,您应该只使用这些令牌一次。

于 2013-10-08T08:06:44.443 回答