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
