/* * Copyright 2016 Red Hat, Inc. and/or its affiliates * and other contributors as indicated by the @author tags. * * 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.keycloak.models; import java.io.Serializable; import java.util.HashMap; import java.util.Map; /** * <p>A model type representing the configuration for identity providers. It provides some common properties and also a {@link org.keycloak.models.IdentityProviderModel#config} * for configuration options and properties specifics to a identity provider.</p> * * @author Pedro Igor */ public class IdentityProviderModel implements Serializable { private String internalId; /** * <p>An user-defined identifier to unique identify an identity provider instance.</p> */ private String alias; /** * <p>An identifier used to reference a specific identity provider implementation. The value of this field is the same * across instances of the same provider implementation.</p> */ private String providerId; private boolean enabled; private boolean trustEmail; private boolean storeToken; protected boolean addReadTokenRoleOnCreate; protected boolean linkOnly; /** * Specifies if particular provider should be used by default for authentication even before displaying login screen */ private boolean authenticateByDefault; private String firstBrokerLoginFlowId; private String postBrokerLoginFlowId; private String displayName; /** * <p>A map containing the configuration and properties for a specific identity provider instance and implementation. The items * in the map are understood by the identity provider implementation.</p> */ private Map<String, String> config = new HashMap<String, String>(); public IdentityProviderModel() { } public IdentityProviderModel(IdentityProviderModel model) { if (model != null) { this.internalId = model.getInternalId(); this.providerId = model.getProviderId(); this.alias = model.getAlias(); this.displayName = model.getDisplayName(); this.config = new HashMap<String, String>(model.getConfig()); this.enabled = model.isEnabled(); this.trustEmail = model.isTrustEmail(); this.storeToken = model.isStoreToken(); this.linkOnly = model.isLinkOnly(); this.authenticateByDefault = model.isAuthenticateByDefault(); this.addReadTokenRoleOnCreate = model.addReadTokenRoleOnCreate; this.firstBrokerLoginFlowId = model.getFirstBrokerLoginFlowId(); this.postBrokerLoginFlowId = model.getPostBrokerLoginFlowId(); } } public String getInternalId() { return this.internalId; } public void setInternalId(String internalId) { this.internalId = internalId; } public String getAlias() { return this.alias; } public void setAlias(String id) { this.alias = id; } public String getProviderId() { return this.providerId; } public void setProviderId(String providerId) { this.providerId = providerId; } public boolean isEnabled() { return this.enabled; } public void setEnabled(boolean enabled) { this.enabled = enabled; } public boolean isStoreToken() { return this.storeToken; } public void setStoreToken(boolean storeToken) { this.storeToken = storeToken; } public boolean isLinkOnly() { return linkOnly; } public void setLinkOnly(boolean linkOnly) { this.linkOnly = linkOnly; } @Deprecated public boolean isAuthenticateByDefault() { return authenticateByDefault; } @Deprecated public void setAuthenticateByDefault(boolean authenticateByDefault) { this.authenticateByDefault = authenticateByDefault; } public String getFirstBrokerLoginFlowId() { return firstBrokerLoginFlowId; } public void setFirstBrokerLoginFlowId(String firstBrokerLoginFlowId) { this.firstBrokerLoginFlowId = firstBrokerLoginFlowId; } public String getPostBrokerLoginFlowId() { return postBrokerLoginFlowId; } public void setPostBrokerLoginFlowId(String postBrokerLoginFlowId) { this.postBrokerLoginFlowId = postBrokerLoginFlowId; } public Map<String, String> getConfig() { return this.config; } public void setConfig(Map<String, String> config) { this.config = config; } public boolean isAddReadTokenRoleOnCreate() { return addReadTokenRoleOnCreate; } public void setAddReadTokenRoleOnCreate(boolean addReadTokenRoleOnCreate) { this.addReadTokenRoleOnCreate = addReadTokenRoleOnCreate; } public boolean isTrustEmail() { return trustEmail; } public void setTrustEmail(boolean trustEmail) { this.trustEmail = trustEmail; } public String getDisplayName() { return displayName; } public void setDisplayName(String displayName) { this.displayName = displayName; } }