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");