【问题标题】:Spring security - same page to deliver different content based on user roleSpring security - 同一页面根据用户角色提供不同的内容
【发布时间】:2012-09-27 01:15:30
【问题描述】:

我尝试搜索与我的问题相关的任何以前的帖子,但找不到任何帖子。我有一个场景,其中页面处理 3 个不同的场景,其中一个不工作。此页面根据用户是经过身份验证还是匿名返回不同的内容。

localhost:8080/myApp/muUrl?test=authenticatedContent -> 用于场景 1 和 2 localhost:8080/myApp/muUrl?test=anonymousContent -> 用于场景 3 场景:

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

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

3) 匿名用户使用不需要身份验证的参数访问页面 URL - 在这种情况下,我得到 SAvedRequest 并重定向到将我带入无限循环的 URL。

我是否遗漏了一些非常明显的东西,或者 AuthenticationProcessFilterEntryPoint 中是否有办法说“不要重定向到登录页面但要处理它”?

谢谢。

【问题讨论】:

  • 我遇到了类似的问题。你找到解决这个问题的方法了吗?如果是,请不要犹豫,在这里分享。

标签: spring spring-security


【解决方案1】:

我终于找到了解决方案(有人在 Spring 论坛上向我提出了建议)。 这个想法是在控制器中使用@PreAuthorize 注释,如下所述:see here

参见下面的代码示例:

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

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

【讨论】:

    猜你喜欢
    • 2013-01-18
    • 1970-01-01
    • 2021-08-03
    • 2015-07-04
    • 1970-01-01
    • 2014-10-19
    • 2017-12-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多