Author: indika
Date: Tue May 12 07:50:05 2009
New Revision: 35611
URL: http://wso2.org/svn/browse/wso2?view=rev&revision=35611

Log:
Add a capability of reusing a secret callback handler instance that being used 
by the application that starts synapse.

Added:
   
branches/synapse/1.3-wso2v1/modules/core/src/main/java/org/apache/synapse/security/secret/handler/SharedSecretCallbackHandler.java
   
branches/synapse/1.3-wso2v1/modules/core/src/main/java/org/apache/synapse/security/secret/handler/SharedSecretCallbackHandlerCache.java
Modified:
   
branches/synapse/1.3-wso2v1/modules/core/src/main/java/org/apache/synapse/Axis2SynapseController.java
   
branches/synapse/1.3-wso2v1/modules/core/src/main/java/org/apache/synapse/security/secret/handler/SecretManagerSecretCallbackHandler.java
   
branches/synapse/1.3-wso2v1/modules/utils/src/main/java/org/apache/synapse/commons/util/secret/SecretConfigurationConstants.java

Modified: 
branches/synapse/1.3-wso2v1/modules/core/src/main/java/org/apache/synapse/Axis2SynapseController.java
URL: 
http://wso2.org/svn/browse/wso2/branches/synapse/1.3-wso2v1/modules/core/src/main/java/org/apache/synapse/Axis2SynapseController.java?rev=35611&r1=35610&r2=35611&view=diff
==============================================================================
--- 
branches/synapse/1.3-wso2v1/modules/core/src/main/java/org/apache/synapse/Axis2SynapseController.java
       (original)
+++ 
branches/synapse/1.3-wso2v1/modules/core/src/main/java/org/apache/synapse/Axis2SynapseController.java
       Tue May 12 07:50:05 2009
@@ -36,6 +36,8 @@
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.synapse.commons.util.RMIRegistryController;
+import org.apache.synapse.commons.util.secret.SecretConfigurationConstants;
+import org.apache.synapse.commons.util.secret.SecretCallbackHandler;
 import 
org.apache.synapse.commons.util.datasource.DataSourceInformationRepository;
 import org.apache.synapse.commons.util.datasource.DataSourceHelper;
 import org.apache.synapse.commons.util.datasource.DataSourceConstants;
@@ -49,6 +51,7 @@
 import org.apache.synapse.core.axis2.*;
 import org.apache.synapse.eventing.SynapseEventSource;
 import org.apache.synapse.task.*;
+import 
org.apache.synapse.security.secret.handler.SharedSecretCallbackHandlerCache;
 
 import java.util.*;
 
@@ -131,6 +134,7 @@
         deployMediatorExtensions();
         initTaskHelper(serverContextInformation);
         initDataSourceHelper(serverContextInformation);
+        initSharedSecretCallbackHandlerCache(serverContextInformation);
         initialized = true;
     }
 
