Spring Security 可以支持多个入口点吗?

Posted

技术标签:

【中文标题】Spring Security 可以支持多个入口点吗?【英文标题】:Can Spring Security support multiple entry points? 【发布时间】:2011-09-23 09:48:48 【问题描述】:

我的意思是需要不同:

登录网址 登出网址 会话时间网址 身份验证提供者 错误页面 CSS

针对不同的入口点。

这可能吗?

【问题讨论】:

【参考方案1】:

从 3.1.0(目前是测试版)开始,它将支持命名空间中的多个 <http> 元素。

如此简短的回答:

在 3.1.x 中是的。

在 3.0.5.RELEASE 号中。

更长的回答:

Here is additional info,请检查 cmets 中的链接。


我曾经遇到过类似的问题,因为我有多个入口点。

IMO 的一个好方法是创建一个新的登录页面,该页面决定重定向到哪个登录页面,甚至调用其他入口点的逻辑。然后你可以将spring指向新页面。

我很确定这可以在过滤器链中完成,但我不建议这样做,因为您需要大量手动编码和 bean 定义。一般来说,我不认为 3.0.5 是为多个入口点设计的。

【讨论】:

【参考方案2】:

使用多个<http../> 元素,您可以实现大部分您想要的,但身份验证管理器将很常见,这意味着身份验证提供程序将很常见。在Spring Security 3.1.0.RC1: With multiple elements why can I only register one authentication manager? 帖子中查看@David Parks 面临的问题。

您可以查看我对Configuring Spring Security 3.x to have multiple entry points 和Authenticate user using external webservice in grails 等类似问题的回答,以开发自定义代码来执行特定于入口点的身份验证提供程序。这也可以在 3.0.5 中实现。

您可以在没有多个 <http../> 元素的情况下在 3.0.5 中实施解决方案,但您需要开发自定义代码来处理注销和错误页面。

【讨论】:

你可以在 3.1.3.RELEASE 中做 是的。我在回复***.com/questions/8306063/… 时注意到了这一点【参考方案3】:

org.springframework.security.web.authentication.DelegatingAuthenticationEntryPoint 从 3.0.2 开始。 这可能会有所帮助。

【讨论】:

以上是关于Spring Security 可以支持多个入口点吗?的主要内容,如果未能解决你的问题,请参考以下文章

Spring Boot / Security - 自定义404页面

如何在 Spring Security 中指定 Open ID Realm?

在 Spring security OAUTH 中定义多个 TokenStore(s)

使用 Spring Security 定义 HTTP 路由以仅服务“内部”请求

Spring-Security-Oauth2.0浏览器端的登录项目分享

Spring Security:针对多个 LDAP 服务器和基于 DAO 的身份验证进行身份验证