This is an automated email from the ASF dual-hosted git repository.
solomax pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/openmeetings.git
The following commit(s) were added to refs/heads/master by this push:
new 5b8cfe9b7 [OPENMEETINGS-2830] code is unified
5b8cfe9b7 is described below
commit 5b8cfe9b7272a7180d2a8051643e666c7dcdec36
Author: Maxim Solodovnik <[email protected]>
AuthorDate: Thu Aug 27 13:05:55 2026 +0700
[OPENMEETINGS-2830] code is unified
---
.../db/dao/basic/ConfigurationDao.java | 17 +-----------
.../openmeetings/util/crypt/CryptProvider.java | 30 ++++++++++++++++------
2 files changed, 23 insertions(+), 24 deletions(-)
diff --git
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/basic/ConfigurationDao.java
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/basic/ConfigurationDao.java
index 09a3f4008..27fc9bc94 100644
---
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/basic/ConfigurationDao.java
+++
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/basic/ConfigurationDao.java
@@ -25,7 +25,6 @@ import static
org.apache.openmeetings.util.OpenmeetingsVariables.*;
import static org.apache.wicket.csp.CSPDirectiveSrcValue.SELF;
import static org.apache.wicket.csp.CSPDirectiveSrcValue.STRICT_DYNAMIC;
-import java.lang.reflect.Constructor;
import java.net.UnknownHostException;
import java.util.ArrayList;
import java.util.Date;
@@ -50,7 +49,6 @@ import org.apache.openmeetings.db.dao.user.UserDao;
import org.apache.openmeetings.db.entity.basic.Configuration;
import org.apache.openmeetings.db.util.DaoHelper;
import org.apache.openmeetings.util.crypt.CryptProvider;
-import org.apache.openmeetings.util.crypt.ICrypt;
import org.apache.wicket.Application;
import org.apache.wicket.csp.CSPDirective;
import org.apache.wicket.csp.CSPHeaderConfiguration;
@@ -233,20 +231,7 @@ public class ConfigurationDao implements
IDataProviderDao<Configuration> {
log.error("An attempt to delete '" +
CONFIG_CRYPT + "' is blocked");
return entity;
}
- boolean validClass = false;
- try {
- Class<?> clazz = Class.forName(value);
- if (ICrypt.class.isAssignableFrom(clazz)) {
- Constructor<?> constr =
clazz.getDeclaredConstructor();
- constr.setAccessible(true);
- Object crypt = constr.newInstance();
- validClass = crypt instanceof ICrypt;
- }
- } catch (Exception e) {
- // no-op
- }
- if (!validClass) {
- log.error("An attempt to set '" + value + "' as
'" + CONFIG_CRYPT + "' is blocked");
+ if (CryptProvider.fromClass(value) == null) {
return entity;
}
}
diff --git
a/openmeetings-util/src/main/java/org/apache/openmeetings/util/crypt/CryptProvider.java
b/openmeetings-util/src/main/java/org/apache/openmeetings/util/crypt/CryptProvider.java
index a89b0afd2..405d3f1b7 100644
---
a/openmeetings-util/src/main/java/org/apache/openmeetings/util/crypt/CryptProvider.java
+++
b/openmeetings-util/src/main/java/org/apache/openmeetings/util/crypt/CryptProvider.java
@@ -18,8 +18,11 @@
*/
package org.apache.openmeetings.util.crypt;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_CRYPT;
import static
org.apache.openmeetings.util.OpenmeetingsVariables.getCryptClassName;
+import java.lang.reflect.Constructor;
+
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -31,14 +34,7 @@ public class CryptProvider {
public static synchronized ICrypt get() {
if (crypt == null) {
- String clazz = getCryptClassName();
- try {
- log.debug("get:: configKeyCryptClassName: {}",
clazz);
-
- crypt = clazz == null ? null : (ICrypt)
Class.forName(clazz).getDeclaredConstructor().newInstance();
- } catch (Exception err) {
- log.error("[get]", err);
- }
+ crypt = fromClass(getCryptClassName());
}
return crypt;
}
@@ -46,4 +42,22 @@ public class CryptProvider {
public static synchronized void reset() {
crypt = null;
}
+
+ public static ICrypt fromClass(String className) {
+ ICrypt inst = null;
+ try {
+ Class<?> clazz = Class.forName(className);
+ if (ICrypt.class.isAssignableFrom(clazz)) {
+ Constructor<?> constr =
clazz.getDeclaredConstructor();
+ constr.setAccessible(true);
+ inst = (ICrypt)constr.newInstance();
+ }
+ } catch (Exception e) {
+ // no-op
+ }
+ if (inst == null) {
+ log.error("Error while attempting to get ICrypt from '"
+ className + "' as '" + CONFIG_CRYPT + "'");
+ }
+ return inst;
+ }
}