Просмотр исходного кода

加入山西医科大学单点登陆

wangliang 1 год назад
Родитель
Сommit
b4420b1b12

+ 7 - 7
cas/pom.xml

@@ -47,13 +47,13 @@
             <scope>system</scope>
             <systemPath>${project.basedir}/src/main/resources/lib/sso-client-java-7.0.8.jar</systemPath>
         </dependency>
-<!--        <dependency>-->
-<!--            <groupId>com.qmth.cas</groupId>-->
-<!--            <artifactId>ly-uap</artifactId>-->
-<!--            <version>3.2.0</version>-->
-<!--            <scope>system</scope>-->
-<!--            <systemPath>${project.basedir}/src/main/resources/lib/ly-uap.3.2.0.jar</systemPath>-->
-<!--        </dependency>-->
+        <dependency>
+            <groupId>com.qmth.cas</groupId>
+            <artifactId>ly-uap</artifactId>
+            <version>3.2.0</version>
+            <scope>system</scope>
+            <systemPath>${project.basedir}/src/main/resources/lib/ly-uap.3.2.0.jar</systemPath>
+        </dependency>
         <dependency>
             <groupId>com.qmth.cas</groupId>
             <artifactId>cas-client-core</artifactId>

+ 50 - 47
cas/src/main/java/com/qmth/teachcloud/cas/filter/MyWebApplicationInitializer.java

@@ -1,6 +1,8 @@
 package com.qmth.teachcloud.cas.filter;
 
+import com.qmth.teachcloud.cas.util.sxufe.Constants;
 import com.qmth.teachcloud.exchange.common.contant.SystemConstant;
+import edu.yale.its.tp.cas.client.filter.CASFilter;
 import org.jasig.cas.client.authentication.AuthenticationFilter;
 import org.jasig.cas.client.session.SingleSignOutFilter;
 import org.jasig.cas.client.session.SingleSignOutHttpSessionListener;
@@ -13,68 +15,69 @@ import org.springframework.web.context.support.WebApplicationContextUtils;
 
 import javax.servlet.FilterRegistration;
 import javax.servlet.ServletContext;
