BaseRealm.java 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. package com.izouma.awesomeadmin.shiro;
  2. import com.izouma.awesomeadmin.model.SysRole;
  3. import com.izouma.awesomeadmin.model.UserInfo;
  4. import com.izouma.awesomeadmin.service.SysRoleService;
  5. import com.izouma.awesomeadmin.service.UserInfoService;
  6. import org.apache.log4j.Logger;
  7. import org.apache.shiro.authz.AuthorizationInfo;
  8. import org.apache.shiro.authz.SimpleAuthorizationInfo;
  9. import org.apache.shiro.realm.AuthorizingRealm;
  10. import org.apache.shiro.subject.PrincipalCollection;
  11. import org.springframework.beans.factory.annotation.Autowired;
  12. public abstract class BaseRealm extends AuthorizingRealm {
  13. protected static Logger logger = Logger.getLogger(PhoneCodeRealm.class);
  14. @Autowired
  15. protected UserInfoService userInfoService;
  16. @Autowired
  17. protected SysRoleService sysRoleService;
  18. //授权
  19. @Override
  20. protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principalCollection) {
  21. SimpleAuthorizationInfo info = new SimpleAuthorizationInfo();
  22. try {
  23. UserInfo userInfo = (UserInfo) principalCollection.getPrimaryPrincipal();
  24. //获取角色数据权限授权
  25. SysRole sysRole = sysRoleService.getSysRoleById(userInfo.getRoleId());
  26. String[] permission = sysRole.getPermission().split(",");
  27. for (String perm : permission) {
  28. info.addStringPermission(perm);
  29. }
  30. } catch (Exception e) {
  31. logger.error("doGetAuthorizationInfo", e);
  32. }
  33. return info;
  34. }
  35. }