keycloak-service
クラス | 公開メンバ関数 | 静的公開メンバ関数 | 非公開変数類 | 全メンバ一覧
org.keycloak.authentication.authenticators.broker.util.SerializedBrokeredIdentityContext クラス
org.keycloak.authentication.authenticators.broker.util.SerializedBrokeredIdentityContext の継承関係図
Inheritance graph
org.keycloak.authentication.authenticators.broker.util.SerializedBrokeredIdentityContext 連携図
Collaboration graph

クラス

class  ContextDataEntry
 

公開メンバ関数

boolean isEditUsernameAllowed ()
 
String getId ()
 
void setId (String id)
 
String getUsername ()
 
void setUsername (String username)
 
String getModelUsername ()
 
void setModelUsername (String modelUsername)
 
String getBrokerUsername ()
 
void setBrokerUsername (String modelUsername)
 
String getEmail ()
 
void setEmail (String email)
 
String getFirstName ()
 
void setFirstName (String firstName)
 
String getLastName ()
 
void setLastName (String lastName)
 
String getBrokerSessionId ()
 
void setBrokerSessionId (String brokerSessionId)
 
String getBrokerUserId ()
 
void setBrokerUserId (String brokerUserId)
 
String getCode ()
 
void setCode (String code)
 
String getToken ()
 
void setToken (String token)
 
String getIdentityProviderId ()
 
void setIdentityProviderId (String identityProviderId)
 
Map< String, ContextDataEntrygetContextData ()
 
void setContextData (Map< String, ContextDataEntry > contextData)
 
Map< String, List< String > > getAttributes ()
 
void setSingleAttribute (String name, String value)
 
void setAttribute (String key, List< String > value)
 
List< String > getAttribute (String key)
 
String getFirstAttribute (String name)
 
BrokeredIdentityContext deserialize (KeycloakSession session, AuthenticationSessionModel authSession)
 
void saveToAuthenticationSession (AuthenticationSessionModel authSession, String noteKey)
 

静的公開メンバ関数

static SerializedBrokeredIdentityContext serialize (BrokeredIdentityContext context)
 
static SerializedBrokeredIdentityContext readFromAuthenticationSession (AuthenticationSessionModel authSession, String noteKey)
 

非公開変数類

String id
 
String brokerUsername
 
String modelUsername
 
String email
 
String firstName
 
String lastName
 
String brokerSessionId
 
String brokerUserId
 
String code
 
String token
 
boolean emailAsUsername
 
String identityProviderId
 
Map< String, ContextDataEntrycontextData = new HashMap<>()
 

詳解

著者
Marek Posolda

関数詳解

◆ deserialize()

BrokeredIdentityContext org.keycloak.authentication.authenticators.broker.util.SerializedBrokeredIdentityContext.deserialize ( KeycloakSession  session,
AuthenticationSessionModel  authSession 
)
inline
249  {
250  BrokeredIdentityContext ctx = new BrokeredIdentityContext(getId());
251 
252  ctx.setUsername(getBrokerUsername());
253  ctx.setModelUsername(getModelUsername());
254  ctx.setEmail(getEmail());
255  ctx.setFirstName(getFirstName());
256  ctx.setLastName(getLastName());
257  ctx.setBrokerSessionId(getBrokerSessionId());
258  ctx.setBrokerUserId(getBrokerUserId());
259  ctx.setToken(getToken());
260 
261  RealmModel realm = authSession.getRealm();
262  IdentityProviderModel idpConfig = realm.getIdentityProviderByAlias(getIdentityProviderId());
263  if (idpConfig == null) {
264  throw new ModelException("Can't find identity provider with ID " + getIdentityProviderId() + " in realm " + realm.getName());
265  }
266  IdentityProvider idp = IdentityBrokerService.getIdentityProvider(session, realm, idpConfig.getAlias());
267  ctx.setIdpConfig(idpConfig);
268  ctx.setIdp(idp);
269 
270  IdentityProviderDataMarshaller serializer = idp.getMarshaller();
271 
272  for (Map.Entry<String, ContextDataEntry> entry : getContextData().entrySet()) {
273  try {
274  ContextDataEntry value = entry.getValue();
275  Class<?> clazz = Reflections.classForName(value.getClazz(), this.getClass().getClassLoader());
276 
277  Object deserialized = serializer.deserialize(value.getData(), clazz);
278 
279  ctx.getContextData().put(entry.getKey(), deserialized);
280  } catch (Exception e) {
281  throw new RuntimeException(e);
282  }
283  }
284 
285  ctx.setAuthenticationSession(authSession);
286  return ctx;
287  }
String getFirstName()
Definition: SerializedBrokeredIdentityContext.java:116
String getToken()
Definition: SerializedBrokeredIdentityContext.java:159
String getBrokerUsername()
Definition: SerializedBrokeredIdentityContext.java:97
String getId()
Definition: SerializedBrokeredIdentityContext.java:70
String getModelUsername()
Definition: SerializedBrokeredIdentityContext.java:89
String getIdentityProviderId()
Definition: SerializedBrokeredIdentityContext.java:167
String getEmail()
Definition: SerializedBrokeredIdentityContext.java:106
String getBrokerUserId()
Definition: SerializedBrokeredIdentityContext.java:143
String getLastName()
Definition: SerializedBrokeredIdentityContext.java:126
Map< String, ContextDataEntry > getContextData()
Definition: SerializedBrokeredIdentityContext.java:175
String getBrokerSessionId()
Definition: SerializedBrokeredIdentityContext.java:135

