keycloak-service
公開メンバ関数 | 静的公開メンバ関数 | 静的公開変数類 | 限定公開メンバ関数 | 静的限定公開メンバ関数 | 静的非公開メンバ関数 | 全メンバ一覧
org.keycloak.protocol.oidc.mappers.AbstractUserRoleMappingMapper クラスabstract
org.keycloak.protocol.oidc.mappers.AbstractUserRoleMappingMapper の継承関係図
Inheritance graph
org.keycloak.protocol.oidc.mappers.AbstractUserRoleMappingMapper 連携図
Collaboration graph

公開メンバ関数

String getProtocol ()
 
void close ()
 
final ProtocolMapper create (KeycloakSession session)
 
void init (Config.Scope config)
 
void postInit (KeycloakSessionFactory factory)
 
AccessToken transformUserInfoToken (AccessToken token, ProtocolMapperModel mappingModel, KeycloakSession session, UserSessionModel userSession, AuthenticatedClientSessionModel clientSession)
 
AccessToken transformAccessToken (AccessToken token, ProtocolMapperModel mappingModel, KeycloakSession session, UserSessionModel userSession, AuthenticatedClientSessionModel clientSession)
 
IDToken transformIDToken (IDToken token, ProtocolMapperModel mappingModel, KeycloakSession session, UserSessionModel userSession, AuthenticatedClientSessionModel clientSession)
 
AccessToken transformAccessToken (AccessToken token, ProtocolMapperModel mappingModel, KeycloakSession session, UserSessionModel userSession, AuthenticatedClientSessionModel clientSession)
 
IDToken transformIDToken (IDToken token, ProtocolMapperModel mappingModel, KeycloakSession session, UserSessionModel userSession, AuthenticatedClientSessionModel clientSession)
 
AccessToken transformUserInfoToken (AccessToken token, ProtocolMapperModel mappingModel, KeycloakSession session, UserSessionModel userSession, AuthenticatedClientSessionModel clientSession)
 

静的公開メンバ関数

static Stream< RoleModel > getAllUserRolesStream (UserModel user)
 

静的公開変数類

static final String TOKEN_MAPPER_CATEGORY = "Token mapper"
 

限定公開メンバ関数

void setClaim (IDToken token, ProtocolMapperModel mappingModel, UserSessionModel userSession)
 
void setClaim (IDToken token, ProtocolMapperModel mappingModel, UserSessionModel userSession, KeycloakSession keycloakSession)
 

静的限定公開メンバ関数

static void setClaim (IDToken token, ProtocolMapperModel mappingModel, UserSessionModel userSession, Predicate< RoleModel > restriction, String prefix)
 

静的非公開メンバ関数

static Stream< GroupModel > groupAndItsParentsStream (GroupModel group)
 

詳解

Base class for mapping of user role mappings to an ID and Access Token claim.

著者
Thomas Darimont

関数詳解

◆ close()

void org.keycloak.protocol.oidc.mappers.AbstractOIDCProtocolMapper.close ( )
inlineinherited
45  {
46 
47  }

◆ create()

final ProtocolMapper org.keycloak.protocol.oidc.mappers.AbstractOIDCProtocolMapper.create ( KeycloakSession  session)
inlineinherited
50  {
51  throw new RuntimeException("UNSUPPORTED METHOD");
52  }

◆ getAllUserRolesStream()

static Stream<RoleModel> org.keycloak.protocol.oidc.mappers.AbstractUserRoleMappingMapper.getAllUserRolesStream ( UserModel  user)
inlinestatic

Returns a stream with roles that come from:

  • Direct assignment of the role to the user
  • Direct assignment of the role to any group of the user or any of its parent group
  • Composite roles are expanded recursively, the composite role itself is also contained in the returned stream
引数
userUser to enumerate the roles for
戻り値
52  {
53  return Stream.concat(
54  user.getRoleMappings().stream(),
55  user.getGroups().stream()
56  .flatMap(g -> groupAndItsParentsStream(g))
57  .flatMap(g -> g.getRoleMappings().stream()))
58  .flatMap(RoleUtils::expandCompositeRolesStream);
59  }
static Stream< GroupModel > groupAndItsParentsStream(GroupModel group)
Definition: AbstractUserRoleMappingMapper.java:66

