登录处理

master
cheney 2 years ago
parent 26d555a99f
commit 71bf729d36
  1. 1
      src/main/java/com/huoran/iasf/common/filter/AuthFilter.java
  2. 4
      src/main/java/com/huoran/iasf/common/shiro/CustomAccessControlFilter.java
  3. 3
      src/main/java/com/huoran/iasf/controller/ExceptionController.java
  4. 2
      src/main/java/com/huoran/iasf/mapper/xml/SysPermissionMapper.xml
  5. 5
      src/main/java/com/huoran/iasf/service/impl/PermissionServiceImpl.java

@ -10,6 +10,7 @@ import io.jsonwebtoken.Jwts;
import lombok.SneakyThrows; import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.apache.shiro.subject.Subject;
import org.springframework.core.annotation.Order; import org.springframework.core.annotation.Order;
import org.springframework.http.MediaType; import org.springframework.http.MediaType;

@ -25,6 +25,7 @@ import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse; import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException; import java.io.IOException;
import java.io.OutputStream; import java.io.OutputStream;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
@ -98,8 +99,9 @@ public class CustomAccessControlFilter extends AccessControlFilter {
// 指定处理该请求的处理器 // 指定处理该请求的处理器
request.getRequestDispatcher(Constant.ERROR_CONTROLLER_PATH).forward(request, response); request.getRequestDispatcher(Constant.ERROR_CONTROLLER_PATH).forward(request, response);
}else { }else {
Subject subject1 = getSubject(servletRequest, servletResponse);
UsernamePasswordToken usernamePasswordToken = new UsernamePasswordToken(token, token); UsernamePasswordToken usernamePasswordToken = new UsernamePasswordToken(token, token);
getSubject(servletRequest, servletResponse).login(usernamePasswordToken); subject1.login(usernamePasswordToken);
} }
return true; return true;
} }

@ -1,6 +1,7 @@
package com.huoran.iasf.controller; package com.huoran.iasf.controller;
import com.huoran.iasf.common.exception.BusinessException; import com.huoran.iasf.common.exception.BusinessException;
import com.huoran.iasf.common.exception.UnauthorizedException;
import com.huoran.iasf.common.utils.Constant; import com.huoran.iasf.common.utils.Constant;
import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
@ -18,7 +19,7 @@ public class ExceptionController {
@RequestMapping(Constant.ERROR_CONTROLLER_PATH) @RequestMapping(Constant.ERROR_CONTROLLER_PATH)
@ResponseStatus(HttpStatus.UNAUTHORIZED) @ResponseStatus(HttpStatus.UNAUTHORIZED)
public void handleException(HttpServletRequest request){ public void handleException(HttpServletRequest request){
throw (BusinessException) request.getAttribute("filterError"); throw (UnauthorizedException) request.getAttribute("filterError");
} }
} }

@ -7,7 +7,7 @@
ap.* ap.*
FROM FROM
sys_role_permission ar sys_role_permission ar
left join sys_permission ap on ar.permission_id = ap.id join sys_permission ap on ar.permission_id = ap.id
where find_in_set(ar.role_id,#{roleIds}) where find_in_set(ar.role_id,#{roleIds})
GROUP BY ap.id GROUP BY ap.id
</select> </select>

@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.huoran.iasf.common.exception.BusinessException; import com.huoran.iasf.common.exception.BusinessException;
import com.huoran.iasf.common.exception.UnauthorizedException;
import com.huoran.iasf.common.exception.code.BaseResponseCode; import com.huoran.iasf.common.exception.code.BaseResponseCode;
import com.huoran.iasf.entity.SysPermission; import com.huoran.iasf.entity.SysPermission;
import com.huoran.iasf.entity.SysRolePermission; import com.huoran.iasf.entity.SysRolePermission;
@ -83,12 +84,12 @@ public class PermissionServiceImpl extends ServiceImpl<SysPermissionMapper, SysP
SysPermission sysPermission = sysPermissionMapper.selectById(permissionId); SysPermission sysPermission = sysPermissionMapper.selectById(permissionId);
if (null == sysPermission) { if (null == sysPermission) {
log.error("传入 的 id:{}不合法", permissionId); log.error("传入 的 id:{}不合法", permissionId);
throw new BusinessException(BaseResponseCode.DATA_ERROR); throw new UnauthorizedException(BaseResponseCode.DATA_ERROR);
} }
//获取下一级 //获取下一级
List<SysPermission> childs = sysPermissionMapper.selectList(Wrappers.<SysPermission>lambdaQuery().eq(SysPermission::getPid, permissionId)); List<SysPermission> childs = sysPermissionMapper.selectList(Wrappers.<SysPermission>lambdaQuery().eq(SysPermission::getPid, permissionId));
if (!CollectionUtils.isEmpty(childs)) { if (!CollectionUtils.isEmpty(childs)) {
throw new BusinessException(BaseResponseCode.ROLE_PERMISSION_RELATION); throw new UnauthorizedException(BaseResponseCode.ROLE_PERMISSION_RELATION);
} }
sysPermissionMapper.deleteById(permissionId); sysPermissionMapper.deleteById(permissionId);
//删除和角色关联 //删除和角色关联

Loading…
Cancel
Save