◆ getAttribute()

List<String> org.keycloak.authentication.authenticators.broker.util.SerializedBrokeredIdentityContext.getAttribute ( String  key)
inline

org.keycloak.authentication.requiredactions.util.UpdateProfileContextを実装しています。

222  {
223  ContextDataEntry ctxEntry = this.contextData.get(Constants.USER_ATTRIBUTES_PREFIX + key);
224  if (ctxEntry != null) {
225  try {
226  String asString = ctxEntry.getData();
227  byte[] asBytes = Base64Url.decode(asString);
228  List<String> asList = JsonSerialization.readValue(asBytes, List.class);
229  return asList;
230  } catch (IOException ioe) {
231  throw new RuntimeException(ioe);
232  }
233  } else {
234  return null;
235  }
236  }
Map< String, ContextDataEntry > contextData
Definition: SerializedBrokeredIdentityContext.java:62

◆ getAttributes()

Map<String, List<String> > org.keycloak.authentication.authenticators.broker.util.SerializedBrokeredIdentityContext.getAttributes ( )
inline

org.keycloak.authentication.requiredactions.util.UpdateProfileContextを実装しています。

185  {
186  Map<String, List<String>> result = new HashMap<>();
187 
188  for (Map.Entry<String, ContextDataEntry> entry : this.contextData.entrySet()) {
189  if (entry.getKey().startsWith(Constants.USER_ATTRIBUTES_PREFIX)) {
190  String attrName = entry.getKey().substring(16); // length of USER_ATTRIBUTES_PREFIX
191  List<String> asList = getAttribute(attrName);
192  result.put(attrName, asList);
193  }
194  }
195 
196  return result;
197  }
List< String > getAttribute(String key)
Definition: SerializedBrokeredIdentityContext.java:222

◆ getBrokerSessionId()

String org.keycloak.authentication.authenticators.broker.util.SerializedBrokeredIdentityContext.getBrokerSessionId ( )
inline
135  {
136  return brokerSessionId;
137  }
String brokerSessionId
Definition: SerializedBrokeredIdentityContext.java:53

◆ getBrokerUserId()

String org.keycloak.authentication.authenticators.broker.util.SerializedBrokeredIdentityContext.getBrokerUserId ( )
inline
143  {
144  return brokerUserId;
145  }
String brokerUserId
Definition: SerializedBrokeredIdentityContext.java:54

◆ getBrokerUsername()

String org.keycloak.authentication.authenticators.broker.util.SerializedBrokeredIdentityContext.getBrokerUsername ( )
inline
97  {
98  return brokerUsername;
99  }
String brokerUsername
Definition: SerializedBrokeredIdentityContext.java:48

◆ getCode()

String org.keycloak.authentication.authenticators.broker.util.SerializedBrokeredIdentityContext.getCode ( )
inline
151  {
152  return code;
153  }
String code
Definition: SerializedBrokeredIdentityContext.java:55

◆ getContextData()

Map<String, ContextDataEntry> org.keycloak.authentication.authenticators.broker.util.SerializedBrokeredIdentityContext.getContextData ( )
inline
175  {
176  return contextData;
177  }
Map< String, ContextDataEntry > contextData
Definition: SerializedBrokeredIdentityContext.java:62

◆ getEmail()

String org.keycloak.authentication.authenticators.broker.util.SerializedBrokeredIdentityContext.getEmail ( )
inline

