|
|
|
@ -1,10 +1,9 @@
|
|
|
|
|
package com.fr.design.data.datapane.connect; |
|
|
|
|
|
|
|
|
|
import com.fr.base.TemplateUtils; |
|
|
|
|
import com.fr.data.core.db.JDBCSecurityChecker; |
|
|
|
|
import com.fr.data.impl.Connection; |
|
|
|
|
import com.fr.data.impl.JDBCDatabaseConnection; |
|
|
|
|
import com.fr.data.impl.JNDIDatabaseConnection; |
|
|
|
|
import com.fr.data.operator.DataOperator; |
|
|
|
|
import com.fr.design.ExtraDesignClassManager; |
|
|
|
|
import com.fr.design.data.MapCompareUtils; |
|
|
|
|
import com.fr.design.dialog.FineJOptionPane; |
|
|
|
@ -181,7 +180,7 @@ public class ConnectionListPane extends JListControlPane implements ConnectionSh
|
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
this.checkSecurity(addedOrUpdatedConnections); |
|
|
|
|
this.validateConnections(addedOrUpdatedConnections); |
|
|
|
|
alterConnections(removedConnNames, addedOrUpdatedConnections); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -190,17 +189,14 @@ public class ConnectionListPane extends JListControlPane implements ConnectionSh
|
|
|
|
|
addedOrUpdatedConnections.forEach((name, conn) -> ConnectionConfig.getInstance().addConnection(name, conn)); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private void checkSecurity(Map<String, Connection> addedOrUpdatedConnections) throws Exception { |
|
|
|
|
private void validateConnections(Map<String, Connection> addedOrUpdatedConnections) throws Exception { |
|
|
|
|
|
|
|
|
|
for (Map.Entry<String, Connection> entry : addedOrUpdatedConnections.entrySet()) { |
|
|
|
|
Connection connection = entry.getValue(); |
|
|
|
|
if (connection instanceof JDBCDatabaseConnection) { |
|
|
|
|
try { |
|
|
|
|
JDBCSecurityChecker.checkURL(TemplateUtils.render(((JDBCDatabaseConnection) connection).getURL())); |
|
|
|
|
JDBCSecurityChecker.checkValidationQuery(((JDBCDatabaseConnection) connection).getDbcpAttr().getValidationQuery()); |
|
|
|
|
} catch (SQLException e) { |
|
|
|
|
throw new SQLException(Toolkit.i18nText("Fine-Design_Basic_Database_Connection_Invalid_Config", entry.getKey()) + ", " + e.getMessage(), e.getCause()); |
|
|
|
|
} |
|
|
|
|
try { |
|
|
|
|
DataOperator.getInstance().validateConnectionSettings(connection); |
|
|
|
|
} catch (SQLException e) { |
|
|
|
|
throw new SQLException(Toolkit.i18nText("Fine-Design_Basic_Database_Connection_Invalid_Config", entry.getKey()) + ", " + e.getMessage(), e.getCause()); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|