@@ -630,7 +634,7 @@
     }
 
     /**
-     * Initating DataSourceHelper with a new datasource information repository 
or
+     * Initiating DataSourceHelper with a new datasource information 
repository or
      * reusing an existing repository.
      *
      * @param serverContextInformation ServerContextInformation instance
@@ -649,6 +653,22 @@
     }
 
     /**
+     * Initiating SharedSecretCallbackHandlerCache reusing an existing 
SecretCallbackHandler instance -
+     * a SecretCallbackHandler passed when start synapse.
+     *
+     * @param information ServerContextInformation instance
+     */
+    private void initSharedSecretCallbackHandlerCache(ServerContextInformation 
information) {
+        SharedSecretCallbackHandlerCache cache = 
SharedSecretCallbackHandlerCache.getInstance();
+        Object handler =
+                information.getProperty(
+                        
SecretConfigurationConstants.PROP_SECRET_CALLBACK_HANDLER);
+        if (handler instanceof SecretCallbackHandler) {
+            cache.setSecretCallbackHandler((SecretCallbackHandler) handler);
+        }
+    }
+
+    /**
      *  Initialize TaskHelper - with any existing  TaskDescriptionRepository 
and TaskScheduler
      *  or without those
      * @param serverContextInformation  ServerContextInformation instance

Modified: 
branches/synapse/1.3-wso2v1/modules/core/src/main/java/org/apache/synapse/security/secret/handler/SecretManagerSecretCallbackHandler.java
URL: 
http://wso2.org/svn/browse/wso2/branches/synapse/1.3-wso2v1/modules/core/src/main/java/org/apache/synapse/security/secret/handler/SecretManagerSecretCallbackHandler.java?rev=35611&r1=35610&r2=35611&view=diff
==============================================================================
--- 
branches/synapse/1.3-wso2v1/modules/core/src/main/java/org/apache/synapse/security/secret/handler/SecretManagerSecretCallbackHandler.java
   (original)
+++ 
branches/synapse/1.3-wso2v1/modules/core/src/main/java/org/apache/synapse/security/secret/handler/SecretManagerSecretCallbackHandler.java
   Tue May 12 07:50:05 2009
@@ -33,8 +33,8 @@
     protected void handleSingleSecretCallback(SingleSecretCallback 
singleSecretCallback) {
 
         if (!secretManager.isInitialized()) {
-            if (log.isDebugEnabled()) {
-                log.debug("SecretManager has not been initialized.Cannot 
collect secrets");
+            if (log.isWarnEnabled()) {
+                log.warn("SecretManager has not been initialized.Cannot 
collect secrets.");
             }
             return;
         }

Added: 
branches/synapse/1.3-wso2v1/modules/core/src/main/java/org/apache/synapse/security/secret/handler/SharedSecretCallbackHandler.java
URL: 
http://wso2.org/svn/browse/wso2/branches/synapse/1.3-wso2v1/modules/core/src/main/java/org/apache/synapse/security/secret/handler/SharedSecretCallbackHandler.java?pathrev=35611
==============================================================================
--- (empty file)
+++ 
branches/synapse/1.3-wso2v1/modules/core/src/main/java/org/apache/synapse/security/secret/handler/SharedSecretCallbackHandler.java
  Tue May 12 07:50:05 2009
@@ -0,0 +1,46 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+package org.apache.synapse.security.secret.handler;
+
+import org.apache.synapse.commons.util.secret.AbstractSecretCallbackHandler;
+import org.apache.synapse.commons.util.secret.SingleSecretCallback;
+import org.apache.synapse.commons.util.secret.SecretCallbackHandler;
+import org.apache.synapse.commons.util.secret.SecretCallback;
+
+/**
+ * SecretCallbackHandler that uses an existing SecretCallbackHandler instance
+ * provided when starting server
+ */
+public class SharedSecretCallbackHandler extends AbstractSecretCallbackHandler 
{
+
+    private SecretCallbackHandler secretCallbackHandler =
+            
SharedSecretCallbackHandlerCache.getInstance().getSecretCallbackHandler();
+
+    protected void handleSingleSecretCallback(SingleSecretCallback 
singleSecretCallback) {
+
+        if (secretCallbackHandler == null) {
+            if (log.isWarnEnabled()) {
+                log.warn("There is no shared SecretCallbackHandler. " +
+                        "Please use any other SecretCallbackHandler 
implementaions");
+            }
+            return;
+        }
+        secretCallbackHandler.handle(new 
SecretCallback[]{singleSecretCallback});
+    }
+}

Added: 
branches/synapse/1.3-wso2v1/modules/core/src/main/java/org/apache/synapse/security/secret/handler/SharedSecretCallbackHandlerCache.java
URL: 
http://wso2.org/svn/browse/wso2/branches/synapse/1.3-wso2v1/modules/core/src/main/java/org/apache/synapse/security/secret/handler/SharedSecretCallbackHandlerCache.java?pathrev=35611
==============================================================================
--- (empty file)
+++ 
branches/synapse/1.3-wso2v1/modules/core/src/main/java/org/apache/synapse/security/secret/handler/SharedSecretCallbackHandlerCache.java
     Tue May 12 07:50:05 2009
@@ -0,0 +1,48 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+
+package org.apache.synapse.security.secret.handler;
+
+import org.apache.synapse.commons.util.secret.SecretCallbackHandler;
+
+/**
+ * Keep shared SecretCallbackHandler instance.
+ */
+public class SharedSecretCallbackHandlerCache {
+
+    private static SharedSecretCallbackHandlerCache ourInstance
+            = new SharedSecretCallbackHandlerCache();
+
+    private SecretCallbackHandler secretCallbackHandler;
+
+    public static SharedSecretCallbackHandlerCache getInstance() {
+        return ourInstance;
+    }
+
+    private SharedSecretCallbackHandlerCache() {
+    }
+
+    public void setSecretCallbackHandler(SecretCallbackHandler 
secretCallbackHandler) {
+        this.secretCallbackHandler = secretCallbackHandler;
+    }
+
+    public SecretCallbackHandler getSecretCallbackHandler() {
+        return secretCallbackHandler;
+    }
+}

Modified: 
branches/synapse/1.3-wso2v1/modules/utils/src/main/java/org/apache/synapse/commons/util/secret/SecretConfigurationConstants.java
URL: 
http://wso2.org/svn/browse/wso2/branches/synapse/1.3-wso2v1/modules/utils/src/main/java/org/apache/synapse/commons/util/secret/SecretConfigurationConstants.java?rev=35611&r1=35610&r2=35611&view=diff
==============================================================================
--- 
branches/synapse/1.3-wso2v1/modules/utils/src/main/java/org/apache/synapse/commons/util/secret/SecretConfigurationConstants.java
    (original)
+++ 
branches/synapse/1.3-wso2v1/modules/utils/src/main/java/org/apache/synapse/commons/util/secret/SecretConfigurationConstants.java
    Tue May 12 07:50:05 2009
@@ -25,4 +25,5 @@
     public static final String PROP_PASSWORD = "password";
     public static final String PROP_PASSWORD_PROVIDER = "passwordProvider";
     public static final String PROP_PASSWORD_PROMPT = "passwordPrompt";
+    public static final String PROP_SECRET_CALLBACK_HANDLER = 
"SharedSecretCallbackHandler";
 }

_______________________________________________
Esb-java-dev mailing list
[email protected]
https://wso2.org/cgi-bin/mailman/listinfo/esb-java-dev

Reply via email to