以下是realm中自定义的代码:
```
//1. 把 AuthenticationToken 转换为 UsernamePasswordToken
UsernamePasswordToken upToken = (UsernamePasswordToken) token;
//2. 从 UsernamePasswordToken 中来获取 username
String username = upToken.getUsername();
System.out.println("doGetAuthenticationInfo---username:"+username); //3. 调用数据库的方法, 从数据库中查询 username 对应的用户记录
System.out.println("2222");
TManagerUser managerUser = sysUserManagerService.queryUserByLoginName(username);
System.out.println("3333");
System.out.println("doGetAuthenticationInfo---managerUser:"+JSONObject.toJSON(managerUser));
//4. 若用户不存在, 则可以抛出 UnknownAccountException 异常
System.out.println("1111");
if(managerUser==null){
throw new UnknownAccountException("用户不存在!");
}else {
//5. 根据用户信息的情况, 决定是否需要抛出其他的 AuthenticationException 异常.
if("locked".equals(managerUser.getUserStatus())){
throw new LockedAccountException("用户被锁定");
}
//6. 根据用户的情况, 来构建 AuthenticationInfo 对象并返回. 通常使用的实现类为: SimpleAuthenticationInfo
//以下信息是从数据库中获取的.
//1). principal: 认证的实体信息. 可以是 username, 也可以是数据表对应的用户的实体类对象.
Object principal = username;
//2). credentials: 密码.
Object credentials = managerUser.getUserPassword();
System.out.println("credentials:"+credentials); //3). realmName: 当前 realm 对象的 name. 调用父类的 getName() 方法即可
String realmName = getName();
//4). 盐值. 将用户名作为盐
ByteSource credentialsSalt = ByteSource.Util.bytes(username);
SimpleAuthenticationInfo info = null; //new SimpleAuthenticationInfo(principal, credentials, realmName);
info = new SimpleAuthenticationInfo(principal, credentials, credentialsSalt, realmName);
System.out.println("info:"+JSONObject.toJSON(info));
return info;
}
```
执行后后台只打印2222,也就是sysUserManagerService.queryUserByLoginName方法前的代码,方法后的代码根本不执行,后台还不报错,因为刚接触shiro,所以还望大神指点
解决方案 »
- 怎么添加一个线程,在发送信息的同时,接受信息?
- oracle表中的字段为date类型应该对应于hibernate映射文件中那种类型?
- Oralce的rowNum是先生成再进行where,order by 么?~
- 花生売本地能打开,外网能ping通域名但打不开网站
- 没有团队和我一起奋斗怎么办?
- java与xml的问题,谢谢~~~~~~
- log4j中Logger.getLogger(getClass())为什么一定要加载一个类?
- 请问各位长老,RMI中的Naming和LocateRegistry到底有啥区别?
- 已经j2eeadmin -addJdbcDriver加载驱动,但是还是报错找不到合适驱动!
- 我安装的是Myeclipse2014,为什么配置Spring时,右击项目,找不到add spring capabilities菜单???
- Tomcat启动报错
- 求大神帮忙解决jquery中取table里tr td的值
这个方法肯定是出问题了。 下次在遇到这样的情况断点调试, 像这种问题。调试下就出来。