【发布时间】:2011-06-17 05:33:35
【问题描述】:
这不是一个简单的问题..所以让我详细解释一下......
背景: 在我的 grails 应用程序中,我有这个映射:
class UrlMappings {
static mappings = {
"/$storeId/$controller/$action?/$id?"
...
}
}
这意味着我的应用程序将处理的所有 url 都有前面的 url 参数“storeId”。所有控制器都将使用此参数来呈现内容并执行其他操作...
我也有带注释的控制器
@Secured(['IS_AUTHENTICATED_REMEMBERED'])
class SomeController {
def index = {
// ...
}
}
假设用户正在尝试访问此页面:
/555/some/index
如果这是未经身份验证的用户,安全插件会将他重定向到
/login/auth
问题是: 当 spring-security 将重定向到此页面时,用户将看到 404。这是因为登录控制器将仅处理 url 之类的
/555/login/auth
问题是: 我应该怎么做才能动态构建这个 url?
附言 原来:
- 有配置参数 弹簧安全,称为 “auth.loginFormUrl”。但这只是 静态文本。我需要建立这个 url 基于什么 url 影响了这个 重定向
- 重定向完成(我不是 100% 当然)在 org.springframework.security.web.authentication.LoginUrlAuthenticationEntryPoint#commence。 但是如何覆盖它呢?
【问题讨论】: