| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- package com.pine.admin.shiro;
- import com.alibaba.fastjson.JSON;
- import com.alibaba.fastjson.JSONObject;
- import com.pine.admin.modules.business.entity.UserInfo;
- import com.pine.admin.modules.business.service.UserInfoService;
- import com.pine.admin.modules.system.entity.SysPermission;
- import com.pine.admin.modules.system.entity.SysUser;
- import com.pine.admin.modules.system.service.SysPermissionService;
- import com.pine.admin.modules.system.service.SysService;
- import com.pine.admin.modules.system.service.SysUserService;
- import com.pine.common.dto.Result;
- import com.pine.common.utils.Constant;
- import com.pine.common.utils.RSAUtils;
- import org.apache.commons.lang.RandomStringUtils;
- import org.apache.commons.lang.StringUtils;
- import org.apache.shiro.SecurityUtils;
- import org.apache.shiro.authc.*;
- import org.apache.shiro.authc.credential.CredentialsMatcher;
- import org.apache.shiro.authc.credential.HashedCredentialsMatcher;
- import org.apache.shiro.authz.AuthorizationInfo;
- import org.apache.shiro.authz.SimpleAuthorizationInfo;
- import org.apache.shiro.realm.AuthorizingRealm;
- import org.apache.shiro.session.Session;
- import org.apache.shiro.subject.PrincipalCollection;
- import org.apache.shiro.subject.SimplePrincipalCollection;
- import org.apache.shiro.subject.support.DefaultSubjectContext;
- import org.apache.shiro.util.ByteSource;
- import org.apache.shiro.web.mgt.DefaultWebSecurityManager;
- import org.apache.shiro.web.session.mgt.DefaultWebSessionManager;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.context.annotation.Lazy;
- import org.springframework.stereotype.Component;
- import java.util.*;
- import java.util.stream.Collectors;
- @Component
- public class UserRealm extends AuthorizingRealm {
- @Autowired
- @Lazy
- private SysService sysService;
- /**
- * 添加用户权限
- *
- * @param principals
- * @return
- */
- @Override
- protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) {
- return null;
- }
- /**
- * 验证用户名密码
- *
- * @param token
- * @return
- */
- @Override
- protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken token) throws AuthenticationException {
- //若为经销商
- String dealerInfo = (String) token.getPrincipal();
- ShiroUserInfo shiroUserInfo = JSONObject.parseObject(dealerInfo, ShiroUserInfo.class);
- /**
- * 设置权限
- */
- String password = ShiroUtils.sha256(Constant.USER_PASSWORD, Constant.USER_SALT);
- return new SimpleAuthenticationInfo(shiroUserInfo, password, ByteSource.Util.bytes(Constant.USER_SALT), getName());
- }
- @Override
- public void setCredentialsMatcher(CredentialsMatcher credentialsMatcher) {
- HashedCredentialsMatcher shaCredentialsMatcher = new HashedCredentialsMatcher();
- shaCredentialsMatcher.setHashAlgorithmName(ShiroUtils.hashAlgorithmName);
- shaCredentialsMatcher.setHashIterations(ShiroUtils.hashIterations);
- super.setCredentialsMatcher(shaCredentialsMatcher);
- }
- }
|