Spring Security:同时授权两个或多个 Web 应用程序

Posted

技术标签:

【中文标题】Spring Security:同时授权两个或多个 Web 应用程序【英文标题】:Spring Security: authorize on two or more web applications simultaneously 【发布时间】:2012-07-24 22:42:14 【问题描述】:

您能否给我一个提示,如何同时在几个 Web 应用程序上授权用户?

我有:

耳朵 WAR 1 (example.com/) 战争 2 (example.com/shop/) ... WAR n (example.com/forum/)

每个 WAR 都是基于 Spring MVC (+Security) 的应用程序。用户在 WAR 1 上被认证和授权。当他切换到任何其他 WAR 时,他必须再次通过认证。如何绕过?

【问题讨论】:

【参考方案1】:

您应该为此使用 spring security 的 CAS 功能。

【讨论】:

CAS 很好,通过过于重量级的解决方案,我相信这只是 Spring Sequrity 配置问题。但是如果找不到更简单的东西就会使用CAS。 另一个简单的解决方案(hack!!)您可以将一个应用程序的凭据信息存储到 cookie 中,并强制另一个应用程序使用 remember-me 自动登录。但你应该注意直接登录 哇,这是一个有趣的解决方案。 Jigar,我会这样打破标准的“记住我”功能吗? 是的,因为当您从 app1 显式写入 cookie 并导航到 app2 时,它可以工作,但是当用户关闭浏览器并尝试直接打开 app2 时,即使他没有要求记住,他也会直接登录-我。为了解决这个问题,你必须在 cookie 中存储一些额外的信息,比如天气这个 cookie 是由 spring-security 或 app 生成的。然后扩展 spring security remember-me 身份验证过程并验证 cookie 和 explicty 字段。 好的。在尝试了一些可能的解决方案(包括:Tomcat SSO Valve、OAuth for Spring Security、CAS、“remember-me”cookie 和前端重定向器)之后,CAS 赢了。在所有错误的决定中,必须选择最不坏的决定。

以上是关于Spring Security:同时授权两个或多个 Web 应用程序的主要内容,如果未能解决你的问题,请参考以下文章

用于非授权连接的 Spring Security REST Api

在 Spring Security 中保护两个或多个 /** url

仅使用 Spring-Security(或)Spring 进行授权

Spring Security应用开发(18)基于方法的授权过滤

Spring Security:如何在使用多个“http”元素时为给定 URL 授权用户?

基于spring-security-oauth2搭建授权服务器