2010-05-24 73 views
2

我试图搜索与我的问题相关的任何以前的帖子,但无法找到任何。我有一个场景,在页面处理3个不同的场景,其中一个不工作。此页面根据用户是否经过身份验证或匿名返回不同的内容。春季安全 - 根据用户角色提供不同内容的同一页

本地主机:8080 /对myApp/muUrl试验= authenticatedContent - >用于方案1 本地主机:8080 /对myApp/muUrl试验= anonymousContent - >用于方案3 情景:

1)经过身份验证的用户访问网页网址 - 用户显示正确的信息。正常工作

2)匿名用户访问页面URL,其中包含需要验证的参数 - 如果是匿名用户,则对他们正在访问的内容进行二级检查。例如,基于GET参数,有定制逻辑来确定用户是否必须被认证。在这种情况下,页面被重定向到登录页面(工作正常)。

3)匿名用户访问页面网址的参数,不需要认证 - 在这种情况下,我得到了SAvedRequest和重定向到URL,使我无限循环。

我是否缺少一些非常明显的内容,或者AuthenticationProcessFilterEntryPoint中有一种方法可以说“不要重定向到登录页面,而是处理它”?

谢谢。

+0

我遇到了类似的问题。你有没有找到解决这个问题的办法?如果是这样,不要犹豫,在这里分享。 – balteo 2012-09-26 12:01:06

回答

0

我终于找到了解决方案(有人在春季论坛上向我推荐了这个解决方案)。 的想法是这里描述使用@PreAuthorize注释中的控制器:see here

见代码示例如下:

@RequestMapping("/") 
@PreAuthorize("isAuthenticated()") 
public String authenticatedHomePage() { 
    return "authenticatedHomePage"; 
} 

@RequestMapping("/") 
public String homePage() { 
    return "homePage"; 
}