◆ getProtocol()

String org.keycloak.protocol.oidc.mappers.AbstractOIDCProtocolMapper.getProtocol ( )
inlineinherited
40  {
41  return OIDCLoginProtocol.LOGIN_PROTOCOL;
42  }

◆ groupAndItsParentsStream()

static Stream<GroupModel> org.keycloak.protocol.oidc.mappers.AbstractUserRoleMappingMapper.groupAndItsParentsStream ( GroupModel  group)
inlinestaticprivate

Returns stream of the given group and its parents (recursively).

引数
group
戻り値
66  {
67  Stream.Builder<GroupModel> sb = Stream.builder();
68  while (group != null) {
69  sb.add(group);
70  group = group.getParent();
71  }
72  return sb.build();
73  }

◆ init()

void org.keycloak.protocol.oidc.mappers.AbstractOIDCProtocolMapper.init ( Config.Scope  config)
inlineinherited
55  {
56  }

◆ postInit()

void org.keycloak.protocol.oidc.mappers.AbstractOIDCProtocolMapper.postInit ( KeycloakSessionFactory  factory)
inlineinherited
59  {
60 
61  }

◆ setClaim() [1/3]

static void org.keycloak.protocol.oidc.mappers.AbstractUserRoleMappingMapper.setClaim ( IDToken  token,
ProtocolMapperModel  mappingModel,
UserSessionModel  userSession,
Predicate< RoleModel >  restriction,
String  prefix 
)
inlinestaticprotected

Retrieves all roles of the current user based on direct roles set to the user, its groups and their parent groups. Then it recursively expands all composite roles, and restricts according to the given predicate

restriction

. If the current client sessions is restricted (i.e. no client found in active user session has full scope allowed), the final list of roles is also restricted by the client scope. Finally, the list is mapped to the token into a claim.

引数
token
mappingModel
userSession
restriction
prefix
89  {
90  String rolePrefix = prefix == null ? "" : prefix;
91  UserModel user = userSession.getUser();
92 
93  // get a set of all realm roles assigned to the user or its group
94  Stream<RoleModel> clientUserRoles = getAllUserRolesStream(user).filter(restriction);
95 
96  boolean dontLimitScope = userSession.getAuthenticatedClientSessions().values().stream().anyMatch(cs -> cs.getClient().isFullScopeAllowed());
97  if (! dontLimitScope) {
98  Set<RoleModel> clientRoles = userSession.getAuthenticatedClientSessions().values().stream()
99  .flatMap(cs -> cs.getClient().getScopeMappings().stream())
100  .collect(Collectors.toSet());
101 
102  clientUserRoles = clientUserRoles.filter(clientRoles::contains);
103  }
104 
105  List<String> realmRoleNames = clientUserRoles
106  .map(m -> rolePrefix + m.getName())
107  .collect(Collectors.toList());
108 
109  Object claimValue = realmRoleNames;
110 
111  boolean multiValued = "true".equals(mappingModel.getConfig().get(ProtocolMapperUtils.MULTIVALUED));
112  if (!multiValued) {
113  claimValue = realmRoleNames.toString();
114  }
115 
116  OIDCAttributeMapperHelper.mapClaim(token, mappingModel, claimValue);
117  }
static Stream< RoleModel > getAllUserRolesStream(UserModel user)
Definition: AbstractUserRoleMappingMapper.java:52

◆ setClaim() [2/3]

void org.keycloak.protocol.oidc.mappers.AbstractOIDCProtocolMapper.setClaim ( IDToken  token,
ProtocolMapperModel  mappingModel,
UserSessionModel  userSession 
)
inlineprotectedinherited

Intended to be overridden in ProtocolMapper implementations to add claims to an token.

引数
token
mappingModel
userSession
非推奨:
override setClaim(IDToken, ProtocolMapperModel, UserSessionModel, KeycloakSession) instead.
105  {
106  }

◆ setClaim() [3/3]

void org.keycloak.protocol.oidc.mappers.AbstractOIDCProtocolMapper.setClaim ( IDToken  token,
ProtocolMapperModel  mappingModel,
UserSessionModel  userSession,
KeycloakSession  keycloakSession 
)
inlineprotectedinherited

