protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken authcToken) throws AuthenticationException { UsernamePasswordToken token = (UsernamePasswordToken) authcToken; Useraccount user = userAccountService.getUserAccount(token.getUsername()); if (user != null) { ByteSource salt = ByteSource.Util.bytes(user.getSalt()); return new SimpleAuthenticationInfo(user, user.getPassword(), salt, getName()); } else { return null; } }
protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) { // Long userId = (Long) // principals.fromRealm(getName()).iterator().next(); // Useraccount user = userAccountService.getUserAccount(userId); Object u = principals.iterator().next(); Useraccount user = null; if (u instanceof Useraccount) { // re-retrieve the useraccount instance as the one enclosed in // principal // does not carry roles in it logger.info("user is a user"); int userid = ((Useraccount) u).getId(); user = userAccountService.getUserAccount(userid); } else { logger.info("user is not user"); } if (user != null) { SimpleAuthorizationInfo info = new SimpleAuthorizationInfo(); // FIXME add roles // for (Role role : user.getRoles()) { // info.addRole(role.getName()); // info.addStringPermissions(role.getPermissions()); // } List<Userrole> roles = user.getRoles(); logger.info("id:" + user.getId()); logger.info("uname:" + user.getUsername()); logger.info("email:" + user.getEmail()); if (roles == null) { logger.info("roles is null"); } else if (roles.size() == 0) { logger.info("has no roles"); } else { for (Userrole role : roles) { logger.info("role:" + role.getRolename()); info.addRole(role.getRolename()); // info.addStringPermissions(role.getPermissions()); } } return info; } else { return null; } }