DIRKRB-688 Add time check in MySQL server plugin
diff --git a/has-project/has-plugins/src/main/java/org/apache/kerby/has/plugins/server/mysql/MySQLHasServerPlugin.java b/has-project/has-plugins/src/main/java/org/apache/kerby/has/plugins/server/mysql/MySQLHasServerPlugin.java
index 7c58b21..982860e 100644
--- a/has-project/has-plugins/src/main/java/org/apache/kerby/has/plugins/server/mysql/MySQLHasServerPlugin.java
+++ b/has-project/has-plugins/src/main/java/org/apache/kerby/has/plugins/server/mysql/MySQLHasServerPlugin.java
@@ -29,6 +29,7 @@
 import java.sql.SQLException;
 import java.sql.DriverManager;
 import java.sql.PreparedStatement;
+import java.util.Date;
 
 public class MySQLHasServerPlugin extends AbstractHasServerPlugin {
     private static final Logger LOG = LoggerFactory.getLogger(MySQLHasServerPlugin.class);
@@ -47,6 +48,15 @@
     @Override
     public void doAuthenticate(AuthToken userToken, AuthToken authToken)
         throws HasAuthenException {
+
+        // Check if the token is expired.
+        Date expiredTime = userToken.getExpiredTime();
+        Date now = new Date();
+        if (now.after(expiredTime)) {
+            LOG.error("Authentication failed: token is expired.");
+            throw new HasAuthenException("Authentication failed: token is expired.");
+        }
+
         String user = (String) userToken.getAttributes().get("user");
         String secret = (String) userToken.getAttributes().get("secret");