Spring Security 和自定义外部身份验证

Posted

技术标签:

【中文标题】Spring Security 和自定义外部身份验证【英文标题】:Spring Security and Custom External Authentication 【发布时间】:2013-02-18 15:00:11 【问题描述】:

我有这样的任务 - 将我的 Web 应用程序与外部单点登录服务集成。它是基于设置特定 cookie 并重定向回应用程序的 SSO 的自定义非标准实现。 SSO 和应用在同一个域中。

目前我正在使用 Spring Security 过滤器来检查特定 URL 上的这个 cookie。这适用于场景:

Web 应用 -> SSO[提供回调 url] -> 重定向回我的应用。

但是当用户访问提供身份验证服务的应用程序然后“跳转”到我的应用程序的任何 url 时它显然会失败(并且没有检查 cookie,因为没有触发“特殊”url)。

使用 Spring Security 解决此类问题的推荐方法是什么?

谢谢!

【问题讨论】:

【参考方案1】:

解决问题的最简单方法是实现自己的 PreAuthenticatedProcessingFilter: http://static.springsource.org/spring-security/site/docs/3.1.x/reference/springsecurity-single.html#d0e6167

您的身份验证提供商是否在 cookie 中提供用户名的问题。如果它提供了 - 你可以使用这个过滤器:http://static.springsource.org/spring-security/site/docs/3.1.x/reference/springsecurity-single.html#d0e6295

如果您需要任何其他说明,请告诉我。

最好的问候,

迈克尔

【讨论】:

享受 :) 如果您需要任何其他帮助,请告诉我。

以上是关于Spring Security 和自定义外部身份验证的主要内容,如果未能解决你的问题,请参考以下文章

spring boot spring security 基于自定义令牌的身份验证和自定义授权

具有 CAS 身份验证和自定义授权的 Spring Security

JAX-RS 和 Spring Security - 获取经过身份验证的用户

如何将对象类和自定义属性添加到 LDIF 文件?

Spring Security 3.1.1 - 自定义登录成功问题

Spring Security 自定义身份验证过滤器和授权