2010-10-24 65 views
1

我在Jascat中使用在Tomcat 6服務器上運行的客戶端JSF應用程序中的CAS(中央認證服務)。我想限制對我的數據庫中指定的用戶的應用訪問權限,而不是所有可以使用CAS服務進行身份驗證的用戶。當用戶嘗試登錄時,我需要檢查他的用戶名是否也在我的數據庫的表用戶中,如果是 - 允許訪問應用程序。否則,我想將用戶重定向到一個頁面「您無權訪問這部分應用程序」。所以我需要授權。有沒有一種好的方法來授權jsf 2.0中的用戶?預先感謝任何幫助/建議。指定用戶的CAS認證和限制訪問

回答

0

聽起來像你需要在CAS中設計一個自定義的認證處理程序類。理論上,您的處理程序會擴展這個[1],執行所有必要的檢查和數據庫查找,然後將返回一個信號,指示用戶是否可以進行身份​​驗證。

然後,您應該在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