All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.keycloak.broker.provider.BrokeredIdentityContext Maven / Gradle / Ivy

There is a newer version: 25.0.5
Show newest version
/*
 * 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.broker.provider;

import org.keycloak.models.ClientSessionModel;
import org.keycloak.models.Constants;
import org.keycloak.models.IdentityProviderModel;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * 

Represents all identity information obtained from an {@link org.keycloak.broker.provider.IdentityProvider} after a * successful authentication.

* * @author Pedro Igor */ public class BrokeredIdentityContext { private String id; private String username; private String modelUsername; private String email; private String firstName; private String lastName; private String brokerSessionId; private String brokerUserId; private String code; private String token; private IdentityProviderModel idpConfig; private IdentityProvider idp; private Map contextData = new HashMap<>(); private ClientSessionModel clientSession; public BrokeredIdentityContext(String id) { if (id == null) { throw new RuntimeException("No identifier provider for identity."); } this.id = id; } public String getId() { return id; } public void setId(String id) { this.id = id; } /** * Username in remote idp * * @return */ public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } /** * username to store in UserModel * * @return */ public String getModelUsername() { return modelUsername; } public void setModelUsername(String modelUsername) { this.modelUsername = modelUsername; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public String getBrokerSessionId() { return brokerSessionId; } public void setBrokerSessionId(String brokerSessionId) { this.brokerSessionId = brokerSessionId; } public String getBrokerUserId() { return brokerUserId; } public void setBrokerUserId(String brokerUserId) { this.brokerUserId = brokerUserId; } public String getToken() { return token; } public void setToken(String token) { this.token = token; } public String getCode() { return code; } public void setCode(String code) { this.code = code; } public IdentityProviderModel getIdpConfig() { return idpConfig; } public void setIdpConfig(IdentityProviderModel idpConfig) { this.idpConfig = idpConfig; } public IdentityProvider getIdp() { return idp; } public void setIdp(IdentityProvider idp) { this.idp = idp; } public Map getContextData() { return contextData; } public void setContextData(Map contextData) { this.contextData = contextData; } // Set the attribute, which will be available on "Update profile" page and in authenticators public void setUserAttribute(String attributeName, String attributeValue) { List list = new ArrayList<>(); list.add(attributeValue); getContextData().put(Constants.USER_ATTRIBUTES_PREFIX + attributeName, list); } public String getUserAttribute(String attributeName) { List userAttribute = (List) getContextData().get(Constants.USER_ATTRIBUTES_PREFIX + attributeName); if (userAttribute == null || userAttribute.isEmpty()) { return null; } else { return userAttribute.get(0); } } public String getFirstName() { return firstName; } public void setFirstName(String firstName) { this.firstName = firstName; } public String getLastName() { return lastName; } public void setLastName(String lastName) { this.lastName = lastName; } public ClientSessionModel getClientSession() { return clientSession; } public void setClientSession(ClientSessionModel clientSession) { this.clientSession = clientSession; } public void setName(String name) { if (name != null) { int i = name.lastIndexOf(' '); if (i != -1) { firstName = name.substring(0, i); lastName = name.substring(i + 1); } else { firstName = name; } } } @Override public String toString() { return "{" + "id='" + id + '\'' + ", username='" + username + '\'' + ", email='" + email + '\'' + '}'; } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy