2014-07-21 35 views
1

我有一個使用shiro FormAuthenticationFilter來驗證和授權用戶的Web應用程序。 這在Web應用程序中工作得很好。在Shiro FormAuthenticationFilter的情況下從JUnit測試用例驗證用戶

現在我有寫測試用例的需求,它將調用web應用 中的resp API並驗證集成測試用例(Rest層(資源) - >服務層 - > Dao層)。

但是要調用其餘的API,我需要從junit認證用戶,並且用戶主體 應該在資源層中可用。

我在休息層使用下面的代碼行來獲取登錄用戶並執行一些基於它的任務。

SecurityUtils.getSubject().getPrincipal().toString(); 

從測試用例中我不能得到rest層的原理。

我的web應用程序在Tomcat 7服務器上運行。

我不能在測試用例中嘲笑Subject,因爲Web應用程序運行在Tomcat服務器 ,我試圖從澤西客戶端訪問其餘的東西。

在shiro中有任何特定的URL,我可以從任何http客戶端用user_name和密碼調用,它將 認證用戶併爲他創建會話。

如何做到這一點,任何建議表示讚賞。

回答

0

您可以使用

#Allows all users with anypassword 
credentialsMatcher = org.apache.shiro.authc.credential.AllowAllCredentialsMatcher 

在shiro.ini這將aloow,將用於測試工作的任何密碼。


而且萬一你waant一個例子 結帳這個示例應用程序。 https://github.com/dominicfarr/skybird-shiro

它有三個在shiro中配置的url路徑。

web - 使用表單身份驗證。

API - 使用基本認證。

球衣 - 匿名訪問。