+import java.util.HashMap;
+import java.util.Map;
 
 @Configuration
 public class MyWebApplicationInitializer implements ServletContextInitializer {
     private static final String SXUFE_URL = "/api/open/sxufe/authentication";
     private static final String GDPU_URL = "/api/open/gdpu/authentication";
-    //    private static final String SXMU_URL = "/api/open/sxmu/authentication";
-    private static final String SXMU_URL = "/*";
+    private static final String SXMU_URL = "/api/open/sxmu/authentication";
+//    private static final String SXMU_URL = "/*";
 
     @Override
     public void onStartup(ServletContext servletContext) {
         WebApplicationContext cxt = WebApplicationContextUtils.getWebApplicationContext(servletContext);
         servletContext.setRequestCharacterEncoding(SystemConstant.CHARSET_NAME);
-//        /**
-//         * 山西财经filter
-//         */
-//        servletContext.addListener(new SingleSignOutHttpSessionListener());
-//        FilterRegistration.Dynamic caslogoutFilter = servletContext.addFilter("caslogoutFilter", SingleSignOutFilter.class);
-//        caslogoutFilter.addMappingForUrlPatterns(null, false, SXUFE_URL);
-//
-//        FilterRegistration.Dynamic ssoFilter = servletContext.addFilter("SSO Filter", CASFilter.class);
-//
-//        Map<String, String> map = new HashMap<>();
-//        map.put("edu.yale.its.tp.cas.client.filter.loginUrl", Constants.CAS_LOGIN_URL);
-//        map.put("edu.yale.its.tp.cas.client.filter.validateUrl", Constants.CAS_VALIDATE_URL);
-//        //接入的应用系统IP:Port,需要根据实际路径修改
-//
-//        String serverName = cxt.getEnvironment().getProperty("cas.filter.sxufeServerName");
-//        map.put("edu.yale.its.tp.cas.client.filter.serverName", serverName);
-//        map.put("edu.yale.its.tp.cas.client.filter.initContextClass", "net.psctech.sso.filter.LoginFilter");
-//        ssoFilter.setInitParameters(map);
-//
-//        ssoFilter.addMappingForUrlPatterns(null, false, SXUFE_URL);
-//
-//        /**
-//         * 广药filter
-//         */
-//        servletContext.addListener(new org.jasig.cas.client.session.SingleSignOutHttpSessionListener());
-//        String gdpuServerName = cxt.getEnvironment().getProperty("cas.filter.gdpuServerName");
-//        servletContext.setInitParameter("serverName", gdpuServerName);
-//
-//        FilterRegistration.Dynamic caslogoutGdpuFilter = servletContext.addFilter("Single Sign Out Filter", org.ly.uap.client.session.SingleSignOutFilter.class);
-//        caslogoutGdpuFilter.addMappingForUrlPatterns(null, false, GDPU_URL);
-//
-//        FilterRegistration.Dynamic authenticationFilter = servletContext.addFilter("Authentication Filter", org.ly.uap.client.authentication.AuthenticationFilter.class);
-//        authenticationFilter.setInitParameter("casServerLoginUrl", "https://cas.gdpu.edu.cn/lyuapServer/login");
-//        authenticationFilter.addMappingForUrlPatterns(null, false, GDPU_URL);
-//
-//        FilterRegistration.Dynamic validationFilter = servletContext.addFilter("Validation Filter", org.ly.uap.client.validation.Cas20ProxyReceivingTicketValidationFilter.class);
-//        validationFilter.setInitParameter("casServerUrlPrefix", "https://cas.gdpu.edu.cn/lyuapServer");
-//        validationFilter.addMappingForUrlPatterns(null, false, GDPU_URL);
-//
-//        FilterRegistration.Dynamic wrapperFilter = servletContext.addFilter("HttpServletRequest Wrapper Filter", org.ly.uap.client.util.HttpServletRequestWrapperFilter.class);
-//        wrapperFilter.addMappingForUrlPatterns(null, false, GDPU_URL);
-//
-//        FilterRegistration.Dynamic transNameFilter = servletContext.addFilter("TransNameFilter", org.ly.uap.client.util.TransNameFilter.class);
-//        transNameFilter.addMappingForUrlPatterns(null, false, GDPU_URL);
+        /**
+         * 山西财经filter
+         */
+        servletContext.addListener(new SingleSignOutHttpSessionListener());
+        FilterRegistration.Dynamic caslogoutFilter = servletContext.addFilter("caslogoutFilter", SingleSignOutFilter.class);
+        caslogoutFilter.addMappingForUrlPatterns(null, false, SXUFE_URL);
+
+        FilterRegistration.Dynamic ssoFilter = servletContext.addFilter("SSO Filter", CASFilter.class);
+
+        Map<String, String> map = new HashMap<>();
+        map.put("edu.yale.its.tp.cas.client.filter.loginUrl", Constants.CAS_LOGIN_URL);
+        map.put("edu.yale.its.tp.cas.client.filter.validateUrl", Constants.CAS_VALIDATE_URL);
+        //接入的应用系统IP:Port,需要根据实际路径修改
+
+        String serverName = cxt.getEnvironment().getProperty("cas.filter.sxufeServerName");
+        map.put("edu.yale.its.tp.cas.client.filter.serverName", serverName);
+        map.put("edu.yale.its.tp.cas.client.filter.initContextClass", "net.psctech.sso.filter.LoginFilter");
+        ssoFilter.setInitParameters(map);
+
+        ssoFilter.addMappingForUrlPatterns(null, false, SXUFE_URL);
+
+        /**
+         * 广药filter
+         */
+        servletContext.addListener(new org.jasig.cas.client.session.SingleSignOutHttpSessionListener());
+        String gdpuServerName = cxt.getEnvironment().getProperty("cas.filter.gdpuServerName");
+        servletContext.setInitParameter("serverName", gdpuServerName);
+
+        FilterRegistration.Dynamic caslogoutGdpuFilter = servletContext.addFilter("Single Sign Out Filter", org.ly.uap.client.session.SingleSignOutFilter.class);
+        caslogoutGdpuFilter.addMappingForUrlPatterns(null, false, GDPU_URL);
+
+        FilterRegistration.Dynamic authenticationFilter = servletContext.addFilter("Authentication Filter", org.ly.uap.client.authentication.AuthenticationFilter.class);
+        authenticationFilter.setInitParameter("casServerLoginUrl", "https://cas.gdpu.edu.cn/lyuapServer/login");
+        authenticationFilter.addMappingForUrlPatterns(null, false, GDPU_URL);
+
+        FilterRegistration.Dynamic validationFilter = servletContext.addFilter("Validation Filter", org.ly.uap.client.validation.Cas20ProxyReceivingTicketValidationFilter.class);
+        validationFilter.setInitParameter("casServerUrlPrefix", "https://cas.gdpu.edu.cn/lyuapServer");
+        validationFilter.addMappingForUrlPatterns(null, false, GDPU_URL);
+
+        FilterRegistration.Dynamic wrapperFilter = servletContext.addFilter("HttpServletRequest Wrapper Filter", org.ly.uap.client.util.HttpServletRequestWrapperFilter.class);
+        wrapperFilter.addMappingForUrlPatterns(null, false, GDPU_URL);
+
+        FilterRegistration.Dynamic transNameFilter = servletContext.addFilter("TransNameFilter", org.ly.uap.client.util.TransNameFilter.class);
+        transNameFilter.addMappingForUrlPatterns(null, false, GDPU_URL);
 
         /**
          * 山西医科大学ilter
          */
         servletContext.addListener(new SingleSignOutHttpSessionListener());
-//        servletContext.setInitParameter("casServerUrl", "https://authserver.sxmu.edu.cn/authserver/logout");
         String sxmuServerName = cxt.getEnvironment().getProperty("cas.filter.sxmuServerName");
 
         FilterRegistration.Dynamic sxmuCaslogoutGdpuFilter = servletContext.addFilter("CAS Single Sign Out Filter", SingleSignOutFilter.class);

+ 18 - 16
cas/src/main/java/com/qmth/teachcloud/cas/util/GdpuCasUtil.java

@@ -9,8 +9,10 @@ import com.qmth.teachcloud.exchange.common.contant.SystemConstant;
 import com.qmth.teachcloud.exchange.common.entity.BasicSchool;
 import com.qmth.teachcloud.exchange.common.service.AuthInfoService;
 import com.qmth.teachcloud.exchange.common.service.CommonCacheService;
+import com.qmth.teachcloud.exchange.common.util.JacksonUtil;
 import com.qmth.teachcloud.exchange.common.util.ServletUtil;
 import net.psctech.sso.filter.LoginFilter;
+import org.jasig.cas.client.authentication.AttributePrincipal;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Component;
@@ -95,22 +97,22 @@ public class GdpuCasUtil {
                 returnUrl = casAddress + Constants.SSO_LOGOUT_URI;
             }
         }
-//        AttributePrincipal principal = (AttributePrincipal) request.getUserPrincipal();
-//        log.info("principal.getName():{}", principal.getName());
-//        log.info("principal.getAttributes():{}", JacksonUtil.parseJson(principal.getAttributes()));
-//        if (principal != null) {
-//            //获取用户信息中公开的Attributes部分
-//            Map<String, Object> map = principal.getAttributes();
-//            // 获取姓名,可以根据属性名称获取其他属性
-//            employeeNo = (String) map.get("username");
-//            String realname = (String) map.get("realname");
-//            log.info("employeeNo:{}", employeeNo);
-//            log.info("realname:{}", realname);
-//            log.info("schoolCode:{}", schoolCode);
-//            log.info("returnUrl:{}", returnUrl);
-//            openParams = new OpenParams();
-//            openParams.setName(realname);
-//        }
+        AttributePrincipal principal = (AttributePrincipal) request.getUserPrincipal();
+        log.info("principal.getName():{}", principal.getName());
+        log.info("principal.getAttributes():{}", JacksonUtil.parseJson(principal.getAttributes()));
+        if (principal != null) {
+            //获取用户信息中公开的Attributes部分
+            Map<String, Object> map = principal.getAttributes();
+            // 获取姓名,可以根据属性名称获取其他属性
+            employeeNo = (String) map.get("username");
+            String realname = (String) map.get("realname");
+            log.info("employeeNo:{}", employeeNo);
+            log.info("realname:{}", realname);
+            log.info("schoolCode:{}", schoolCode);
+            log.info("returnUrl:{}", returnUrl);
+            openParams = new OpenParams();
+            openParams.setName(realname);
+        }
         return new RedirectParams(employeeNo, schoolCode, returnUrl, openParams);
     }
 

