请问在user.ini中设置了mark=123,admin后,并不能checkRole到admin呀,请问为什么呢?(eclipse开发)
public class IniRealmTest {
//Realm:领域,范围
@Test
public void testAuthentication() {
//路径
IniRealm realm=new IniRealm("classpath:user.ini");
//获取安全管理者对象------DefaultSecurityManager默认管理者
DefaultSecurityManager defaultSecurityManager = new DefaultSecurityManager();
//设置管理者的管理领域
defaultSecurityManager.setRealm(realm);
//SecurityUtils操作securityManager的工具类,提供了getSecurityManager和setSecurityManger,getSubject的方法
//此处是给工具类默认管理者对象
SecurityUtils.setSecurityManager(defaultSecurityManager);
//获取Subject对象,可以进行login 登陆 和logout 登出方法
Subject subject = SecurityUtils.getSubject();
//用户+密码的token令牌
UsernamePasswordToken token = new UsernamePasswordToken("mark", "123");
//登入
subject.login(token);
//如果token中的密码和用户名,在上面的用户中,那么会返回true,反之则是false
System.out.println("isAuthenticated:" + subject.isAuthenticated());
subject.checkRole("admin");
subject.checkPermission("user:delete");
//登出
subject.logout();
//因为登出了,会返回false
System.out.println("isAuthenticated:" + subject.isAuthenticated());
}
}
user.ini
[users]
mark=123,admin
[roles]
admin=user:delete