【发布时间】:2015-01-01 20:39:08
【问题描述】:
对于我的大部分集成测试,我不需要任何安全检查。我只是想把shiro挡在我面前。作为一个 shiro 菜鸟,我想知道是否有比我发现的更好的方法。
在我的 ShiroFilter 类中,如果身份验证失败,我添加了以下代码:
try {
currentUser.login(token);
return CONTINUE;
} catch (AuthenticationException e1) {
// if everything failed, we might actualy have the integration test configuration, let's try
UsernamePasswordToken testToken = new UsernamePasswordToken("testUser", "testPassword", true, host);
try {
currentUser.login(testToken);
return CONTINUE;
} catch (AuthenticationException e2) {
LOGGER.info("Unable to login", e2);
}
}
这是用于集成测试的 shiro.ini:
[users]
testUser = testPassword, administrator
[roles]
administrator = *
【问题讨论】:
-
在我们的环境中,始终创建一个具有所有权限的 root 用户,就像您的管理员一样,在每次测试开始时,我们只需登录该用户。因此,与您正在做的事情非常相似。