Intended to be overridden in ProtocolMapper implementations to add claims to an token.

引数
token
mappingModel
userSession
keycloakSession
115  {
116  // we delegate to the old #setClaim(...) method for backwards compatibility
117  setClaim(token, mappingModel, userSession);
118  }
void setClaim(IDToken token, ProtocolMapperModel mappingModel, UserSessionModel userSession)
Definition: AbstractOIDCProtocolMapper.java:105

◆ transformAccessToken() [1/2]

AccessToken org.keycloak.protocol.oidc.mappers.OIDCAccessTokenMapper.transformAccessToken ( AccessToken  token,
ProtocolMapperModel  mappingModel,
KeycloakSession  session,
UserSessionModel  userSession,
AuthenticatedClientSessionModel  clientSession 
)
inherited

◆ transformAccessToken() [2/2]

AccessToken org.keycloak.protocol.oidc.mappers.AbstractOIDCProtocolMapper.transformAccessToken ( AccessToken  token,
ProtocolMapperModel  mappingModel,
KeycloakSession  session,
UserSessionModel  userSession,
AuthenticatedClientSessionModel  clientSession 
)
inlineinherited
75  {
76 
77  if (!OIDCAttributeMapperHelper.includeInAccessToken(mappingModel)){
78  return token;
79  }
80 
81  setClaim(token, mappingModel, userSession, session);
82  return token;
83  }
void setClaim(IDToken token, ProtocolMapperModel mappingModel, UserSessionModel userSession)
Definition: AbstractOIDCProtocolMapper.java:105

◆ transformIDToken() [1/2]

IDToken org.keycloak.protocol.oidc.mappers.OIDCIDTokenMapper.transformIDToken ( IDToken  token,
ProtocolMapperModel  mappingModel,
KeycloakSession  session,
UserSessionModel  userSession,
AuthenticatedClientSessionModel  clientSession 
)
inherited

◆ transformIDToken() [2/2]

IDToken org.keycloak.protocol.oidc.mappers.AbstractOIDCProtocolMapper.transformIDToken ( IDToken  token,
ProtocolMapperModel  mappingModel,
KeycloakSession  session,
UserSessionModel  userSession,
AuthenticatedClientSessionModel  clientSession 
)
inlineinherited
86  {
87 
88  if (!OIDCAttributeMapperHelper.includeInIDToken(mappingModel)){
89  return token;
90  }
91 
92  setClaim(token, mappingModel, userSession, session);
93  return token;
94  }
void setClaim(IDToken token, ProtocolMapperModel mappingModel, UserSessionModel userSession)
Definition: AbstractOIDCProtocolMapper.java:105

◆ transformUserInfoToken() [1/2]

AccessToken org.keycloak.protocol.oidc.mappers.UserInfoTokenMapper.transformUserInfoToken ( AccessToken  token,
ProtocolMapperModel  mappingModel,
KeycloakSession  session,
UserSessionModel  userSession,
AuthenticatedClientSessionModel  clientSession 
)
inherited

◆ transformUserInfoToken() [2/2]

AccessToken org.keycloak.protocol.oidc.mappers.AbstractOIDCProtocolMapper.transformUserInfoToken ( AccessToken  token,
ProtocolMapperModel  mappingModel,
KeycloakSession  session,
UserSessionModel  userSession,
AuthenticatedClientSessionModel  clientSession 
)
inlineinherited
64  {
65 
66  if (!OIDCAttributeMapperHelper.includeInUserInfo(mappingModel)) {
67  return token;
68  }
69 
70  setClaim(token, mappingModel, userSession, session);
71  return token;
72  }
void setClaim(IDToken token, ProtocolMapperModel mappingModel, UserSessionModel userSession)
Definition: AbstractOIDCProtocolMapper.java:105

メンバ詳解

◆ TOKEN_MAPPER_CATEGORY

final String org.keycloak.protocol.oidc.mappers.AbstractOIDCProtocolMapper.TOKEN_MAPPER_CATEGORY = "Token mapper"
staticinherited

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