org.keycloak.authentication.requiredactions.util.UpdateProfileContextを実装しています。

106  {
107  return email;
108  }
String email
Definition: SerializedBrokeredIdentityContext.java:50

◆ getFirstAttribute()

String org.keycloak.authentication.authenticators.broker.util.SerializedBrokeredIdentityContext.getFirstAttribute ( String  name)
inline

org.keycloak.authentication.requiredactions.util.UpdateProfileContextを実装しています。

240  {
241  List<String> attrs = getAttribute(name);
242  if (attrs == null || attrs.isEmpty()) {
243  return null;
244  } else {
245  return attrs.get(0);
246  }
247  }
List< String > getAttribute(String key)
Definition: SerializedBrokeredIdentityContext.java:222

◆ getFirstName()

String org.keycloak.authentication.authenticators.broker.util.SerializedBrokeredIdentityContext.getFirstName ( )
inline

org.keycloak.authentication.requiredactions.util.UpdateProfileContextを実装しています。

116  {
117  return firstName;
118  }
String firstName
Definition: SerializedBrokeredIdentityContext.java:51

◆ getId()

String org.keycloak.authentication.authenticators.broker.util.SerializedBrokeredIdentityContext.getId ( )
inline
70  {
71  return id;
72  }
String id
Definition: SerializedBrokeredIdentityContext.java:47

◆ getIdentityProviderId()

String org.keycloak.authentication.authenticators.broker.util.SerializedBrokeredIdentityContext.getIdentityProviderId ( )
inline
167  {
168  return identityProviderId;
169  }
String identityProviderId
Definition: SerializedBrokeredIdentityContext.java:61

◆ getLastName()

String org.keycloak.authentication.authenticators.broker.util.SerializedBrokeredIdentityContext.getLastName ( )
inline

org.keycloak.authentication.requiredactions.util.UpdateProfileContextを実装しています。

126  {
127  return lastName;
128  }
String lastName
Definition: SerializedBrokeredIdentityContext.java:52

◆ getModelUsername()

String org.keycloak.authentication.authenticators.broker.util.SerializedBrokeredIdentityContext.getModelUsername ( )
inline
89  {
90  return modelUsername;
91  }
String modelUsername
Definition: SerializedBrokeredIdentityContext.java:49

◆ getToken()

String org.keycloak.authentication.authenticators.broker.util.SerializedBrokeredIdentityContext.getToken ( )
inline
159  {
160  return token;
161  }
String token
Definition: SerializedBrokeredIdentityContext.java:56

◆ getUsername()

String org.keycloak.authentication.authenticators.broker.util.SerializedBrokeredIdentityContext.getUsername ( )
inline

org.keycloak.authentication.requiredactions.util.UpdateProfileContextを実装しています。

80  {
81  return modelUsername;
82  }
String modelUsername
Definition: SerializedBrokeredIdentityContext.java:49

◆ isEditUsernameAllowed()

boolean org.keycloak.authentication.authenticators.broker.util.SerializedBrokeredIdentityContext.isEditUsernameAllowed ( )
inline

org.keycloak.authentication.requiredactions.util.UpdateProfileContextを実装しています。

66  {
67  return !emailAsUsername;
68  }
boolean emailAsUsername
Definition: SerializedBrokeredIdentityContext.java:59

◆ readFromAuthenticationSession()

static SerializedBrokeredIdentityContext org.keycloak.authentication.authenticators.broker.util.SerializedBrokeredIdentityContext.readFromAuthenticationSession ( AuthenticationSessionModel  authSession,
String  noteKey 
)
inlinestatic
326  {
327  String asString = authSession.getAuthNote(noteKey);
328  if (asString == null) {
329  return null;
330  } else {
331  try {
332  SerializedBrokeredIdentityContext serializedCtx = JsonSerialization.readValue(asString, SerializedBrokeredIdentityContext.class);
333  serializedCtx.emailAsUsername = authSession.getRealm().isRegistrationEmailAsUsername();
334  return serializedCtx;
335  } catch (IOException ioe) {
336  throw new RuntimeException(ioe);
337  }
338  }
339  }

◆ saveToAuthenticationSession()

void org.keycloak.authentication.authenticators.broker.util.SerializedBrokeredIdentityContext.saveToAuthenticationSession ( AuthenticationSessionModel  authSession,
String  noteKey 
)
inline
317  {
318  try {
319  String asString = JsonSerialization.writeValueAsString(this);
320  authSession.setAuthNote(noteKey, asString);
321  } catch (IOException ioe) {
322  throw new RuntimeException(ioe);
323  }
324  }

