xiatian 4 weeks ago
parent
commit
d765f6a3be

+ 30 - 2
pom.xml

@@ -24,9 +24,37 @@
     </properties>
 
     <dependencies>
+    <dependency>
+    <groupId>org.springframework.boot</groupId>
+    <artifactId>spring-boot-devtools</artifactId>
+    <optional>true</optional>
+</dependency>
+<dependency>
+    <groupId>org.springframework.boot</groupId>
+    <artifactId>spring-boot-starter-web</artifactId>
+</dependency>
+<dependency>
+    <groupId>org.apache.tomcat.embed</groupId>
+    <artifactId>tomcat-embed-jasper</artifactId>
+</dependency>
+<dependency>
+    <groupId>javax.servlet</groupId>
+    <artifactId>javax.servlet-api</artifactId>
+    <scope>provided</scope>
+</dependency>
+<dependency>
+    <groupId>jakarta.servlet.jsp.jstl</groupId>
+    <artifactId>jakarta.servlet.jsp.jstl-api</artifactId>
+    <version>3.0.0</version>
+</dependency>
+<dependency>
+    <groupId>org.glassfish.web</groupId>
+    <artifactId>jakarta.servlet.jsp.jstl</artifactId>
+    <version>3.0.1</version>
+</dependency>
 		<dependency>
-			<groupId>ukey-api</groupId>
-			<artifactId>ukey-api</artifactId>
+			<groupId>cas-api</groupId>
+			<artifactId>cas-api</artifactId>
 			<version>1.0.0</version>
 			<scope>system</scope>
 			<systemPath>${basedir}/lib/cas-client-core-3.2.1.jar</systemPath>

+ 1 - 4
src/main/java/cn/com/qmth/ac/Application.java

@@ -2,15 +2,12 @@ package cn.com.qmth.ac;
 
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
-import org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration;
 import org.springframework.context.annotation.ComponentScan;
 import org.springframework.context.annotation.Configuration;
-import org.springframework.scheduling.annotation.EnableAsync;
 
-@EnableAsync
 @Configuration
 @ComponentScan(basePackages = { "cn.com.qmth" })
