[Carbon-dev] svn commit r23160 - trunk/carbon-components/security/org.wso2.carbon.security.mgt/src/main/java/org/wso2/carbon/security/sts/service/util
prabath at wso2.com
prabath at wso2.com
Fri Oct 31 06:10:20 PDT 2008
Author: prabath
Date: Fri Oct 31 06:10:20 2008
New Revision: 23160
URL: http://wso2.org/svn/browse/wso2?view=rev&revision=23160
Log:
sts functionality
Added:
trunk/carbon-components/security/org.wso2.carbon.security.mgt/src/main/java/org/wso2/carbon/security/sts/service/util/STSUtil.java
Added: trunk/carbon-components/security/org.wso2.carbon.security.mgt/src/main/java/org/wso2/carbon/security/sts/service/util/STSUtil.java
URL: http://wso2.org/svn/browse/wso2/trunk/carbon-components/security/org.wso2.carbon.security.mgt/src/main/java/org/wso2/carbon/security/sts/service/util/STSUtil.java?pathrev=23160
==============================================================================
--- (empty file)
+++ trunk/carbon-components/security/org.wso2.carbon.security.mgt/src/main/java/org/wso2/carbon/security/sts/service/util/STSUtil.java Fri Oct 31 06:10:20 2008
@@ -0,0 +1,106 @@
+package org.wso2.carbon.security.sts.service.util;
+
+import java.util.Properties;
+
+import org.apache.axis2.AxisFault;
+import org.apache.axis2.context.MessageContext;
+import org.apache.axis2.description.AxisService;
+import org.apache.axis2.description.Parameter;
+import org.apache.axis2.engine.AxisConfiguration;
+import org.apache.rahas.impl.SAMLTokenIssuerConfig;
+import org.apache.rahas.impl.TokenIssuerUtil;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.ServiceReference;
+import org.wso2.carbon.core.ServerManager;
+import org.wso2.carbon.core.util.KeyStoreManager;
+import org.wso2.carbon.core.util.KeyStoreUtil;
+import org.wso2.carbon.registry.service.RegistryService;
+import org.wso2.carbon.security.keystore.KeyStoreAdmin;
+import org.wso2.carbon.security.keystore.service.KeyStoreData;
+import org.wso2.carbon.security.util.RampartConfigUtil;
+import org.wso2.carbon.security.util.ServerCrypto;
+import org.wso2.carbon.utils.ServerConfiguration;
+import org.wso2.carbon.utils.ServerConstants;
+import org.wso2.registry.Registry;
+import org.wso2.registry.Resource;
+
+public class STSUtil {
+
+ public static void updateSTSService(AxisConfiguration config) throws Exception {
+
+ AxisService service = null;
+ ServerManager manager = null;
+ BundleContext context = null;
+ ServiceReference reference = null;
+ RegistryService registryService = null;
+ Registry systemRegistry = null;
+ Resource resource = null;
+ String keyAlias = null;
+ String keyPassword = null;
+ KeyStoreAdmin admin = null;
+ KeyStoreData[] keystores = null;
+ String privateKeyAlias = null;
+ String keyStoreName = null;
+ String issuerName = null;
+ ServerConfiguration serverConfig = null;
+
+ manager = ServerManager.getInstance();
+ context = manager.getBundleContext();
+ reference = context.getServiceReference(RegistryService.class.getName());
+ registryService = (RegistryService) context.getService(reference);
+ systemRegistry = registryService.getSystemRegistry();
+ resource = systemRegistry.get("/carbon/connection/props");
+ issuerName = resource.getProperty("host");
+
+ serverConfig = ServerConfiguration.getInstance();
+ keyAlias = serverConfig.getFirstProperty("Security.KeyStore.KeyAlias");
+ keyPassword = serverConfig.getFirstProperty("Security.KeyStore.KeyPassword");
+
+ if (issuerName == null) {
+ // HostName not set :-( use wso2wsas-sts
+ issuerName = ServerConstants.STS_NAME;
+ }
+
+ admin = new KeyStoreAdmin(systemRegistry);
+ keystores = admin.getKeyStores();
+
+ for (int i = 0; i < keystores.length; i++) {
+ if (KeyStoreUtil.isPrimaryStore(keystores[i].getKeyStoreName())) {
+ keyStoreName = keystores[i].getKeyStoreName();
+ privateKeyAlias = KeyStoreUtil.getPrivateKeyAlias(KeyStoreManager.getInstance()
+ .getKeyStore(keyStoreName));
+ break;
+ }
+ }
+
+ if (privateKeyAlias != null) {
+ service = config.getService(ServerConstants.STS_NAME);
+
+ String cryptoProvider = ServerCrypto.class.getName();
+
+ Properties props = RampartConfigUtil.getServerCryptoProperties(
+ new String[] { keyStoreName }, keyStoreName, privateKeyAlias);
+
+ SAMLTokenIssuerConfig stsSamlConfig = new SAMLTokenIssuerConfig(issuerName,
+ cryptoProvider, props);
+ stsSamlConfig.setIssuerKeyAlias(keyAlias);
+ stsSamlConfig.setIssuerKeyPassword(keyPassword);
+ stsSamlConfig.setAddRequestedAttachedRef(true);
+ stsSamlConfig.setAddRequestedUnattachedRef(true);
+ stsSamlConfig.setKeyComputation(2);
+ stsSamlConfig.setProofKeyType(TokenIssuerUtil.BINARY_SECRET);
+ try {
+ // remove param is exists
+ Parameter param = service.getParameter(SAMLTokenIssuerConfig.SAML_ISSUER_CONFIG
+ .getLocalPart());
+ if (param == null) {
+ // Add new parameter
+ service.addParameter(stsSamlConfig.getParameter());
+ }
+ } catch (AxisFault e) {
+ e.printStackTrace();
+ }
+ }
+
+ }
+}
More information about the Carbon-dev
mailing list