/*
* Copyright 2005-2007 WSO2, Inc. (http://wso2.com)
*
* Licensed 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.wso2.carbon.identity.core.model;
import org.apache.commons.lang.ArrayUtils;
import org.apache.commons.lang.StringUtils;
import org.wso2.carbon.identity.base.IdentityConstants;
import org.wso2.carbon.identity.core.util.IdentityCoreConstants;
import org.wso2.carbon.identity.core.util.IdentityUtil;
import java.io.Serializable;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
public class SAMLSSOServiceProviderDO implements Serializable {
private static final long serialVersionUID = 7998724745099007704L;
String tenantDomain;
private String issuer;
private String assertionConsumerUrl;
private String[] assertionConsumerUrls;
private List<String> assertionConsumerUrlList;
private String defaultAssertionConsumerUrl;
private String certAlias;
private String sloResponseURL;
private String sloRequestURL;
private boolean doSingleLogout;
private String loginPageURL;
private boolean doSignResponse;
private boolean doSignAssertions;
private String attributeConsumingServiceIndex;
private String[] requestedClaims;
private List<String> requestedClaimsList;
private String[] requestedAudiences;
private List<String> requestedAudiencesList;
private String[] requestedRecipients;
private List<String> requestedRecipientsList;
private boolean enableAttributesByDefault;
private String nameIdClaimUri;
private String nameIDFormat;
private boolean isIdPInitSSOEnabled;
private boolean idPInitSLOEnabled;
private String[] idpInitSLOReturnToURLs;
private List<String> idpInitSLOReturnToURLList;
private boolean doEnableEncryptedAssertion;
private boolean doValidateSignatureInRequests;
private String signingAlgorithmUri;
private String digestAlgorithmUri;
public SAMLSSOServiceProviderDO() {
if (StringUtils.isNotBlank(IdentityUtil.getProperty(IdentityConstants.ServerConfig
.SSO_DEFAULT_SIGNING_ALGORITHM))) {
signingAlgorithmUri = IdentityUtil.getProperty(IdentityConstants.ServerConfig
.SSO_DEFAULT_SIGNING_ALGORITHM).trim();
} else {
signingAlgorithmUri = IdentityCoreConstants.XML_SIGNATURE_ALGORITHM_RSA_SHA1_URI;
}
if (StringUtils.isNotBlank(IdentityUtil.getProperty(IdentityConstants.ServerConfig
.SSO_DEFAULT_DIGEST_ALGORITHM))) {
digestAlgorithmUri = IdentityUtil.getProperty(IdentityConstants.ServerConfig
.SSO_DEFAULT_DIGEST_ALGORITHM).trim();
} else {
digestAlgorithmUri = IdentityCoreConstants.XML_DIGEST_ALGORITHM_SHA1;
}
}
public String getNameIDFormat() {
return nameIDFormat;
}
public void setNameIDFormat(String nameIDFormat) {
this.nameIDFormat = nameIDFormat;
}
public String getNameIdClaimUri() {
return nameIdClaimUri;
}
public void setNameIdClaimUri(String nameIdClaimUri) {
this.nameIdClaimUri = nameIdClaimUri;
}
public boolean isEnableAttributesByDefault() {
return enableAttributesByDefault;
}
public void setEnableAttributesByDefault(boolean enableAttributesByDefault) {
this.enableAttributesByDefault = enableAttributesByDefault;
}
public String getIssuer() {
return issuer;
}
public void setIssuer(String issuer) {
if (issuer != null) {
this.issuer = issuer.replaceAll("[\n\r]", "").trim();
}
}
public String getAssertionConsumerUrl() {
return assertionConsumerUrl;
}
public void setAssertionConsumerUrl(String assertionConsumerUrl) {
if (assertionConsumerUrl != null) {
this.assertionConsumerUrl = assertionConsumerUrl.replaceAll("[\n\r]", "").trim();
}
}
public String getCertAlias() {
return certAlias;
}
public void setCertAlias(String certAlias) {
this.certAlias = certAlias;
}
public String getSloResponseURL() {
return sloResponseURL;
}
public void setSloResponseURL(String sloResponseURL) {
if (sloResponseURL != null) {
this.sloResponseURL = sloResponseURL.replaceAll("[\n\r]", "").trim();
}
}
public boolean isDoSingleLogout() {
return doSingleLogout;
}
public void setDoSingleLogout(boolean doSingleLogout) {
this.doSingleLogout = doSingleLogout;
}
public String getLoginPageURL() {
return loginPageURL;
}
public void setLoginPageURL(String loginPageURL) {
if(StringUtils.isNotBlank(loginPageURL)) {
this.loginPageURL = loginPageURL.replaceAll("[\n\r]", "").trim();
} else {
this.loginPageURL = null;
}
}
public boolean isDoSignAssertions() {
return doSignAssertions;
}
public void setDoSignAssertions(boolean doSignAssertions) {
this.doSignAssertions = doSignAssertions;
}
public String getAttributeConsumingServiceIndex() {
return attributeConsumingServiceIndex;
}
public void setAttributeConsumingServiceIndex(String attributeConsumingServiceIndex) {
this.attributeConsumingServiceIndex = attributeConsumingServiceIndex;
}
public String getSigningAlgorithmUri() {
return signingAlgorithmUri;
}
public void setSigningAlgorithmUri(String signingAlgorithmUri) {
if (StringUtils.isNotEmpty(signingAlgorithmUri)) {
this.signingAlgorithmUri = signingAlgorithmUri;
}
}
public String getDigestAlgorithmUri() {
return digestAlgorithmUri;
}
public void setDigestAlgorithmUri(String digestAlgorithmUri) {
if (StringUtils.isNotEmpty(digestAlgorithmUri)) {
this.digestAlgorithmUri = digestAlgorithmUri;
}
}
/**
* @return the requestedClaims
*/
public String[] getRequestedClaims() {
if (requestedClaims != null) {
return requestedClaims.clone();
} else {
return ArrayUtils.EMPTY_STRING_ARRAY;
}
}
/**
* @param requestedClaims the requestedClaims to set
*/
public void setRequestedClaims(List<String> requestedClaims) {
if (requestedClaims != null) {
this.requestedClaimsList = requestedClaims;
this.requestedClaims = requestedClaims.toArray(new String[requestedClaims.size()]);
}
}
/**
* @param requestedClaims the requestedClaims to set
*/
public void setRequestedClaims(String[] requestedClaims) {
if (requestedClaims != null) {
this.requestedClaims = requestedClaims.clone();
this.requestedClaimsList = Arrays.asList(requestedClaims);
}
}
/**
* @return the requestedClaims
*/
public List<String> getRequestedClaimsList() {
if (requestedClaimsList != null) {
return requestedClaimsList;
} else {
return Collections.emptyList();
}
}
/**
* @return the requestedAudiences
*/
public String[] getRequestedAudiences() {
if (requestedAudiences != null) {
return requestedAudiences.clone();
} else {
return ArrayUtils.EMPTY_STRING_ARRAY;
}
}
/**
* @param requestedAudiences the requestedAudiences to set
*/
public void setRequestedAudiences(List<String> requestedAudiences) {
if (requestedAudiences != null) {
this.requestedAudiencesList = requestedAudiences;
this.requestedAudiences = requestedAudiences.toArray(new String[requestedAudiencesList.size()]);
}
}
/**
* @param requestedAudiences the requestedAudiences to set
*/
public void setRequestedAudiences(String[] requestedAudiences) {
if (requestedAudiences != null) {
this.requestedAudiences = requestedAudiences.clone();
this.requestedAudiencesList = Arrays.asList(requestedAudiences);
}
}
/**
* @return the requestedAudiences
*/
public List<String> getRequestedAudiencesList() {
if (requestedAudiencesList != null) {
return requestedAudiencesList;
} else {
return Collections.emptyList();
}
}
/**
* @return the requestedRecipients
*/
public String[] getRequestedRecipients() {
if (requestedRecipients != null) {
return requestedRecipients.clone();
} else {
return ArrayUtils.EMPTY_STRING_ARRAY;
}
}
/**
* @param requestedRecipientsList the requestedRecipients to set
*/
public void setRequestedRecipients(List<String> requestedRecipientsList) {
this.requestedRecipientsList = requestedRecipientsList;
if (requestedRecipientsList != null) {
this.requestedRecipients = requestedRecipientsList.toArray(new String[requestedRecipientsList.size()]);
} else {
this.requestedRecipients = null;
}
}
/**
* @param requestedRecipients the requestedRecipients to set
*/
public void setRequestedRecipients(String[] requestedRecipients) {
if (requestedRecipients != null) {
this.requestedRecipients = requestedRecipients.clone();
this.requestedRecipientsList = Arrays.asList(requestedRecipients);
} else {
this.requestedRecipients = null;
this.requestedRecipientsList = null;
}
}
/**
* @return the requestedRecipients
*/
public List<String> getRequestedRecipientsList() {
if (requestedRecipientsList != null) {
return requestedRecipientsList;
} else {
return Collections.emptyList();
}
}
/**
* @return the doSignResponse
*/
public boolean isDoSignResponse() {
return doSignResponse;
}
/**
* @param doSignResponse the doSignResponse to set
*/
public void setDoSignResponse(boolean doSignResponse) {
this.doSignResponse = doSignResponse;
}
public boolean isIdPInitSSOEnabled() {
return isIdPInitSSOEnabled;
}
public void setIdPInitSSOEnabled(boolean idPInitSSOEnabled) {
isIdPInitSSOEnabled = idPInitSSOEnabled;
}
public boolean isDoEnableEncryptedAssertion() {
return doEnableEncryptedAssertion;
}
public void setDoEnableEncryptedAssertion(boolean doEnableEncryptedAssertion) {
this.doEnableEncryptedAssertion = doEnableEncryptedAssertion;
}
public boolean isDoValidateSignatureInRequests() {
return doValidateSignatureInRequests;
}
public void setDoValidateSignatureInRequests(boolean doValidateSignatureInRequests) {
this.doValidateSignatureInRequests = doValidateSignatureInRequests;
}
public String getTenantDomain() {
return tenantDomain;
}
public void setTenantDomain(String tenantDomain) {
this.tenantDomain = tenantDomain;
}
public String[] getAssertionConsumerUrls() {
if (assertionConsumerUrls != null) {
return assertionConsumerUrls.clone();
} else {
return ArrayUtils.EMPTY_STRING_ARRAY;
}
}
public List<String> getAssertionConsumerUrlList() {
if (assertionConsumerUrlList != null) {
return assertionConsumerUrlList;
} else {
return Collections.emptyList();
}
}
public void setAssertionConsumerUrls(String[] assertionConsumerUrls) {
if (assertionConsumerUrls != null) {
this.assertionConsumerUrls = assertionConsumerUrls.clone();
this.assertionConsumerUrlList = Arrays.asList(assertionConsumerUrls);
} else {
this.assertionConsumerUrls = null;
this.assertionConsumerUrlList = null;
}
}
public void setAssertionConsumerUrls(List<String> assertionConsumerUrlList) {
this.assertionConsumerUrlList = assertionConsumerUrlList;
if (assertionConsumerUrlList != null) {
this.assertionConsumerUrls = assertionConsumerUrlList.toArray(new String[assertionConsumerUrlList.size()]);
} else {
this.assertionConsumerUrls = null;
}
}
public String getDefaultAssertionConsumerUrl() {
return defaultAssertionConsumerUrl;
}
public void setDefaultAssertionConsumerUrl(String defaultAssertionConsumerUrl) {
if(StringUtils.isNotBlank(defaultAssertionConsumerUrl)) {
this.defaultAssertionConsumerUrl = defaultAssertionConsumerUrl.replaceAll("[\n\r]", "").trim();
} else {
this.defaultAssertionConsumerUrl = null;
}
}
public String getSloRequestURL() {
return sloRequestURL;
}
public void setSloRequestURL(String sloRequestURL) {
if(StringUtils.isNotBlank(sloRequestURL)) {
this.sloRequestURL = sloRequestURL.replaceAll("[\n\r]", "").trim();
} else {
this.sloRequestURL = null;
}
}
public boolean isIdPInitSLOEnabled() {
return idPInitSLOEnabled;
}
public void setIdPInitSLOEnabled(boolean idPInitSLOEnabled) {
this.idPInitSLOEnabled = idPInitSLOEnabled;
}
public String[] getIdpInitSLOReturnToURLs() {
if (idpInitSLOReturnToURLs != null) {
return idpInitSLOReturnToURLs.clone();
} else {
return ArrayUtils.EMPTY_STRING_ARRAY;
}
}
public void setIdpInitSLOReturnToURLs(String[] idpInitSLOReturnToURLs) {
if (idpInitSLOReturnToURLs != null) {
this.idpInitSLOReturnToURLs = idpInitSLOReturnToURLs.clone();
this.idpInitSLOReturnToURLList = Arrays.asList(idpInitSLOReturnToURLs);
} else {
this.idpInitSLOReturnToURLs = null;
this.idpInitSLOReturnToURLList = null;
}
}
public List<String> getIdpInitSLOReturnToURLList() {
if (idpInitSLOReturnToURLList != null) {
return idpInitSLOReturnToURLList;
} else {
return Collections.emptyList();
}
}
public void setIdpInitSLOReturnToURLs(List<String> idpInitSLOReturnToURLList) {
this.idpInitSLOReturnToURLList = idpInitSLOReturnToURLList;
if (idpInitSLOReturnToURLList != null) {
this.idpInitSLOReturnToURLs = idpInitSLOReturnToURLList.toArray(new String[idpInitSLOReturnToURLList.size()]);
} else {
this.idpInitSLOReturnToURLs = null;
}
}
}