aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Lenz <tlenz@iaik.tugraz.at>2017-01-31 13:18:30 +0100
committerThomas Lenz <tlenz@iaik.tugraz.at>2017-01-31 13:18:30 +0100
commit6624f0c3ac6f2636cf237b7ebcf602f3efcbfdc9 (patch)
tree5e4dc43ed22f591a3c82d5893608469cf399f72a
parent77b9a943b555abe4867e6f78d6ede43a5e05aa9e (diff)
downloadmoa-id-spss-6624f0c3ac6f2636cf237b7ebcf602f3efcbfdc9.tar.gz
moa-id-spss-6624f0c3ac6f2636cf237b7ebcf602f3efcbfdc9.tar.bz2
moa-id-spss-6624f0c3ac6f2636cf237b7ebcf602f3efcbfdc9.zip
fix problem with iaik pki-module and worker threads
-rw-r--r--id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/utils/ssl/SSLUtils.java27
1 files changed, 25 insertions, 2 deletions
diff --git a/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/utils/ssl/SSLUtils.java b/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/utils/ssl/SSLUtils.java
index 4ecda435d..109390132 100644
--- a/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/utils/ssl/SSLUtils.java
+++ b/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/utils/ssl/SSLUtils.java
@@ -61,6 +61,8 @@ import javax.net.ssl.TrustManager;
import at.gv.egovernment.moa.logging.Logger;
import at.gv.egovernment.moa.util.KeyStoreUtils;
+import at.gv.egovernment.moaspss.logging.LoggingContext;
+import at.gv.egovernment.moaspss.logging.LoggingContextManager;
import iaik.pki.DefaultPKIConfiguration;
import iaik.pki.PKIException;
import iaik.pki.PKIFactory;
@@ -94,6 +96,21 @@ public class SSLUtils {
}
+ /**
+ * IAIK PKI module and MOA-SIG uses a ThreadLocal variable for logging
+ * check if current thread has set this variable and set loggingcontext otherwise
+ *
+ * @param url transactionID for logging
+ */
+ private static void checkMoaSigLoggingContext(String url) {
+ LoggingContextManager logMgr = LoggingContextManager.getInstance();
+ if (logMgr.getLoggingContext() == null) {
+ LoggingContext ctx = new LoggingContext(url);
+ logMgr.setLoggingContext(ctx);
+
+ }
+ }
+
public static SSLSocketFactory getSSLSocketFactory(
String url,
String certStoreRootDirParam,
@@ -111,8 +128,11 @@ public class SSLUtils {
Logger.debug("Get SSLSocketFactory for " + url);
// retrieve SSLSocketFactory if already created
SSLSocketFactory ssf = (SSLSocketFactory)sslSocketFactories.get(url);
- if (ssf != null)
- return ssf;
+ if (ssf != null) {
+ checkMoaSigLoggingContext(url);
+ return ssf;
+
+ }
TrustManager[] tms = getTrustManagers(
certStoreRootDirParam,
@@ -129,6 +149,9 @@ public class SSLUtils {
ssf = ctx.getSocketFactory();
// store SSLSocketFactory
sslSocketFactories.put(url, ssf);
+
+ checkMoaSigLoggingContext(url);
+
return ssf;
}