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

时间:2011-06-27 10:33:02

标签: spring-security entry-point

我的意思是需要不同的东西:

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

用于不同的切入点。

这可能吗?

3 个答案:

答案 0 :(得分:6)

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

如此简短的回答:

3.1.x是的。

在3.0.5.RELEASE no。

更长的aswer:

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


我有一次类似的问题,因为我有多个入口点。

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

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

答案 1 :(得分:1)

使用多个<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 pointsAuthenticate user using external webservice in grails,以开发自定义代码以执行特定于入口点的身份验证提供程序。这也可以在3.0.5中实现。

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

答案 2 :(得分:1)

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