带Shiro 是Controller Mock 测试出错
grails吧
全部回复
仅看楼主
level 1
sbiod 楼主
我的工程用Shiro做权限验证 ,在grails mock的时候,总是不能正常登陆(账号密码正确,数据库里也有数据),我跟代码,发现,在执行ThreadContext.getSubject 时候,取到的值是null(正常的话,里边有账号密码), 谁知道这个怎么搞
2016年03月17日 06点03分 1
level 1
sbiod 楼主
def dbRealm = new DbRealm()
def setup() {
def wraper=new RealmWrapper()
wraper.realm=dbRealm
securityManager = new org.apache.shiro.web.mgt.DefaultWebSecurityManager();
securityManager.realm=wraper
String.metaClass.encodeAsSHA = {->
new Sha512Hash(delegate).toHex()
}
}
2016年03月17日 06点03分 2
level 1
sbiod 楼主
void testSignIn(){
when:
params.put("username","admin")
params.put("password","12345")
params.put("appId","0")
controller.signIn()
then:
response.redirectedUrl=="/"
}
2016年03月17日 06点03分 3
level 1
sbiod 楼主
个人分析是 mockController 不执行filter (断点不经过),所以不执行ShiroFilter里边的 accessControl ,所以,shiro找不到
正确的
Realm,就没有正确的数据, 有大神试过 带filer的 controller mock 么
2016年03月17日 06点03分 4
1