Bladeren bron

bug修复

wangliang 4 jaren geleden
bovenliggende
commit
a2aa1f807b

+ 6 - 12
teachcloud-report/src/main/java/com/qmth/teachcloud/report/api/SysController.java

@@ -18,8 +18,10 @@ import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.*;
 import com.qmth.teachcloud.common.enums.*;
 import com.qmth.teachcloud.common.service.*;
-import com.qmth.teachcloud.common.util.*;
-import com.qmth.teachcloud.report.business.service.ReportCommonService;
+import com.qmth.teachcloud.common.util.RedisUtil;
+import com.qmth.teachcloud.common.util.Result;
+import com.qmth.teachcloud.common.util.ResultUtil;
+import com.qmth.teachcloud.common.util.ServletUtil;
 import io.swagger.annotations.*;
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
@@ -31,10 +33,7 @@ import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
 import javax.annotation.Resource;
-import javax.servlet.http.HttpSession;
 import javax.validation.Valid;
-import java.io.IOException;
-import java.net.URLEncoder;
 import java.security.NoSuchAlgorithmException;
 import java.util.*;
 import java.util.stream.Collectors;
@@ -84,9 +83,6 @@ public class SysController {
     @Resource
     SysConfigService sysConfigService;
 
-    @Resource
-    ReportCommonService reportCommonService;
-
     /**
      * 登录
      *
@@ -171,7 +167,7 @@ public class SysController {
     @ApiOperation(value = "登出")
     @RequestMapping(value = "/logout", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "返回信息", response = EditResult.class)})
-    public void logout() throws IOException {
+    public Result logout() {
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
         TBSession tbSession = (TBSession) ServletUtil.getRequestSession();
         AuthBean authBean = cacheService.userAuthCache(sysUser.getId());
@@ -182,9 +178,7 @@ public class SysController {
         redisUtil.deleteUserSession(tbSession.getId());
         cacheService.removeUserCache(sysUser.getId());
         cacheService.removeUserAuthCache(sysUser.getId());
-        if (Objects.nonNull(tbSession.getAppSource()) && tbSession.getAppSource() == AppSourceEnum.WHU_THIRD) {//武汉大学
-            reportCommonService.whuLogout();
-        }
+        return ResultUtil.ok(new EditResult(sysUser.getId()));
     }
 
     /**

+ 7 - 11
teachcloud-report/src/main/java/com/qmth/teachcloud/report/api/WudaOpenApiController.java

@@ -20,6 +20,7 @@ import com.qmth.teachcloud.common.util.JacksonUtil;
 import com.qmth.teachcloud.common.util.Result;
 import com.qmth.teachcloud.common.util.ResultUtil;
 import com.qmth.teachcloud.report.business.cache.WhuUserAuthCacheUtil;
+import com.qmth.teachcloud.report.business.service.ReportCommonService;
 import io.swagger.annotations.*;
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
@@ -32,7 +33,6 @@ import org.springframework.web.bind.annotation.RestController;
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
-import javax.servlet.http.HttpSession;
 import java.io.IOException;
 import java.io.UnsupportedEncodingException;
 import java.net.URLDecoder;
@@ -59,6 +59,9 @@ public class WudaOpenApiController {
     @Resource
     TeachcloudCommonService teachcloudCommonService;
 
+    @Resource
+    ReportCommonService reportCommonService;
+
     @ApiOperation(value = "cas鉴权接口")
     @RequestMapping(value = "/authentication", method = RequestMethod.GET)
     @ApiResponses({@ApiResponse(code = 200, message = "返回消息", response = Result.class)})
@@ -74,19 +77,12 @@ public class WudaOpenApiController {
         response.sendRedirect(dictionaryConfig.sysDomain().getReportUrl() + basicSchool.getId() + "/" + uid);
     }
 
-    @ApiOperation(value = "cas鉴权退出接口")
-    @RequestMapping(value = "/authentication/logout", method = RequestMethod.GET)
+    @ApiOperation(value = "cas用户鉴权退出接口")
+    @RequestMapping(value = "/user/authentication/logout", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "返回消息", response = Result.class)})
     @Aac(auth = BOOL.FALSE)
     public void authenticationLogout(HttpServletRequest request, HttpServletResponse response) throws IOException {
-        HttpSession session = request.getSession();
-        session.invalidate();
-        log.info("logout is come in,session:{}", JacksonUtil.parseJson(session));
-        String casLogoutURL = "http://cas.whu.edu.cn/authserver/logout";
-        // service后面带的参数为应用的访问地址,需要使用URLEncoder进行编码
-        String redirectURL = casLogoutURL + "?service=" + URLEncoder.encode("http://cas.whu.edu.cn/authserver/login", SystemConstant.CHARSET_NAME);
-        response.setHeader("Access-Control-Allow-Origin", "*");
-        response.sendRedirect(redirectURL);
+        reportCommonService.whuLogout();
     }
 
     @ApiOperation(value = "cas用户鉴权接口")