| | |
| | | import java.util.Collection; |
| | | import java.util.HashSet; |
| | | import java.util.Set; |
| | | |
| | | import com.ruoyi.common.core.utils.JwtUtils; |
| | | import com.ruoyi.common.security.handler.GlobalExceptionHandler; |
| | | import io.jsonwebtoken.Claims; |
| | | import org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | | import org.springframework.util.PatternMatchUtils; |
| | | import com.ruoyi.common.core.context.SecurityContextHolder; |
| | | import com.ruoyi.common.core.exception.auth.NotLoginException; |
| | |
| | | */ |
| | | public class AuthLogic |
| | | { |
| | | private static final Logger log = LoggerFactory.getLogger(AuthLogic.class); |
| | | /** 所有权限标识 */ |
| | | private static final String ALL_PERMISSION = "*:*:*"; |
| | | |
| | |
| | | { |
| | | throw new NotLoginException("未提供token"); |
| | | } |
| | | Claims claims = JwtUtils.parseToken(token); |
| | | String userType = JwtUtils.getUserType(claims); |
| | | LoginUser loginUser = SecurityUtils.getLoginUser(); |
| | | if (loginUser == null) |
| | | if (loginUser == null && "system".equals(userType)) |
| | | { |
| | | throw new NotLoginException("无效的token"); |
| | | } |
| | | if(loginUser == null && "applet".equals(userType)){ |
| | | loginUser = new LoginUser(); |
| | | } |
| | | loginUser.setUserType(userType); |
| | | return loginUser; |
| | | } |
| | | |
| | |
| | | public void checkPermiAnd(String... permissions) |
| | | { |
| | | Set<String> permissionList = getPermiList(); |
| | | if(null == permissionList || permissionList.size() == 0){ |
| | | return; |
| | | } |
| | | for (String permission : permissions) |
| | | { |
| | | if (!hasPermi(permissionList, permission)) |
| | |
| | | public void checkPermiOr(String... permissions) |
| | | { |
| | | Set<String> permissionList = getPermiList(); |
| | | if(null == permissionList){ |
| | | return; |
| | | } |
| | | for (String permission : permissions) |
| | | { |
| | | if (hasPermi(permissionList, permission)) |
| | |
| | | try |
| | | { |
| | | LoginUser loginUser = getLoginUser(); |
| | | String userType = loginUser.getUserType(); |
| | | if(null != userType && "applet".equals(userType)){ |
| | | return null; |
| | | } |
| | | return loginUser.getPermissions(); |
| | | } |
| | | catch (Exception e) |