我的意思是需要不同:
- 登录网址
- 登出网址
- 会话时间网址
- 身份验证提供程序
- 错误页面
- css
对于不同的入口点。
这可能吗?
从 3.1.0(目前是测试版)开始,它将支持<http>
命名空间中的多个元素。
这么简短的回答:
在 3.1.x 中是的。
在 3.0.5.RELEASE 中没有。
更长的回答:
这是附加信息,请查看评论中的链接。
我曾经遇到过类似的问题,因为我有多个入口点。
IMO 的一个好方法是创建一个新的登录页面,该页面决定将哪个登录页面重定向到甚至调用其他入口点的逻辑。然后你可以将spring指向新页面。
我很确定这可以在过滤器链中完成,但我不推荐它,因为您需要大量手动编码和 bean 定义。一般来说,我不认为 3.0.5 是为多个入口点设计的。
使用多个<http../>
元素,您可以实现您想要的大部分内容,但身份验证管理器将很常见,这意味着身份验证提供程序将很常见。请参阅 @David Parks 在Spring Security 3.1.0.RC1 后所面临的问题:使用多个元素为什么我只能注册一个身份验证管理器?.
您可以看到我对类似问题的回答,例如将Spring Security 3.x 配置为具有多个入口点和使用 grails 中的外部 Web 服务对用户进行身份验证以开发自定义代码以执行特定于入口点的身份验证提供程序。这也可以在 3.0.5 中实现。
您可以在没有多个元素的情况下在 3.0.5 中实施解决方案,<http../>
但您需要开发自定义代码来处理注销和错误页面。
org.springframework.security.web.authentication.DelegatingAuthenticationEntryPoint
从 3.0.2 开始就有。它可能会有所帮助。