/* * 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.forms.login; import org.keycloak.models.ClientSessionModel; import org.keycloak.models.ProtocolMapperModel; import org.keycloak.models.RoleModel; import org.keycloak.models.UserModel; import org.keycloak.models.utils.FormMessage; import org.keycloak.provider.Provider; import javax.ws.rs.core.MultivaluedMap; import javax.ws.rs.core.Response; import java.net.URI; import java.util.List; /** * @author <a href="mailto:sthorger@redhat.com">Stian Thorgersen</a> */ public interface LoginFormsProvider extends Provider { String UPDATE_PROFILE_CONTEXT_ATTR = "updateProfileCtx"; String IDENTITY_PROVIDER_BROKER_CONTEXT = "identityProviderBrokerCtx"; String USERNAME_EDIT_DISABLED = "usernameEditDisabled"; /** * Adds a script to the html header * * @param scriptUrl */ void addScript(String scriptUrl); public Response createResponse(UserModel.RequiredAction action); Response createForm(String form); public Response createLogin(); public Response createPasswordReset(); public Response createLoginTotp(); public Response createRegistration(); public Response createInfoPage(); public Response createUpdateProfilePage(); public Response createIdpLinkConfirmLinkPage(); public Response createIdpLinkEmailPage(); public Response createErrorPage(); public Response createOAuthGrant(ClientSessionModel clientSessionModel); public Response createCode(); public LoginFormsProvider setClientSessionCode(String accessCode); public LoginFormsProvider setClientSession(ClientSessionModel clientSession); public LoginFormsProvider setAccessRequest(List<RoleModel> realmRolesRequested, MultivaluedMap<String,RoleModel> resourceRolesRequested, List<ProtocolMapperModel> protocolMappers); public LoginFormsProvider setAccessRequest(String message); /** * Set one global error message. * * @param message key of message * @param parameters to be formatted into message */ public LoginFormsProvider setError(String message, Object ... parameters); /** * Set multiple error messages. * * @param messages to be set */ public LoginFormsProvider setErrors(List<FormMessage> messages); LoginFormsProvider addError(FormMessage errorMessage); /** * Add a success message to the form * * @param errorMessage * @return */ LoginFormsProvider addSuccess(FormMessage errorMessage); public LoginFormsProvider setSuccess(String message, Object ... parameters); public LoginFormsProvider setInfo(String message, Object ... parameters); public LoginFormsProvider setUser(UserModel user); public LoginFormsProvider setResponseHeader(String headerName, String headerValue); public LoginFormsProvider setFormData(MultivaluedMap<String, String> formData); LoginFormsProvider setAttribute(String name, Object value); public LoginFormsProvider setStatus(Response.Status status); LoginFormsProvider setActionUri(URI requestUri); }