我有一个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客户端调用它,它会 验证用户并为他创建会话。
如何实现这一点,任何建议都表示赞赏。
答案 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 - 匿名访问。