You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by re...@apache.org on 2021/10/06 15:00:41 UTC
[tomcat] branch main updated: Refactor JNI out of bean classes
This is an automated email from the ASF dual-hosted git repository.
remm pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/tomcat.git
The following commit(s) were added to refs/heads/main by this push:
new 1a43053 Refactor JNI out of bean classes
1a43053 is described below
commit 1a430530cdf1ed19e966b9c83791937942c2baf3
Author: remm <re...@apache.org>
AuthorDate: Wed Oct 6 16:59:59 2021 +0200
Refactor JNI out of bean classes
They are used in SSLHostConfig, so this ties everything to the JNI code.
---
.../tomcat/util/net/openssl/OpenSSLConf.java | 91 ----------------------
.../tomcat/util/net/openssl/OpenSSLContext.java | 88 ++++++++++++++++++++-
2 files changed, 86 insertions(+), 93 deletions(-)
diff --git a/java/org/apache/tomcat/util/net/openssl/OpenSSLConf.java b/java/org/apache/tomcat/util/net/openssl/OpenSSLConf.java
index 8ab720c..f234e03 100644
--- a/java/org/apache/tomcat/util/net/openssl/OpenSSLConf.java
+++ b/java/org/apache/tomcat/util/net/openssl/OpenSSLConf.java
@@ -20,18 +20,10 @@ import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
-import org.apache.juli.logging.Log;
-import org.apache.juli.logging.LogFactory;
-import org.apache.tomcat.jni.SSLConf;
-import org.apache.tomcat.util.res.StringManager;
-
public class OpenSSLConf implements Serializable {
private static final long serialVersionUID = 1L;
- private static final Log log = LogFactory.getLog(OpenSSLConf.class);
- private static final StringManager sm = StringManager.getManager(OpenSSLConf.class);
-
private final List<OpenSSLConfCmd> commands = new ArrayList<>();
public void addCmd(OpenSSLConfCmd cmd) {
@@ -42,87 +34,4 @@ public class OpenSSLConf implements Serializable {
return commands;
}
- public boolean check(long cctx) throws Exception {
- boolean result = true;
- OpenSSLConfCmd cmd;
- String name;
- String value;
- int rc;
- for (OpenSSLConfCmd command : commands) {
- cmd = command;
- name = cmd.getName();
- value = cmd.getValue();
- if (name == null) {
- log.error(sm.getString("opensslconf.noCommandName", value));
- result = false;
- continue;
- }
- if (log.isDebugEnabled()) {
- log.debug(sm.getString("opensslconf.checkCommand", name, value));
- }
- try {
- rc = SSLConf.check(cctx, name, value);
- } catch (Exception e) {
- log.error(sm.getString("opensslconf.checkFailed"));
- return false;
- }
- if (rc <= 0) {
- log.error(sm.getString("opensslconf.failedCommand", name, value,
- Integer.toString(rc)));
- result = false;
- } else if (log.isDebugEnabled()) {
- log.debug(sm.getString("opensslconf.resultCommand", name, value,
- Integer.toString(rc)));
- }
- }
- if (!result) {
- log.error(sm.getString("opensslconf.checkFailed"));
- }
- return result;
- }
-
- public boolean apply(long cctx, long ctx) throws Exception {
- boolean result = true;
- SSLConf.assign(cctx, ctx);
- OpenSSLConfCmd cmd;
- String name;
- String value;
- int rc;
- for (OpenSSLConfCmd command : commands) {
- cmd = command;
- name = cmd.getName();
- value = cmd.getValue();
- if (name == null) {
- log.error(sm.getString("opensslconf.noCommandName", value));
- result = false;
- continue;
- }
- if (log.isDebugEnabled()) {
- log.debug(sm.getString("opensslconf.applyCommand", name, value));
- }
- try {
- rc = SSLConf.apply(cctx, name, value);
- } catch (Exception e) {
- log.error(sm.getString("opensslconf.applyFailed"));
- return false;
- }
- if (rc <= 0) {
- log.error(sm.getString("opensslconf.failedCommand", name, value,
- Integer.toString(rc)));
- result = false;
- } else if (log.isDebugEnabled()) {
- log.debug(sm.getString("opensslconf.resultCommand", name, value,
- Integer.toString(rc)));
- }
- }
- rc = SSLConf.finish(cctx);
- if (rc <= 0) {
- log.error(sm.getString("opensslconf.finishFailed", Integer.toString(rc)));
- result = false;
- }
- if (!result) {
- log.error(sm.getString("opensslconf.applyFailed"));
- }
- return result;
- }
}
diff --git a/java/org/apache/tomcat/util/net/openssl/OpenSSLContext.java b/java/org/apache/tomcat/util/net/openssl/OpenSSLContext.java
index 0ecc6f2..eb5056e 100644
--- a/java/org/apache/tomcat/util/net/openssl/OpenSSLContext.java
+++ b/java/org/apache/tomcat/util/net/openssl/OpenSSLContext.java
@@ -199,6 +199,90 @@ public class OpenSSLContext implements org.apache.tomcat.util.net.SSLContext {
}
+ protected static boolean checkConf(OpenSSLConf conf, long cctx) throws Exception {
+ boolean result = true;
+ OpenSSLConfCmd cmd;
+ String name;
+ String value;
+ int rc;
+ for (OpenSSLConfCmd command : conf.getCommands()) {
+ cmd = command;
+ name = cmd.getName();
+ value = cmd.getValue();
+ if (name == null) {
+ log.error(sm.getString("opensslconf.noCommandName", value));
+ result = false;
+ continue;
+ }
+ if (log.isDebugEnabled()) {
+ log.debug(sm.getString("opensslconf.checkCommand", name, value));
+ }
+ try {
+ rc = SSLConf.check(cctx, name, value);
+ } catch (Exception e) {
+ log.error(sm.getString("opensslconf.checkFailed"));
+ return false;
+ }
+ if (rc <= 0) {
+ log.error(sm.getString("opensslconf.failedCommand", name, value,
+ Integer.toString(rc)));
+ result = false;
+ } else if (log.isDebugEnabled()) {
+ log.debug(sm.getString("opensslconf.resultCommand", name, value,
+ Integer.toString(rc)));
+ }
+ }
+ if (!result) {
+ log.error(sm.getString("opensslconf.checkFailed"));
+ }
+ return result;
+ }
+
+ protected static boolean applyConf(OpenSSLConf conf, long cctx, long ctx) throws Exception {
+ boolean result = true;
+ SSLConf.assign(cctx, ctx);
+ OpenSSLConfCmd cmd;
+ String name;
+ String value;
+ int rc;
+ for (OpenSSLConfCmd command : conf.getCommands()) {
+ cmd = command;
+ name = cmd.getName();
+ value = cmd.getValue();
+ if (name == null) {
+ log.error(sm.getString("opensslconf.noCommandName", value));
+ result = false;
+ continue;
+ }
+ if (log.isDebugEnabled()) {
+ log.debug(sm.getString("opensslconf.applyCommand", name, value));
+ }
+ try {
+ rc = SSLConf.apply(cctx, name, value);
+ } catch (Exception e) {
+ log.error(sm.getString("opensslconf.applyFailed"));
+ return false;
+ }
+ if (rc <= 0) {
+ log.error(sm.getString("opensslconf.failedCommand", name, value,
+ Integer.toString(rc)));
+ result = false;
+ } else if (log.isDebugEnabled()) {
+ log.debug(sm.getString("opensslconf.resultCommand", name, value,
+ Integer.toString(rc)));
+ }
+ }
+ rc = SSLConf.finish(cctx);
+ if (rc <= 0) {
+ log.error(sm.getString("opensslconf.finishFailed", Integer.toString(rc)));
+ result = false;
+ }
+ if (!result) {
+ log.error(sm.getString("opensslconf.applyFailed"));
+ }
+ return result;
+ }
+
/**
* Setup the SSL_CTX.
*
@@ -319,7 +403,7 @@ public class OpenSSLContext implements org.apache.tomcat.util.net.SSLContext {
log.debug(sm.getString("openssl.checkConf"));
}
try {
- if (!openSslConf.check(state.cctx)) {
+ if (!checkConf(openSslConf, state.cctx)) {
log.error(sm.getString("openssl.errCheckConf"));
throw new Exception(sm.getString("openssl.errCheckConf"));
}
@@ -330,7 +414,7 @@ public class OpenSSLContext implements org.apache.tomcat.util.net.SSLContext {
log.debug(sm.getString("openssl.applyConf"));
}
try {
- if (!openSslConf.apply(state.cctx, state.ctx)) {
+ if (!applyConf(openSslConf, state.cctx, state.ctx)) {
log.error(sm.getString("openssl.errApplyConf"));
throw new SSLException(sm.getString("openssl.errApplyConf"));
}
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org