diff --git a/components/org.wso2.carbon.identity.sso.saml/src/main/java/org/wso2/carbon/identity/sso/saml/admin/SAMLSSOConfigAdmin.java b/components/org.wso2.carbon.identity.sso.saml/src/main/java/org/wso2/carbon/identity/sso/saml/admin/SAMLSSOConfigAdmin.java index a5ee2e9fe..0c98ed85f 100644 --- a/components/org.wso2.carbon.identity.sso.saml/src/main/java/org/wso2/carbon/identity/sso/saml/admin/SAMLSSOConfigAdmin.java +++ b/components/org.wso2.carbon.identity.sso.saml/src/main/java/org/wso2/carbon/identity/sso/saml/admin/SAMLSSOConfigAdmin.java @@ -48,6 +48,7 @@ import org.wso2.carbon.registry.core.session.UserRegistry; import org.wso2.carbon.user.core.util.UserCoreUtil; import org.wso2.carbon.utils.AuditLog; +import org.wso2.carbon.utils.security.KeystoreUtils; import java.security.KeyStore; import java.security.cert.CertificateException; @@ -334,8 +335,7 @@ private void saveCertificateToKeyStore(SAMLSSOServiceProviderDO serviceProviderD */ private String getKeyStoreName(int tenantId) { - String ksName = IdentityTenantUtil.getTenantDomain(tenantId).replace(".", "-"); - return (ksName + ".jks"); + return KeystoreUtils.getKeyStoreFileLocation(IdentityTenantUtil.getTenantDomain(tenantId)); } /** diff --git a/components/org.wso2.carbon.identity.sso.saml/src/main/java/org/wso2/carbon/identity/sso/saml/builders/X509CredentialImpl.java b/components/org.wso2.carbon.identity.sso.saml/src/main/java/org/wso2/carbon/identity/sso/saml/builders/X509CredentialImpl.java index 6262ef315..8a5d1f7c3 100644 --- a/components/org.wso2.carbon.identity.sso.saml/src/main/java/org/wso2/carbon/identity/sso/saml/builders/X509CredentialImpl.java +++ b/components/org.wso2.carbon.identity.sso.saml/src/main/java/org/wso2/carbon/identity/sso/saml/builders/X509CredentialImpl.java @@ -31,6 +31,7 @@ import org.wso2.carbon.identity.base.IdentityException; import org.wso2.carbon.identity.sso.saml.util.SAMLSSOUtil; import org.wso2.carbon.user.api.UserStoreException; +import org.wso2.carbon.utils.security.KeystoreUtils; import java.io.FileInputStream; import java.io.IOException; @@ -205,9 +206,7 @@ private void initCredentialForTenant(String tenantDomain, KeyStoreManager keySto try { // Derive key store name. - String ksName = tenantDomain.trim().replace(".", "-"); - // Derive JKS name. - String jksName = ksName + ".jks"; + String jksName = KeystoreUtils.getKeyStoreFileLocation(tenantDomain); privateKey = (PrivateKey) keyStoreManager.getPrivateKey(jksName, tenantDomain); signingCert = (X509Certificate) keyStoreManager.getKeyStore(jksName).getCertificate(tenantDomain); // This Exception is thrown from the KeyStoreManager. diff --git a/components/org.wso2.carbon.identity.sso.saml/src/main/java/org/wso2/carbon/identity/sso/saml/util/SAMLSSOUtil.java b/components/org.wso2.carbon.identity.sso.saml/src/main/java/org/wso2/carbon/identity/sso/saml/util/SAMLSSOUtil.java index 32c02e1df..3e4ee5fb6 100644 --- a/components/org.wso2.carbon.identity.sso.saml/src/main/java/org/wso2/carbon/identity/sso/saml/util/SAMLSSOUtil.java +++ b/components/org.wso2.carbon.identity.sso.saml/src/main/java/org/wso2/carbon/identity/sso/saml/util/SAMLSSOUtil.java @@ -119,6 +119,7 @@ import org.wso2.carbon.user.core.service.RealmService; import org.wso2.carbon.utils.ConfigurationContextService; import org.wso2.carbon.utils.multitenancy.MultitenantConstants; +import org.wso2.carbon.utils.security.KeystoreUtils; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; @@ -924,8 +925,8 @@ public static String createID() { * @return key store file name */ public static String generateKSNameFromDomainName(String tenantDomain) { - String ksName = tenantDomain.trim().replace(".", "-"); - return ksName + ".jks"; + + return KeystoreUtils.getKeyStoreFileLocation(tenantDomain); } /** diff --git a/components/org.wso2.carbon.identity.sso.saml/src/test/java/org/wso2/carbon/identity/sso/saml/util/SAMLSSOUtilTest.java b/components/org.wso2.carbon.identity.sso.saml/src/test/java/org/wso2/carbon/identity/sso/saml/util/SAMLSSOUtilTest.java index 846ebcecb..6e2dd33ea 100644 --- a/components/org.wso2.carbon.identity.sso.saml/src/test/java/org/wso2/carbon/identity/sso/saml/util/SAMLSSOUtilTest.java +++ b/components/org.wso2.carbon.identity.sso.saml/src/test/java/org/wso2/carbon/identity/sso/saml/util/SAMLSSOUtilTest.java @@ -62,6 +62,7 @@ import org.wso2.carbon.user.core.service.RealmService; import org.wso2.carbon.user.core.tenant.TenantManager; import org.wso2.carbon.utils.multitenancy.MultitenantConstants; +import org.wso2.carbon.utils.security.KeystoreUtils; import java.util.ArrayList; import java.util.List; @@ -84,7 +85,8 @@ */ @PrepareForTest({IdentityProviderManager.class, IdentityUtil.class, IdentityApplicationManagementUtil.class, KeyStoreManager.class, IdentitySAMLSSOServiceComponentHolder.class, SSOServiceProviderConfigManager.class, - IdentityTenantUtil.class, ServiceURLBuilder.class, IdentityConstants.class, FrameworkServiceComponent.class}) + IdentityTenantUtil.class, ServiceURLBuilder.class, IdentityConstants.class, FrameworkServiceComponent.class, + KeystoreUtils.class}) @PowerMockIgnore({"javax.xml.*", "org.xml.*", "org.w3c.dom.*", "org.apache.xerces.*"}) public class SAMLSSOUtilTest extends PowerMockTestCase { @@ -135,6 +137,12 @@ public void setUp() throws Exception { TestUtils.startTenantFlow(MultitenantConstants.SUPER_TENANT_DOMAIN_NAME); } + private void prepareForGetKeyStorePath() throws Exception { + mockStatic(KeystoreUtils.class); + when(KeystoreUtils.getKeyStoreFileLocation(TestConstants.WSO2_TENANT_DOMAIN)).thenReturn(TestConstants + .WSO2_TENANT_DOMAIN.replace(".", "-") + TestUtils.getFilePath(TestConstants.KEY_STORE_NAME)); + } + private void prepareForGetIssuer() throws Exception { mockStatic(IdentityTenantUtil.class); @@ -412,6 +420,7 @@ public void testGetX509CredentialImplForSuperTenant() throws Exception { public void testGetX509CredentialImplForTenant() throws Exception { prepareForGetIssuer(); + prepareForGetKeyStorePath(); mockStatic(FrameworkServiceComponent.class); when(FrameworkServiceComponent.getRealmService()).thenReturn(realmService); when(realmService.getTenantManager()).thenReturn(tenantManager); @@ -430,6 +439,7 @@ public void testGetX509CredentialImplForTenant() throws Exception { public void testGetX509CredentialImplException() throws Exception { prepareForGetIssuer(); + prepareForGetKeyStorePath(); when(tenantManager.getTenantId(anyString())).thenReturn(1); mockStatic(KeyStoreManager.class); when(KeyStoreManager.getInstance(eq(1))).thenReturn(keyStoreManager); diff --git a/pom.xml b/pom.xml index 18bb769e0..479043b73 100644 --- a/pom.xml +++ b/pom.xml @@ -455,7 +455,7 @@ - 4.9.10 + 4.9.23 4.9.0 5.25.507 [5.25.260, 7.0.0)