在Shiro FormAuthenticationFilter的情况下,从JUnit测试用例验证用户

时间:2014-07-21 09:15:58

标签: spring junit shiro

我有一个Web应用程序,它使用shiro FormAuthenticationFilter来验证和授权用户。 这在Web应用程序中工作得非常好。

现在我需要编写测试用例,它将在webapplication中调用resp API 并验证集成测试用例(Rest层(资源) - >服务层 - > Dao层)。

但要调用其余的API,我需要从junit和user principal验证用户身份 应该在resoure层中可用。

我在rest层中使用下面的代码行来登录用户并根据它执行一些任务。

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

从测试用例中我无法在休息层中获得原理。

我的Web应用程序在Tomcat 7服务器上运行。

我无法在测试用例中模拟Subject,因为Web应用程序在Tomcat服务器上运行 而我正试图从球衣客户那里获得休息。

shiro中是否有任何特定的网址,我可以使用user_name和密码从任何http客户端调用它,它会 验证用户并为他创建会话。

如何实现这一点,任何建议都表示赞赏。

1 个答案:

答案 0 :(得分:0)

您可以使用

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

在shiro.ini中,这将提供任何可用于测试目的的密码。


如果你想要一个例子 查看此示例应用。 https://github.com/dominicfarr/skybird-shiro

它在shiro中配置了三个url路径。

web - 使用表单身份验证。

api - 使用基本身份验证。

jersey - 匿名访问。