+ 0 - 12
cas/src/main/java/com/qmth/teachcloud/cas/util/gdpu/CasUtils.java

@@ -77,18 +77,6 @@ public class CasUtils {
 //                + encodeServiceUrl;
 //    }
 
-    /**
-     * 获取登出地址
-     */
-    public static String getLogoutUrl()
-            throws UnsupportedEncodingException {
-        HttpServletRequest request = ServletUtil.getRequest();
-        // 获取本次请求的根Path
-        String loginUrlRoot = getBasePath() + Constants.SSO_LOGIN_URI;
-        String encodeLoginUrlRoot = URLEncoder.encode(loginUrlRoot, StandardCharsets.UTF_8.toString());
-        return Constants.CAS_LOGOUT_URL + "?" + Constants.SERVICE_KEY + "=" + encodeLoginUrlRoot;
-    }
-
     /**
      * 获取登出地址
      */

+ 1 - 1
cas/src/main/java/com/qmth/teachcloud/cas/util/gdpu/Constants.java

@@ -24,7 +24,7 @@ public interface Constants {
 
     String CAS_ADDRESS = "casAddress";
 
-    String TEACHCLOUD_PRINT = "teachcloudPrint";
+//    String TEACHCLOUD_PRINT = "teachcloudPrint";
 
     String SCHOOL_SERVICE_ADDRESS = "schoolServiceAddress";
 

+ 1 - 1
cas/src/main/java/com/qmth/teachcloud/cas/util/supwisdom/utils/BooleanUtils.java

@@ -3,7 +3,7 @@ package com.qmth.teachcloud.cas.util.supwisdom.utils;
 public abstract class BooleanUtils {
 
     public static boolean toBoolean(final String str) {
-        return toBooleanObject(str) == Boolean.TRUE;
+        return toBooleanObject(str).equals(Boolean.TRUE);
     }
 
     public static Boolean toBooleanObject(final String str) {

+ 4 - 0
cas/src/main/java/com/qmth/teachcloud/cas/util/supwisdom/utils/HttpRequestUtils.java

@@ -34,6 +34,7 @@ public abstract class HttpRequestUtils {
 
         try {
             HttpsURLConnection.setDefaultHostnameVerifier(new HostnameVerifier() {
+                @Override
                 public boolean verify(String hostname, SSLSession session) {
                     return true;
                 }
@@ -41,12 +42,15 @@ public abstract class HttpRequestUtils {
 
             SSLContext context = SSLContext.getInstance("TLS");
             context.init(null, new X509TrustManager[]{new X509TrustManager() {
+                @Override
                 public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException {
                 }
 
+                @Override
                 public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException {
                 }
 
+                @Override
                 public X509Certificate[] getAcceptedIssuers() {
                     return new X509Certificate[0];
                 }

+ 2 - 2
cas/src/main/java/com/qmth/teachcloud/cas/util/sxmu/Constants.java

@@ -24,9 +24,9 @@ public interface Constants {
 
     String CAS_ADDRESS = "casAddress";
 
-    String TEACHCLOUD_PRINT = "teachcloudPrint";
+//    String TEACHCLOUD_PRINT = "teachcloudPrint";
 
     String SCHOOL_SERVICE_ADDRESS = "schoolServiceAddress";
 
-    String GDPU_SERVICE_ADDRESS = "gdpuServiceAddress";
+//    String GDPU_SERVICE_ADDRESS = "gdpuServiceAddress";
 }

+ 1 - 2
cas/src/main/java/com/qmth/teachcloud/cas/util/sxufe/Constants.java

@@ -32,6 +32,5 @@ public interface Constants {
     String UTF_8_STR = "UTF-8";
 
     // 默认编码
-    Charset UTF_8 = Charset.forName(UTF_8_STR);
-
+//    Charset UTF_8 = Charset.forName(UTF_8_STR);
 }

BIN
cas/src/main/resources/lib/cas-client-core-3.1.12.jar


+ 6 - 2
eds/src/main/java/com/qmth/teachcloud/eds/utils/gdpu/JdbcUtil.java

@@ -83,11 +83,15 @@ public class JdbcUtil {
             }
             // 关闭资源
             try {
-                if (stmt != null) stmt.close();
+                if (stmt != null) {
+                    stmt.close();
+                }
             } catch (SQLException se2) {
             }// 什么都不做
             try {
-                if (conn != null) conn.close();
+                if (conn != null) {
+                    conn.close();
+                }
             } catch (SQLException se) {
                 se.printStackTrace();
             }

+ 1 - 0
eds/src/main/java/com/qmth/teachcloud/eds/vo/ScoreItem.java

@@ -82,6 +82,7 @@ public class ScoreItem {
         this.objective = objective;
     }
 
+    @Override
     public String toString() {
         return objective ? answer + SPLIT + getScoreString() : getScoreString();
     }

+ 18 - 9
eds/src/main/java/com/qmth/teachcloud/eds/vo/SubjectiveScorePK.java

@@ -53,28 +53,37 @@ public class SubjectiveScorePK implements Serializable {
 
     @Override
     public boolean equals(Object obj) {
-        if (this == obj)
+        if (this == obj) {
             return true;
-        if (obj == null)
+        }
+        if (obj == null) {
             return false;
-        if (getClass() != obj.getClass())
+        }
+        if (getClass() != obj.getClass()) {
             return false;
+        }
         final SubjectiveScorePK other = (SubjectiveScorePK) obj;
         if (studentId == null) {
-            if (other.studentId != null)
+            if (other.studentId != null) {
                 return false;
-        } else if (!studentId.equals(other.studentId))
+            }
+        } else if (!studentId.equals(other.studentId)) {
             return false;
+        }
         if (mainNumber == null) {
-            if (other.mainNumber != null)
+            if (other.mainNumber != null) {
                 return false;
-        } else if (!mainNumber.equals(other.mainNumber))
+            }
+        } else if (!mainNumber.equals(other.mainNumber)) {
             return false;
+        }
         if (subNumber == null) {
-            if (other.subNumber != null)
+            if (other.subNumber != null) {
                 return false;
-        } else if (!subNumber.equals(other.subNumber))
+            }
+        } else if (!subNumber.equals(other.subNumber)) {
             return false;
+        }
         return true;
     }