CAS身份验证和限制指定用户的访问权限

时间:2010-10-24 13:32:27

标签: authentication authorization jsf-2 cas

我在tomcat 6服务器上运行的客户端JSF应用程序中使用来自Jasig的CAS(中央身份验证服务)。我想限制对我的数据库中指定的用户的访问权限,而不是所有可以使用该CAS服务进行身份验证的用户。当用户尝试登录时,我需要检查他的用户名是否也在我的数据库表用户中,如果是 - 允许访问该应用程序。否则,我想将用户重定向到“您无权访问该应用程序的这一部分”页面。所以我也需要授权。有没有一种很好的方法来授权jsf 2.0中的用户?提前感谢您的任何帮助/建议。

1 个答案:

答案 0 :(得分:0)

听起来您需要在CAS中设计自定义身份验证处理程序类。理论上,你的处理程序会扩展这个[1],执行所有必要的检查和数据库查找,然后能够返回一个信号,指示用户是否可以authN。

然后,您应该在deploerConfigContext.xml文件中引用自定义处理程序。

为了显示消息,您可以使用正确的消息代码抛出异常,以便消息显示在登录表单上方,或者您可以更改spring webflow并生成一个新的视图状态,用户将是重定向到,如果他们无法访问。第一种方法更容易实现。

另一种方法是使用persondir api来利用isUserInRole()方法[2]。

[1] http://developer.jasig.org/projects/cas/cas-server-core/cas-server/cas-server-core/apidocs/org/jasig/cas/authentication/handler/support/AbstractUsernamePasswordAuthenticationHandler.html

[2] https://wiki.jasig.org/pages/viewpage.action?pageId=47874068