◆ serialize()

static SerializedBrokeredIdentityContext org.keycloak.authentication.authenticators.broker.util.SerializedBrokeredIdentityContext.serialize ( BrokeredIdentityContext  context)
inlinestatic
289  {
290  SerializedBrokeredIdentityContext ctx = new SerializedBrokeredIdentityContext();
291  ctx.setId(context.getId());
292  ctx.setBrokerUsername(context.getUsername());
293  ctx.setModelUsername(context.getModelUsername());
294  ctx.setEmail(context.getEmail());
295  ctx.setFirstName(context.getFirstName());
296  ctx.setLastName(context.getLastName());
297  ctx.setBrokerSessionId(context.getBrokerSessionId());
298  ctx.setBrokerUserId(context.getBrokerUserId());
299  ctx.setToken(context.getToken());
300  ctx.setIdentityProviderId(context.getIdpConfig().getAlias());
301 
302  ctx.emailAsUsername = context.getAuthenticationSession().getRealm().isRegistrationEmailAsUsername();
303 
304  IdentityProviderDataMarshaller serializer = context.getIdp().getMarshaller();
305 
306  for (Map.Entry<String, Object> entry : context.getContextData().entrySet()) {
307  Object value = entry.getValue();
308  String serializedValue = serializer.serialize(value);
309 
310  ContextDataEntry ctxEntry = ContextDataEntry.create(value.getClass().getName(), serializedValue);
311  ctx.getContextData().put(entry.getKey(), ctxEntry);
312  }
313  return ctx;
314  }

◆ setAttribute()

void org.keycloak.authentication.authenticators.broker.util.SerializedBrokeredIdentityContext.setAttribute ( String  key,
List< String >  value 
)
inline

org.keycloak.authentication.requiredactions.util.UpdateProfileContextを実装しています。

209  {
210  try {
211  byte[] listBytes = JsonSerialization.writeValueAsBytes(value);
212  String listStr = Base64Url.encode(listBytes);
213  ContextDataEntry ctxEntry = ContextDataEntry.create(List.class.getName(), listStr);
214  this.contextData.put(Constants.USER_ATTRIBUTES_PREFIX + key, ctxEntry);
215  } catch (IOException ioe) {
216  throw new RuntimeException(ioe);
217  }
218  }
Map< String, ContextDataEntry > contextData
Definition: SerializedBrokeredIdentityContext.java:62

◆ setBrokerSessionId()

void org.keycloak.authentication.authenticators.broker.util.SerializedBrokeredIdentityContext.setBrokerSessionId ( String  brokerSessionId)
inline
139  {
141  }
String brokerSessionId
Definition: SerializedBrokeredIdentityContext.java:53

◆ setBrokerUserId()

void org.keycloak.authentication.authenticators.broker.util.SerializedBrokeredIdentityContext.setBrokerUserId ( String  brokerUserId)
inline
147  {
148  this.brokerUserId = brokerUserId;
149  }
String brokerUserId
Definition: SerializedBrokeredIdentityContext.java:54

◆ setBrokerUsername()

void org.keycloak.authentication.authenticators.broker.util.SerializedBrokeredIdentityContext.setBrokerUsername ( String  modelUsername)
inline
101  {
103  }
String modelUsername
Definition: SerializedBrokeredIdentityContext.java:49
String brokerUsername
Definition: SerializedBrokeredIdentityContext.java:48

◆ setCode()

void org.keycloak.authentication.authenticators.broker.util.SerializedBrokeredIdentityContext.setCode ( String  code)
inline
155  {
156  this.code = code;
157  }
String code
Definition: SerializedBrokeredIdentityContext.java:55

◆ setContextData()

void org.keycloak.authentication.authenticators.broker.util.SerializedBrokeredIdentityContext.setContextData ( Map< String, ContextDataEntry contextData)
inline
179  {
180  this.contextData = contextData;
181  }
Map< String, ContextDataEntry > contextData
Definition: SerializedBrokeredIdentityContext.java:62

◆ setEmail()

void org.keycloak.authentication.authenticators.broker.util.SerializedBrokeredIdentityContext.setEmail ( String  email)
inline

org.keycloak.authentication.requiredactions.util.UpdateProfileContextを実装しています。

111  {
112  this.email = email;
113  }
String email
Definition: SerializedBrokeredIdentityContext.java:50

◆ setFirstName()

