如何使用 spring security 和 primefaces 处理重定向?

Posted

技术标签:

【中文标题】如何使用 spring security 和 primefaces 处理重定向?【英文标题】:How to handle redirection with spring security and primefaces? 【发布时间】:2014-07-20 01:26:58 【问题描述】:

我想要一个链接/按钮,根据 用户角色 和某个字符串 value(由 a 返回的变量)将我重定向到另一个页面控制器方法)。

因此用户无法访问该页面除非他具有适当的角色和适当的价值。

我想知道如何使用 primefaces 和 spring security 处理这种重定向(我使用的是 primefaces 4 和 spring security 3.2.3。)

谢谢。

注意:这不是登录后重定向


编辑:

我已经实现了身份验证机制... 我的问题更进一步...在用户通过身份验证并重定向到欢迎视图后,我想让他访问某个其他查看取决于 1) 他的角色和 2) 一个字符串值(他单击一个按钮并将他重定向到适当的用户界面)...这就是我想用 primefaces 和 spring security 做的事情

【问题讨论】:

您是否想过制作一个由两个步骤组成的验证过程,第一个步骤基于您的控制器上的字符串值,第二个步骤由 spring security 处理抛出 Role_USER @oussama.elhadri 能否详细说明如何实施这两个步骤 那些字符串值是静态的还是动态的? @oussama.elhadri 它是动态的......实际上它是来自数据表行的值 【参考方案1】:

这里的这篇文章解释了用户登录here后如何处理重定向

您需要创建自己的 AuthenticationSuccessHandler 并使用它进行注入。

<form-login login-page='/login.html'
            authentication-failure-url="/login.html?error=true"
            authentication-success-handler-ref="myAuthenticationSuccessHandler"/>

<logout/> 

...

public class MySimpleUrlAuthenticationSuccessHandler implements AuthenticationSuccessHandler..

【讨论】:

感谢您的回复。但是我已经实现了身份验证机制......我的问题更进一步......在用户通过身份验证并重定向到欢迎视图后,我想让他访问某个其他视图,具体取决于 1)他的角色 2)一个字符串值..(即:他单击一个按钮并将他重定向到适当的用户界面)...这就是我想要使用 primefaces 和 spring security 您仍然指定身份验证处理!这实际上不是我的问题...我在登录后已经完成了重定向。我的问题是:登录后,用户被重定向到一个页面,在那里他可以看到所有相关的“模块”。我希望他,当他点击一个模块(Primefaces 按钮)时,查看其详细信息,他被重定向到模块详细信息页面......但我想在重定向之前检查,如果他有权查看此页面 =如果他有那个特定模块的特定角色.. 如果此按钮单击与功能相关,您可以使用注释 @PreAuthorize("hasRole('ROLE_USER')") 来处理授权,或者我认为您应该创建一个自定义过滤器。

以上是关于如何使用 spring security 和 primefaces 处理重定向?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Spring-Security 3 和 Hibernate 4 将 spring security xml 配置 hibernate 转换为 java config

如何使用spring-security通过用户名和密码登录?

如何使用 spring-security 和 jQuery 处理过期会话?

如何使用 Spring Security 和 Angularjs 保护 Spring Rest 服务?

如何使用带有多个过滤器和 Spring Security 的 Spring DelegatingFilterProxy?

Spring Security 和 Shiro 该如何选择?