public SignKeyDataHolder(String username) throws IdentityException {
String keyAlias = null;
KeyStoreAdmin keyAdmin ;
KeyStoreManager keyMan ;
Certificate[] certificates ;
try {
String tenantDomain = TenantUtils.getTenantDomain(username);
int tenantID = SAMLSSOUtil.getRealmService().getTenantManager().
getTenantId(tenantDomain);
initializeRegistry(tenantID);
if (tenantID != 0) {
String keyStoreName = SAMLSSOUtil.generateKSNameFromDomainName(tenantDomain);
keyAlias = tenantDomain;
keyMan = KeyStoreManager.getInstance(SAMLSSOUtil.getRegistryService().
getGovernanceSystemRegistry(tenantID));
KeyStore keyStore = keyMan.getKeyStore(keyStoreName);
issuerPK = (PrivateKey) keyMan.getPrivateKey(keyStoreName, tenantDomain);
certificates = keyStore.getCertificateChain(keyAlias);
issuerCerts = new X509Certificate[certificates.length];
int i = 0;
for (Certificate certificate : certificates) {
issuerCerts[i++] = (X509Certificate) certificate;
}
signatureAlgorithm = XMLSignature.ALGO_ID_SIGNATURE_RSA;
String pubKeyAlgo = issuerCerts[0].getPublicKey().getAlgorithm();
if (pubKeyAlgo.equalsIgnoreCase("DSA")) {
signatureAlgorithm = XMLSignature.ALGO_ID_SIGNATURE_DSA;
}
} else {
keyAlias = ServerConfiguration.getInstance().getFirstProperty(
"Security.KeyStore.KeyAlias");
keyAdmin = new KeyStoreAdmin(SAMLSSOUtil.getRegistryService().getGovernanceSystemRegistry());
keyMan = KeyStoreManager.getInstance(null);
issuerPK = (PrivateKey) keyAdmin.getPrivateKey(keyAlias);
certificates = keyMan.getPrimaryKeyStore().getCertificateChain(keyAlias);
issuerCerts = new X509Certificate[certificates.length];
int i = 0;
for (Certificate certificate : certificates) {