-@SpringBootApplication(scanBasePackages = "cn.com.qmth.*", exclude = { SecurityAutoConfiguration.class })
+@SpringBootApplication(scanBasePackages = "cn.com.qmth")
 public class Application {
 
     public static void main(String[] args) {

+ 28 - 0
src/main/java/cn/com/qmth/ac/controller/ErrorController.java

@@ -0,0 +1,28 @@
+package cn.com.qmth.ac.controller;
+
+import javax.servlet.http.HttpServletRequest;
+
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.servlet.ModelAndView;
+
+import cn.com.qmth.ac.util.ServletUtil;
+
+@Controller
+@RequestMapping("api/auth/error")
+public class ErrorController {
+
+    @RequestMapping(method = RequestMethod.GET)
+    public ModelAndView err() {
+        HttpServletRequest request = ServletUtil.getRequest();
+        String rurl = request.getParameter("rurl");
+        ModelAndView modelAndView = new ModelAndView();
+        // 3.设置显示的页面
+        modelAndView.addObject("url", rurl);
+        modelAndView.setViewName("errorpage");
+        // 4.返回ModelAndView
+        return modelAndView;
+    }
+
+}

+ 4 - 5
src/main/java/cn/com/qmth/ac/service/impl/CommonServiceImpl.java

@@ -12,7 +12,6 @@ import javax.servlet.http.HttpServletResponse;
 import org.apache.commons.lang3.StringUtils;
 import org.jasig.cas.client.validation.Assertion;
 import org.jasig.cas.client.validation.Cas20ServiceTicketValidator;
-import org.jasig.cas.client.validation.TicketValidationException;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.core.env.Environment;
 import org.springframework.stereotype.Service;
@@ -121,6 +120,8 @@ public class CommonServiceImpl implements CommonService {
         }
         String loginUrl = authlogin + SystemConstant.GET_UNKNOWN + SystemConstant.SERVICE_KEY + SystemConstant.GET_EQUAL
                 + encodeLoginUrlRoot;
+
+        String errUrlRoot = "/api/auth/error?rurl=" + loginUrl;
         if (Objects.isNull(tkt) || tkt.length() == 0) {
             rp.setTicketValid(false);
             rp.setReturnUrl(loginUrl);
@@ -138,11 +139,9 @@ public class CommonServiceImpl implements CommonService {
                 rp.setLoginName(username);
                 rp.setReturnUrl(ecLogin);
 
-            } catch (TicketValidationException e) {
-                rp.setTicketValid(false);
-                rp.setReturnUrl(loginUrl);
             } catch (Exception e) {
-                throw new RuntimeException(e);
+                rp.setTicketValid(false);
+                rp.setReturnUrl(errUrlRoot);
             }
 
         }

+ 11 - 7
src/main/resources/application.properties

@@ -1,17 +1,21 @@
-server.port=8200
+server.port=8201
 server.servlet.session.timeout=PT2H
 server.servlet.context-path=/
 spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
 spring.jackson.time-zone=GMT+8
-logging.level.cn.com.qmth=info
-logging.file.name=logs/debug.log
+com.qmth.logging.root-level=info
+com.qmth.logging.file-path=logs/auth-center.log
+server.error.whitelabel.enabled=false
+spring.mvc.view.prefix=/WEB-INF/jsp/
+spring.mvc.view.suffix=.jsp
+server.servlet.jsp.init-parameters.development=true
 examcloud.auth.center.host=https://www.exam-cloud.cn
 # guangkai cas configs
 examcloud.cas.authserver.gdrtvu=https://authserver.ougd.cn/authserver
 examcloud.cas.authlogin.gdrtvu=https://authserver.ougd.cn/authserver/login
 examcloud.cas.authlogout.gdrtvu=https://authserver.ougd.cn/authserver/logout
-examcloud.login.gdrtvu=https://gdrtvu.exam-cloud.cn
-examcloud.root-org-id.gdrtvu=17068
-examcloud.app-id.gdrtvu=gdrtvu
-examcloud.secret-key.gdrtvu=%TGiemiijipaepiij36&*ex
+examcloud.login.gdrtvu=https://d0.dev39.qmth.com.cn
+examcloud.root-org-id.gdrtvu=0
+examcloud.app-id.gdrtvu=11
+examcloud.secret-key.gdrtvu=123456
 

+ 71 - 0
src/main/webapp/WEB-INF/jsp/errorpage.jsp

@@ -0,0 +1,71 @@
+<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
+<!DOCTYPE html>
+<html lang="zh">
+<head>
+    <meta charset="UTF-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <title>登录出错</title>
+    <style>
+        body {
+            margin: 0;
+            padding: 0;
+            display: flex;
+            justify-content: center;
+            align-items: center;
+            height: 100vh;
+            font-family: Arial, sans-serif;
+        }
+        
+        .form-container {
+            background-color: white;
+            padding: 30px;
+            border-radius: 8px;
+            box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
+            width: 100%;
+            max-width: 400px;
+            display: flex;
+            flex-direction: column;
+            align-items: center;
+        }
+        
+        .form-text {
+            margin-bottom: 20px;
+            color: #333;
+            text-align: center;
+            font-size: 18px;
+        }
+        
+        .form-input {
+            width: 100%;
+            padding: 12px;
+            margin-bottom: 20px;
+            border: 1px solid #ddd;
+            border-radius: 4px;
+            font-size: 16px;
+            box-sizing: border-box;
+        }
+        
+        .form-button {
+            background-color: #4CAF50;
+            color: white;
+            border: none;
+            padding: 12px 24px;
+            border-radius: 4px;
+            cursor: pointer;
+            font-size: 16px;
+            text-decoration: none;
+            transition: background-color 0.3s;
+        }
+        
+        .form-button:hover {
+            background-color: #45a049;
+        }
+    </style>
+</head>
+<body>
+    <div class="form-container">
+        <div class="form-text">登录出错请重试</div>
+        <a href="https://authserver.ougd.cn/authserver/login" class="form-button">确定</a>
+    </div>
+</body>
+</html>