418 lines
13 KiB
Java
Executable file
418 lines
13 KiB
Java
Executable file
/*
|
|
* 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 org.keycloak.common.enums.SslRequired;
|
|
import org.keycloak.component.ComponentModel;
|
|
import org.keycloak.provider.ProviderEvent;
|
|
import org.keycloak.storage.UserStorageProvider;
|
|
import org.keycloak.storage.UserStorageProviderModel;
|
|
|
|
import java.util.Collections;
|
|
import java.util.LinkedList;
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
import java.util.Set;
|
|
|
|
/**
|
|
* @author <a href="mailto:bill@burkecentral.com">Bill Burke</a>
|
|
* @version $Revision: 1 $
|
|
*/
|
|
public interface RealmModel extends RoleContainerModel {
|
|
interface RealmCreationEvent extends ProviderEvent {
|
|
RealmModel getCreatedRealm();
|
|
}
|
|
|
|
interface RealmPostCreateEvent extends ProviderEvent {
|
|
RealmModel getCreatedRealm();
|
|
KeycloakSession getKeycloakSession();
|
|
}
|
|
|
|
interface RealmRemovedEvent extends ProviderEvent {
|
|
RealmModel getRealm();
|
|
KeycloakSession getKeycloakSession();
|
|
}
|
|
|
|
interface ClientCreationEvent extends ProviderEvent {
|
|
ClientModel getCreatedClient();
|
|
}
|
|
|
|
// Called also during client creation after client is fully initialized (including all attributes etc)
|
|
interface ClientUpdatedEvent extends ProviderEvent {
|
|
ClientModel getUpdatedClient();
|
|
KeycloakSession getKeycloakSession();
|
|
}
|
|
|
|
interface ClientRemovedEvent extends ProviderEvent {
|
|
ClientModel getClient();
|
|
KeycloakSession getKeycloakSession();
|
|
}
|
|
|
|
interface IdentityProviderUpdatedEvent extends ProviderEvent {
|
|
RealmModel getRealm();
|
|
IdentityProviderModel getUpdatedIdentityProvider();
|
|
KeycloakSession getKeycloakSession();
|
|
}
|
|
|
|
interface IdentityProviderRemovedEvent extends ProviderEvent {
|
|
RealmModel getRealm();
|
|
IdentityProviderModel getRemovedIdentityProvider();
|
|
KeycloakSession getKeycloakSession();
|
|
}
|
|
|
|
String getId();
|
|
|
|
String getName();
|
|
|
|
void setName(String name);
|
|
|
|
String getDisplayName();
|
|
|
|
void setDisplayName(String displayName);
|
|
|
|
String getDisplayNameHtml();
|
|
|
|
void setDisplayNameHtml(String displayNameHtml);
|
|
|
|
boolean isEnabled();
|
|
|
|
void setEnabled(boolean enabled);
|
|
|
|
SslRequired getSslRequired();
|
|
|
|
void setSslRequired(SslRequired sslRequired);
|
|
|
|
boolean isRegistrationAllowed();
|
|
|
|
void setRegistrationAllowed(boolean registrationAllowed);
|
|
|
|
boolean isRegistrationEmailAsUsername();
|
|
|
|
void setRegistrationEmailAsUsername(boolean registrationEmailAsUsername);
|
|
|
|
boolean isRememberMe();
|
|
|
|
void setRememberMe(boolean rememberMe);
|
|
|
|
boolean isEditUsernameAllowed();
|
|
|
|
void setEditUsernameAllowed(boolean editUsernameAllowed);
|
|
|
|
void setAttribute(String name, String value);
|
|
void setAttribute(String name, Boolean value);
|
|
void setAttribute(String name, Integer value);
|
|
void setAttribute(String name, Long value);
|
|
void removeAttribute(String name);
|
|
String getAttribute(String name);
|
|
Integer getAttribute(String name, Integer defaultValue);
|
|
Long getAttribute(String name, Long defaultValue);
|
|
Boolean getAttribute(String name, Boolean defaultValue);
|
|
Map<String, String> getAttributes();
|
|
|
|
//--- brute force settings
|
|
boolean isBruteForceProtected();
|
|
void setBruteForceProtected(boolean value);
|
|
boolean isPermanentLockout();
|
|
void setPermanentLockout(boolean val);
|
|
int getMaxFailureWaitSeconds();
|
|
void setMaxFailureWaitSeconds(int val);
|
|
int getWaitIncrementSeconds();
|
|
void setWaitIncrementSeconds(int val);
|
|
int getMinimumQuickLoginWaitSeconds();
|
|
void setMinimumQuickLoginWaitSeconds(int val);
|
|
long getQuickLoginCheckMilliSeconds();
|
|
void setQuickLoginCheckMilliSeconds(long val);
|
|
int getMaxDeltaTimeSeconds();
|
|
void setMaxDeltaTimeSeconds(int val);
|
|
int getFailureFactor();
|
|
void setFailureFactor(int failureFactor);
|
|
//--- end brute force settings
|
|
|
|
|
|
boolean isVerifyEmail();
|
|
|
|
void setVerifyEmail(boolean verifyEmail);
|
|
|
|
boolean isLoginWithEmailAllowed();
|
|
|
|
void setLoginWithEmailAllowed(boolean loginWithEmailAllowed);
|
|
|
|
boolean isDuplicateEmailsAllowed();
|
|
|
|
void setDuplicateEmailsAllowed(boolean duplicateEmailsAllowed);
|
|
|
|
boolean isResetPasswordAllowed();
|
|
|
|
void setResetPasswordAllowed(boolean resetPasswordAllowed);
|
|
|
|
boolean isRevokeRefreshToken();
|
|
void setRevokeRefreshToken(boolean revokeRefreshToken);
|
|
|
|
int getSsoSessionIdleTimeout();
|
|
void setSsoSessionIdleTimeout(int seconds);
|
|
|
|
int getSsoSessionMaxLifespan();
|
|
void setSsoSessionMaxLifespan(int seconds);
|
|
|
|
int getOfflineSessionIdleTimeout();
|
|
void setOfflineSessionIdleTimeout(int seconds);
|
|
|
|
int getAccessTokenLifespan();
|
|
|
|
void setAccessTokenLifespan(int seconds);
|
|
|
|
int getAccessTokenLifespanForImplicitFlow();
|
|
void setAccessTokenLifespanForImplicitFlow(int seconds);
|
|
|
|
int getAccessCodeLifespan();
|
|
|
|
void setAccessCodeLifespan(int seconds);
|
|
|
|
int getAccessCodeLifespanUserAction();
|
|
|
|
void setAccessCodeLifespanUserAction(int seconds);
|
|
|
|
int getAccessCodeLifespanLogin();
|
|
|
|
void setAccessCodeLifespanLogin(int seconds);
|
|
|
|
int getActionTokenGeneratedByAdminLifespan();
|
|
void setActionTokenGeneratedByAdminLifespan(int seconds);
|
|
|
|
int getActionTokenGeneratedByUserLifespan();
|
|
void setActionTokenGeneratedByUserLifespan(int seconds);
|
|
|
|
List<RequiredCredentialModel> getRequiredCredentials();
|
|
|
|
void addRequiredCredential(String cred);
|
|
|
|
PasswordPolicy getPasswordPolicy();
|
|
|
|
void setPasswordPolicy(PasswordPolicy policy);
|
|
|
|
OTPPolicy getOTPPolicy();
|
|
void setOTPPolicy(OTPPolicy policy);
|
|
|
|
RoleModel getRoleById(String id);
|
|
|
|
List<GroupModel> getDefaultGroups();
|
|
|
|
void addDefaultGroup(GroupModel group);
|
|
|
|
void removeDefaultGroup(GroupModel group);
|
|
|
|
List<ClientModel> getClients();
|
|
|
|
ClientModel addClient(String name);
|
|
|
|
ClientModel addClient(String id, String clientId);
|
|
|
|
boolean removeClient(String id);
|
|
|
|
ClientModel getClientById(String id);
|
|
ClientModel getClientByClientId(String clientId);
|
|
|
|
void updateRequiredCredentials(Set<String> creds);
|
|
|
|
Map<String, String> getBrowserSecurityHeaders();
|
|
void setBrowserSecurityHeaders(Map<String, String> headers);
|
|
|
|
Map<String, String> getSmtpConfig();
|
|
|
|
void setSmtpConfig(Map<String, String> smtpConfig);
|
|
|
|
AuthenticationFlowModel getBrowserFlow();
|
|
void setBrowserFlow(AuthenticationFlowModel flow);
|
|
|
|
AuthenticationFlowModel getRegistrationFlow();
|
|
void setRegistrationFlow(AuthenticationFlowModel flow);
|
|
|
|
AuthenticationFlowModel getDirectGrantFlow();
|
|
void setDirectGrantFlow(AuthenticationFlowModel flow);
|
|
|
|
AuthenticationFlowModel getResetCredentialsFlow();
|
|
void setResetCredentialsFlow(AuthenticationFlowModel flow);
|
|
|
|
AuthenticationFlowModel getClientAuthenticationFlow();
|
|
void setClientAuthenticationFlow(AuthenticationFlowModel flow);
|
|
|
|
List<AuthenticationFlowModel> getAuthenticationFlows();
|
|
AuthenticationFlowModel getFlowByAlias(String alias);
|
|
AuthenticationFlowModel addAuthenticationFlow(AuthenticationFlowModel model);
|
|
AuthenticationFlowModel getAuthenticationFlowById(String id);
|
|
void removeAuthenticationFlow(AuthenticationFlowModel model);
|
|
void updateAuthenticationFlow(AuthenticationFlowModel model);
|
|
|
|
List<AuthenticationExecutionModel> getAuthenticationExecutions(String flowId);
|
|
AuthenticationExecutionModel getAuthenticationExecutionById(String id);
|
|
AuthenticationExecutionModel addAuthenticatorExecution(AuthenticationExecutionModel model);
|
|
void updateAuthenticatorExecution(AuthenticationExecutionModel model);
|
|
void removeAuthenticatorExecution(AuthenticationExecutionModel model);
|
|
|
|
|
|
List<AuthenticatorConfigModel> getAuthenticatorConfigs();
|
|
AuthenticatorConfigModel addAuthenticatorConfig(AuthenticatorConfigModel model);
|
|
void updateAuthenticatorConfig(AuthenticatorConfigModel model);
|
|
void removeAuthenticatorConfig(AuthenticatorConfigModel model);
|
|
AuthenticatorConfigModel getAuthenticatorConfigById(String id);
|
|
AuthenticatorConfigModel getAuthenticatorConfigByAlias(String alias);
|
|
|
|
List<RequiredActionProviderModel> getRequiredActionProviders();
|
|
RequiredActionProviderModel addRequiredActionProvider(RequiredActionProviderModel model);
|
|
void updateRequiredActionProvider(RequiredActionProviderModel model);
|
|
void removeRequiredActionProvider(RequiredActionProviderModel model);
|
|
RequiredActionProviderModel getRequiredActionProviderById(String id);
|
|
RequiredActionProviderModel getRequiredActionProviderByAlias(String alias);
|
|
|
|
List<IdentityProviderModel> getIdentityProviders();
|
|
IdentityProviderModel getIdentityProviderByAlias(String alias);
|
|
void addIdentityProvider(IdentityProviderModel identityProvider);
|
|
void removeIdentityProviderByAlias(String alias);
|
|
void updateIdentityProvider(IdentityProviderModel identityProvider);
|
|
Set<IdentityProviderMapperModel> getIdentityProviderMappers();
|
|
Set<IdentityProviderMapperModel> getIdentityProviderMappersByAlias(String brokerAlias);
|
|
IdentityProviderMapperModel addIdentityProviderMapper(IdentityProviderMapperModel model);
|
|
void removeIdentityProviderMapper(IdentityProviderMapperModel mapping);
|
|
void updateIdentityProviderMapper(IdentityProviderMapperModel mapping);
|
|
public IdentityProviderMapperModel getIdentityProviderMapperById(String id);
|
|
public IdentityProviderMapperModel getIdentityProviderMapperByName(String brokerAlias, String name);
|
|
|
|
|
|
/**
|
|
* Adds component model. Will call onCreate() method of ComponentFactory
|
|
*
|
|
* @param model
|
|
* @return
|
|
*/
|
|
ComponentModel addComponentModel(ComponentModel model);
|
|
|
|
/**
|
|
* Adds component model. Will NOT call onCreate() method of ComponentFactory
|
|
*
|
|
* @param model
|
|
* @return
|
|
*/
|
|
ComponentModel importComponentModel(ComponentModel model);
|
|
|
|
void updateComponent(ComponentModel component);
|
|
void removeComponent(ComponentModel component);
|
|
void removeComponents(String parentId);
|
|
List<ComponentModel> getComponents(String parentId, String providerType);
|
|
|
|
List<ComponentModel> getComponents(String parentId);
|
|
|
|
List<ComponentModel> getComponents();
|
|
ComponentModel getComponent(String id);
|
|
|
|
default
|
|
List<UserStorageProviderModel> getUserStorageProviders() {
|
|
List<UserStorageProviderModel> list = new LinkedList<>();
|
|
for (ComponentModel component : getComponents(getId(), UserStorageProvider.class.getName())) {
|
|
list.add(new UserStorageProviderModel(component));
|
|
}
|
|
Collections.sort(list, UserStorageProviderModel.comparator);
|
|
return list;
|
|
}
|
|
|
|
String getLoginTheme();
|
|
|
|
void setLoginTheme(String name);
|
|
|
|
String getAccountTheme();
|
|
|
|
void setAccountTheme(String name);
|
|
|
|
String getAdminTheme();
|
|
|
|
void setAdminTheme(String name);
|
|
|
|
String getEmailTheme();
|
|
|
|
void setEmailTheme(String name);
|
|
|
|
|
|
/**
|
|
* Time in seconds since epoc
|
|
*
|
|
* @return
|
|
*/
|
|
int getNotBefore();
|
|
|
|
void setNotBefore(int notBefore);
|
|
|
|
boolean isEventsEnabled();
|
|
|
|
void setEventsEnabled(boolean enabled);
|
|
|
|
// boolean isPersistUserSessions();
|
|
//
|
|
// void setPersistUserSessions();
|
|
|
|
long getEventsExpiration();
|
|
|
|
void setEventsExpiration(long expiration);
|
|
|
|
Set<String> getEventsListeners();
|
|
|
|
void setEventsListeners(Set<String> listeners);
|
|
|
|
Set<String> getEnabledEventTypes();
|
|
|
|
void setEnabledEventTypes(Set<String> enabledEventTypes);
|
|
|
|
boolean isAdminEventsEnabled();
|
|
|
|
void setAdminEventsEnabled(boolean enabled);
|
|
|
|
boolean isAdminEventsDetailsEnabled();
|
|
|
|
void setAdminEventsDetailsEnabled(boolean enabled);
|
|
|
|
ClientModel getMasterAdminClient();
|
|
|
|
void setMasterAdminClient(ClientModel client);
|
|
|
|
boolean isIdentityFederationEnabled();
|
|
|
|
boolean isInternationalizationEnabled();
|
|
void setInternationalizationEnabled(boolean enabled);
|
|
Set<String> getSupportedLocales();
|
|
void setSupportedLocales(Set<String> locales);
|
|
String getDefaultLocale();
|
|
void setDefaultLocale(String locale);
|
|
|
|
GroupModel createGroup(String name);
|
|
GroupModel createGroup(String id, String name);
|
|
|
|
GroupModel getGroupById(String id);
|
|
List<GroupModel> getGroups();
|
|
List<GroupModel> getTopLevelGroups();
|
|
boolean removeGroup(GroupModel group);
|
|
void moveGroup(GroupModel group, GroupModel toParent);
|
|
|
|
List<ClientTemplateModel> getClientTemplates();
|
|
|
|
ClientTemplateModel addClientTemplate(String name);
|
|
|
|
ClientTemplateModel addClientTemplate(String id, String name);
|
|
|
|
boolean removeClientTemplate(String id);
|
|
|
|
ClientTemplateModel getClientTemplateById(String id);
|
|
|
|
}
|