aboutsummaryrefslogtreecommitdiff
path: root/id/server
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-03-13 08:56:56 +0100
commit7d9c2ec8e170df74fa544cdb83d8967c3d654ed2 (patch)
treef7e33c38c03a445563808513f9d62d55b1755a58 /id/server
parentd0804f617695cc2ee1bb1c1e86fcef8cda98d7b9 (diff)
downloadmoa-id-spss-7d9c2ec8e170df74fa544cdb83d8967c3d654ed2.tar.gz
moa-id-spss-7d9c2ec8e170df74fa544cdb83d8967c3d654ed2.tar.bz2
moa-id-spss-7d9c2ec8e170df74fa544cdb83d8967c3d654ed2.zip
fix problem with iaik pki-module and worker threads
Diffstat (limited to 'id/server')
-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;
}