io.gravitee.am.model.Domain Maven / Gradle / Ivy
/**
* Copyright (C) 2015 The Gravitee team (http://gravitee.io)
*
* 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 io.gravitee.am.model;
import io.gravitee.am.common.utils.PathUtils;
import io.gravitee.am.model.account.AccountSettings;
import io.gravitee.am.model.login.LoginSettings;
import io.gravitee.am.model.login.WebAuthnSettings;
import io.gravitee.am.model.oidc.OIDCSettings;
import io.gravitee.am.model.scim.SCIMSettings;
import io.gravitee.am.model.uma.UMASettings;
import io.swagger.annotations.ApiModelProperty;
import java.util.Date;
import java.util.List;
import java.util.Set;
/**
* @author David BRASSELY (david.brassely at graviteesource.com)
* @author GraviteeSource Team
*/
public class Domain implements Resource {
/**
* Domain identifier.
*/
private String id;
/**
* Domain human readable identifier.
*/
private String hrid;
/**
* Domain name.
*/
private String name;
/**
* Domain description.
*/
private String description;
/**
* The type of reference the domain is attached to (for now, should be ENVIRONMENT).
*/
private ReferenceType referenceType;
/**
* The id of the reference the domain is attached to (for now, should be the environment id).
*/
private String referenceId;
/**
* Domain enabled.
*/
private boolean enabled;
/**
* Flag indicating if alerts are enabled or not.
*/
private Boolean alertEnabled;
/**
* Domain HTTP path
*/
private String path;
/**
* NOTE: only use for the DefaultOrganizationUpgrader
*/
private Set identities;
/**
* If domain is master, it can do cross domains token introspection
*/
private boolean master;
/**
* Indicates if domain is in vhost mode or not. If true, then security domain will be exposed under specified virtual hosts.
*/
private boolean vhostMode = false;
/**
* The list of vhosts to expose the domain on.
*/
private List vhosts;
/**
* The list of sharding tags to expose the domain on.
*/
private Set tags;
/**
* Domain creation date
*/
@ApiModelProperty(dataType = "java.lang.Long")
private Date createdAt;
/**
* Domain last updated date
*/
@ApiModelProperty(dataType = "java.lang.Long")
private Date updatedAt;
/**
* -------------------------
* Advanced settings section
* -------------------------
*/
/**
* OAuth 2.0 / OIDC settings
*/
private OIDCSettings oidc;
/**
* UMA 2.0 settings
*/
private UMASettings uma;
/**
* Login page settings
*/
private LoginSettings loginSettings;
/**
* WebAuthn/Passwordless settings
*/
private WebAuthnSettings webAuthnSettings;
/**
* SCIM 2.0 settings
*/
private SCIMSettings scim;
/**
* User accounts settings
*/
private AccountSettings accountSettings;
/**
* Password settings
*/
private PasswordSettings passwordSettings;
/**
* Self-service Account Management settings
*/
private SelfServiceAccountManagementSettings selfServiceAccountManagementSettings;
/**
* SAML 2.0 settings
*/
private SAMLSettings saml;
public Domain() {
}
public Domain(Domain other) {
this.id = other.id;
this.hrid = other.hrid;
this.name = other.name;
this.description = other.description;
this.referenceType = other.referenceType;
this.referenceId = other.referenceId;
this.enabled = other.enabled;
this.alertEnabled = other.alertEnabled;
this.path = other.path;
this.identities = other.identities;
this.master = other.master;
this.vhostMode = other.vhostMode;
this.vhosts = other.vhosts;
this.tags = other.tags;
this.createdAt = other.createdAt;
this.updatedAt = other.updatedAt;
this.oidc = other.oidc;
this.uma = other.uma;
this.loginSettings = other.loginSettings;
this.webAuthnSettings = other.webAuthnSettings;
this.scim = other.scim;
this.accountSettings = other.accountSettings;
this.passwordSettings = other.passwordSettings;
this.selfServiceAccountManagementSettings = other.selfServiceAccountManagementSettings;
this.saml = other.saml;
}
@Override
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getHrid() {
return hrid;
}
public void setHrid(String hrid) {
this.hrid = hrid;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public ReferenceType getReferenceType() {
return referenceType;
}
public void setReferenceType(ReferenceType referenceType) {
this.referenceType = referenceType;
}
public String getReferenceId() {
return referenceId;
}
public void setReferenceId(String referenceId) {
this.referenceId = referenceId;
}
public boolean isEnabled() {
return enabled;
}
public void setEnabled(boolean enabled) {
this.enabled = enabled;
}
public Boolean isAlertEnabled() {
return alertEnabled;
}
public void setAlertEnabled(Boolean alertEnabled) {
this.alertEnabled = alertEnabled;
}
public String getPath() {
return PathUtils.sanitize(path);
}
public void setPath(String path) {
this.path = path;
}
public Set getIdentities() {
return identities;
}
public void setIdentities(Set identities) {
this.identities = identities;
}
public boolean isMaster() {
return master;
}
public void setMaster(boolean master) {
this.master = master;
}
public boolean isVhostMode() {
return vhostMode;
}
public void setVhostMode(boolean vhostMode) {
this.vhostMode = vhostMode;
}
public List getVhosts() {
return vhosts;
}
public void setVhosts(List vhosts) {
this.vhosts = vhosts;
}
public Set getTags() {
return tags;
}
public void setTags(Set tags) {
this.tags = tags;
}
public Date getCreatedAt() {
return createdAt;
}
public void setCreatedAt(Date createdAt) {
this.createdAt = createdAt;
}
public Date getUpdatedAt() {
return updatedAt;
}
public void setUpdatedAt(Date updatedAt) {
this.updatedAt = updatedAt;
}
public OIDCSettings getOidc() {
return oidc;
}
public void setOidc(OIDCSettings oidc) {
this.oidc = oidc;
}
public UMASettings getUma() {
return uma;
}
public void setUma(UMASettings uma) {
this.uma = uma;
}
public LoginSettings getLoginSettings() {
return loginSettings;
}
public void setLoginSettings(LoginSettings loginSettings) {
this.loginSettings = loginSettings;
}
public WebAuthnSettings getWebAuthnSettings() {
return webAuthnSettings;
}
public void setWebAuthnSettings(WebAuthnSettings webAuthnSettings) {
this.webAuthnSettings = webAuthnSettings;
}
public SCIMSettings getScim() {
return scim;
}
public void setScim(SCIMSettings scim) {
this.scim = scim;
}
public AccountSettings getAccountSettings() {
return accountSettings;
}
public void setAccountSettings(AccountSettings accountSettings) {
this.accountSettings = accountSettings;
}
public PasswordSettings getPasswordSettings() {
return passwordSettings;
}
public void setPasswordSettings(PasswordSettings passwordSettings) {
this.passwordSettings = passwordSettings;
}
public SelfServiceAccountManagementSettings getSelfServiceAccountManagementSettings() {
return selfServiceAccountManagementSettings;
}
public void setSelfServiceAccountManagementSettings(SelfServiceAccountManagementSettings selfServiceAccountManagementSettings) {
this.selfServiceAccountManagementSettings = selfServiceAccountManagementSettings;
}
public SAMLSettings getSaml() {
return saml;
}
public void setSaml(SAMLSettings saml) {
this.saml = saml;
}
public boolean isDynamicClientRegistrationEnabled() {
return this.getOidc()!=null &&
this.getOidc().getClientRegistrationSettings()!=null &&
this.getOidc().getClientRegistrationSettings().isDynamicClientRegistrationEnabled();
}
public boolean isOpenDynamicClientRegistrationEnabled() {
return this.getOidc()!=null &&
this.getOidc().getClientRegistrationSettings()!=null &&
this.getOidc().getClientRegistrationSettings().isDynamicClientRegistrationEnabled() &&
this.getOidc().getClientRegistrationSettings().isOpenDynamicClientRegistrationEnabled();
}
public boolean isDynamicClientRegistrationTemplateEnabled() {
return this.getOidc()!=null &&
this.getOidc().getClientRegistrationSettings()!=null &&
this.getOidc().getClientRegistrationSettings().isClientTemplateEnabled();
}
public boolean isRedirectUriLocalhostAllowed() {
return this.getOidc()!=null &&
this.getOidc().getClientRegistrationSettings()!=null &&
this.getOidc().getClientRegistrationSettings().isAllowLocalhostRedirectUri();
}
public boolean isRedirectUriUnsecuredHttpSchemeAllowed() {
return this.getOidc()!=null &&
this.getOidc().getClientRegistrationSettings()!=null &&
this.getOidc().getClientRegistrationSettings().isAllowHttpSchemeRedirectUri();
}
public boolean isRedirectUriWildcardAllowed() {
return this.getOidc()!=null &&
this.getOidc().getClientRegistrationSettings()!=null &&
this.getOidc().getClientRegistrationSettings().isAllowWildCardRedirectUri();
}
public boolean isRedirectUriStrictMatching() {
return this.getOidc()!=null && this.getOidc().isRedirectUriStrictMatching();
}
public boolean usePlainFapiProfile() {
return this.getOidc() != null &&
this.getOidc().getSecurityProfileSettings() != null &&
this.getOidc().getSecurityProfileSettings().isEnablePlainFapi();
}
public boolean useFapiBrazilProfile() {
return this.getOidc() != null &&
this.getOidc().getSecurityProfileSettings() != null &&
this.getOidc().getSecurityProfileSettings().isEnableFapiBrazil();
}
public boolean useCiba() {
return this.getOidc() != null &&
this.getOidc().getCibaSettings() != null &&
this.getOidc().getCibaSettings().isEnabled();
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Domain domain = (Domain) o;
return id.equals(domain.id);
}
@Override
public int hashCode() {
return id.hashCode();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy