我试图搜索与我的问题相关的任何以前的帖子,但无法找到任何。我有一个场景,页面处理3个不同的场景,其中一个不起作用。此页面返回不同的内容,具体取决于用户是否经过身份验证或匿名。
localhost:8080 / myApp / muUrl?test = authenticatedContent - >用于场景1& 2 localhost:8080 / myApp / muUrl?test = anonymousContent - >用于场景3 情形:
1)经过身份验证的用户访问页面网址 - 用户显示正确的信息。工作正常
2)匿名用户使用需要身份验证的参数访问页面URL - 如果是匿名的,则对他们正在访问的内容进行第二级检查。例如,基于GET参数,有自定义逻辑来确定是否必须对用户进行身份验证。在这种情况下,页面被重定向到登录页面(WORKS罚款)。
3)匿名用户使用不需要身份验证的参数访问页面URL - 在这种情况下,我获得SAvedRequest并重定向到URL,这将带我进入无限循环。
我是否遗漏了一些非常明显的事情,或者在AuthenticationProcessFilterEntryPoint中是否有办法说“不要重定向到LOGIN页面但是要处理它”?
感谢。
答案 0 :(得分:0)
我终于找到了一个解决方案(有人在Spring论坛上向我建议)。
我们的想法是在控制器中使用@PreAuthorize
注释,如下所述:see here
请参阅下面的代码示例:
@RequestMapping("/")
@PreAuthorize("isAuthenticated()")
public String authenticatedHomePage() {
return "authenticatedHomePage";
}
@RequestMapping("/")
public String homePage() {
return "homePage";
}