我在运行在 tomcat 6 服务器上的客户端 JSF 应用程序中使用来自 Jasig 的 CAS(中央身份验证服务)。我想限制对应用程序的访问仅限于我的数据库中指定的用户,而不是所有可以使用该 CAS 服务进行身份验证的用户。当用户尝试登录时,我需要检查他的用户名是否也在我的数据库的表用户中,如果是 - 允许访问该应用程序。否则,我想将用户重定向到“您无权访问这部分应用程序”的页面。所以我也需要授权。在 jsf 2.0 中授权用户有什么好的方法吗?提前感谢您的任何帮助/建议。
问问题
1250 次
1 回答
0
听起来您需要在 CAS 中设计一个自定义的身份验证处理程序类。理论上,您的处理程序将扩展此 [1],执行所有必要的检查和数据库查找,然后能够返回指示用户是否可以进行身份验证的信号。
然后,您应该在 deploerConfigContext.xml 文件中引用您的自定义处理程序。
为了显示消息,您可以使用正确的消息代码引发异常,以便消息出现在登录表单上方,或者您可以更改 spring webflow 并生成一个新的视图状态,用户将被重定向到,如果他们无法访问。第一种方法更容易实现。
另一种方法是使用 persondir api 来利用 isUserInRole() 方法 [2]。
[2] https://wiki.jasig.org/pages/viewpage.action?pageId=47874068
于 2012-05-02T08:38:17.237 回答