From a666b5f9741ef9b21f547d3b2141752a0383c70c Mon Sep 17 00:00:00 2001
From: 13693261870 <252740454@qq.com>
Date: 星期二, 20 九月 2022 17:07:38 +0800
Subject: [PATCH] 1、修改登录页面 2、修改阿里代码规范问题

---
 src/java/org/apereo/cas/adaptors/jdbc/QueryDatabaseAuthenticationHandler.java |   43 +++++++++++++++++++++++++++++--------------
 1 files changed, 29 insertions(+), 14 deletions(-)

diff --git a/src/java/org/apereo/cas/adaptors/jdbc/QueryDatabaseAuthenticationHandler.java b/src/java/org/apereo/cas/adaptors/jdbc/QueryDatabaseAuthenticationHandler.java
index b39808e..7176c22 100644
--- a/src/java/org/apereo/cas/adaptors/jdbc/QueryDatabaseAuthenticationHandler.java
+++ b/src/java/org/apereo/cas/adaptors/jdbc/QueryDatabaseAuthenticationHandler.java
@@ -2,6 +2,7 @@
 
 import java.security.GeneralSecurityException;
 
+import java.util.Base64;
 import java.util.List;
 import java.util.Map;
 
@@ -16,17 +17,16 @@
 import org.apereo.cas.authentication.UsernamePasswordCredential;
 import org.apereo.cas.web.landtool.terra.OjdbcProperties;
 import org.apereo.cas.web.landtool.utils.Md5Util;
-import org.pac4j.oauth.profile.JsonObject;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
 import org.springframework.dao.DataAccessException;
 import org.springframework.dao.IncorrectResultSizeDataAccessException;
 import org.springframework.jdbc.core.JdbcTemplate;
 import org.springframework.stereotype.Component;
-import org.springframework.webflow.execution.Event;
 
-import com.zaxxer.hikari.HikariDataSource;
-
+/**
+ * @author Tanbin
+ * @date   2018-12-12
+ */
 @Component
 public class QueryDatabaseAuthenticationHandler extends AbstractJdbcUsernamePasswordAuthenticationHandler {
     private String sql;
@@ -34,27 +34,41 @@
     @Autowired
     private OjdbcProperties properties;
 
+    private static String m0 = "0";
+
+    private static String mIsFirst = "ISFIRSTLOGIN";
+
+    @Override
     protected HandlerResult authenticateUsernamePasswordInternal(UsernamePasswordCredential credential, String originalPassword) throws GeneralSecurityException, PreventedException {
-        if (StringUtils.isBlank(this.sql) || getJdbcTemplate() == null)
+        if (StringUtils.isBlank(this.sql) || getJdbcTemplate() == null) {
             throw new GeneralSecurityException("Authentication handler is not configured correctly. No SQL statement or JDBC template is found.");
+        }
         String username = credential.getUsername();
         String password = credential.getPassword();
         try {
+            username = new String(Base64.getDecoder().decode(username));
+            credential.setUsername(username);
+            originalPassword = new String(Base64.getDecoder().decode(originalPassword));
+
             String dbPassword = (String) getJdbcTemplate().queryForObject(this.sql, String.class, new Object[]{username});
 
             //绗竴娆$櫥褰�,浠嶄娇鐢ㄦ簮鏂瑰紡璁よ瘉
-            if (IsFirstLogin(username)) {
-                if ((StringUtils.isNotBlank(originalPassword) && !matches(originalPassword, dbPassword)) || (
-                        StringUtils.isBlank(originalPassword) && !StringUtils.equals(password, dbPassword)))
+            if (isFirstLogin(username)) {
+                boolean b1 = StringUtils.isNotBlank(originalPassword) && !matches(originalPassword, dbPassword);
+                boolean b2 = StringUtils.isBlank(originalPassword) && !StringUtils.equals(password, dbPassword);
+                if (b1 || b2) {
                     throw new FailedLoginException("Password does not match value on record.");
+                }
             } else {
-                if ((StringUtils.isNotBlank(originalPassword) && !validatePass(originalPassword, dbPassword)))
+                if ((StringUtils.isNotBlank(originalPassword) && !validatePass(originalPassword, dbPassword))) {
                     throw new FailedLoginException("Password does not match value on record.");
+                }
             }
 
         } catch (IncorrectResultSizeDataAccessException e) {
-            if (e.getActualSize() == 0)
+            if (e.getActualSize() == 0) {
                 throw new AccountNotFoundException(username + " not found with SQL query");
+            }
             throw new FailedLoginException("Multiple records found for " + username);
         } catch (DataAccessException e) {
             throw new PreventedException("SQL exception while executing query for " + username, e);
@@ -63,6 +77,7 @@
         return createHandlerResult(credential, this.principalFactory.createPrincipal(username), null);
     }
 
+    @Override
     protected HandlerResult authenticateUsernamePasswordInternal(UsernamePasswordCredential credential) throws GeneralSecurityException, PreventedException {
         return authenticateUsernamePasswordInternal(credential, null);
     }
@@ -77,19 +92,19 @@
         List<Map<String, Object>> list = getJdbcTemplate().queryForList(querysql);
         if (list != null && !list.isEmpty()) {
 
-            if ("0".equals(list.get(0).get("ISFIRSTLOGIN").toString())) {
+            if (m0.equals(list.get(0).get(mIsFirst).toString())) {
                 throw new AccountPasswordMustChangeException();
             }
         }
     }
 
-    public boolean IsFirstLogin(String username) throws AccountPasswordMustChangeException {
+    public boolean isFirstLogin(String username) throws AccountPasswordMustChangeException {
         String tempsql = "SELECT * FROM MAGBG.ORG_USER WHERE LOGINNAME='%s'";
         String querysql = String.format(tempsql, username);
         List<Map<String, Object>> list = getJdbcTemplate().queryForList(querysql);
         if (list != null && !list.isEmpty()) {
 
-            if ("0".equals(list.get(0).get("ISFIRSTLOGIN").toString())) {
+            if (m0.equals(list.get(0).get(mIsFirst).toString())) {
                 return true;
             }
         }

--
Gitblit v1.9.3