public class MyRealm extends AuthorizingRealm {
@Autowired
private UserService userService;
private RoleService roleService;
/**
验证当前登录用户
*
**/
@Override
protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken token) throws AuthenticationException {
String userName = (String)token.getPrincipal();
User user = userService.getUserByName(userName);
if(user!=null){
AuthenticationInfo authcInfo = new SimpleAuthenticationInfo(user.getUserName(),user.getUserPassword(),getName());
return authcInfo;
}else{
return null;
}
}
/**
为当前登录的用户授予角色和权限
*
**/
@Override
protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) {
String userName = (String)principals.getPrimaryPrincipal();
SimpleAuthorizationInfo authorizationInfo = new SimpleAuthorizationInfo();
Set<Role> roleSet = userService.getRole(userName);
Set<String> roleString = new HashSet<String>();
Set<String> permissions = new HashSet<String>();
for(Role role : roleSet){
roleString.add(role.getRoleName());
permissions.add(roleService.getPermission(role.getRoleName()).getPermissionName());
}
authorizationInfo.setRoles(roleString);
authorizationInfo.setStringPermissions(permissions);
return authorizationInfo;
}
}