void org.keycloak.authentication.authenticators.broker.util.SerializedBrokeredIdentityContext.setFirstName ( String  firstName)
inline

org.keycloak.authentication.requiredactions.util.UpdateProfileContextを実装しています。

121  {
122  this.firstName = firstName;
123  }
String firstName
Definition: SerializedBrokeredIdentityContext.java:51

◆ setId()

void org.keycloak.authentication.authenticators.broker.util.SerializedBrokeredIdentityContext.setId ( String  id)
inline
74  {
75  this.id = id;
76  }
String id
Definition: SerializedBrokeredIdentityContext.java:47

◆ setIdentityProviderId()

void org.keycloak.authentication.authenticators.broker.util.SerializedBrokeredIdentityContext.setIdentityProviderId ( String  identityProviderId)
inline
171  {
173  }
String identityProviderId
Definition: SerializedBrokeredIdentityContext.java:61

◆ setLastName()

void org.keycloak.authentication.authenticators.broker.util.SerializedBrokeredIdentityContext.setLastName ( String  lastName)
inline

org.keycloak.authentication.requiredactions.util.UpdateProfileContextを実装しています。

131  {
132  this.lastName = lastName;
133  }
String lastName
Definition: SerializedBrokeredIdentityContext.java:52

◆ setModelUsername()

void org.keycloak.authentication.authenticators.broker.util.SerializedBrokeredIdentityContext.setModelUsername ( String  modelUsername)
inline
93  {
95  }
String modelUsername
Definition: SerializedBrokeredIdentityContext.java:49

◆ setSingleAttribute()

void org.keycloak.authentication.authenticators.broker.util.SerializedBrokeredIdentityContext.setSingleAttribute ( String  name,
String  value 
)
inline

org.keycloak.authentication.requiredactions.util.UpdateProfileContextを実装しています。

201  {
202  List<String> list = new ArrayList<>();
203  list.add(value);
204  setAttribute(name, list);
205  }
void setAttribute(String key, List< String > value)
Definition: SerializedBrokeredIdentityContext.java:209

◆ setToken()

void org.keycloak.authentication.authenticators.broker.util.SerializedBrokeredIdentityContext.setToken ( String  token)
inline
163  {
164  this.token = token;
165  }
String token
Definition: SerializedBrokeredIdentityContext.java:56

◆ setUsername()

void org.keycloak.authentication.authenticators.broker.util.SerializedBrokeredIdentityContext.setUsername ( String  username)
inline

org.keycloak.authentication.requiredactions.util.UpdateProfileContextを実装しています。

85  {
86  this.modelUsername = username;
87  }
String modelUsername
Definition: SerializedBrokeredIdentityContext.java:49

メンバ詳解

◆ brokerSessionId

String org.keycloak.authentication.authenticators.broker.util.SerializedBrokeredIdentityContext.brokerSessionId
private

◆ brokerUserId

String org.keycloak.authentication.authenticators.broker.util.SerializedBrokeredIdentityContext.brokerUserId
private

◆ brokerUsername

String org.keycloak.authentication.authenticators.broker.util.SerializedBrokeredIdentityContext.brokerUsername
private

◆ code

String org.keycloak.authentication.authenticators.broker.util.SerializedBrokeredIdentityContext.code
private

◆ contextData

Map<String, ContextDataEntry> org.keycloak.authentication.authenticators.broker.util.SerializedBrokeredIdentityContext.contextData = new HashMap<>()
private

◆ email

String org.keycloak.authentication.authenticators.broker.util.SerializedBrokeredIdentityContext.email
private

◆ emailAsUsername

boolean org.keycloak.authentication.authenticators.broker.util.SerializedBrokeredIdentityContext.emailAsUsername
private

◆ firstName

String org.keycloak.authentication.authenticators.broker.util.SerializedBrokeredIdentityContext.firstName
private

◆ id

String org.keycloak.authentication.authenticators.broker.util.SerializedBrokeredIdentityContext.id
private

◆ identityProviderId

String org.keycloak.authentication.authenticators.broker.util.SerializedBrokeredIdentityContext.identityProviderId
private

◆ lastName

String org.keycloak.authentication.authenticators.broker.util.SerializedBrokeredIdentityContext.lastName
private

◆ modelUsername

String org.keycloak.authentication.authenticators.broker.util.SerializedBrokeredIdentityContext.modelUsername
private

◆ token

String org.keycloak.authentication.authenticators.broker.util.SerializedBrokeredIdentityContext.token
private

このクラス詳解は次のファイルから抽出されました: