keycloak-service
公開メンバ関数 | 限定公開変数類 | 全メンバ一覧
org.keycloak.services.clientregistration.AbstractClientRegistrationProvider クラスabstract
org.keycloak.services.clientregistration.AbstractClientRegistrationProvider の継承関係図
Inheritance graph
org.keycloak.services.clientregistration.AbstractClientRegistrationProvider 連携図
Collaboration graph

公開メンバ関数

 AbstractClientRegistrationProvider (KeycloakSession session)
 
ClientRepresentation create (ClientRegistrationContext context)
 
ClientRepresentation get (String clientId)
 
ClientRepresentation update (String clientId, ClientRegistrationContext context)
 
void delete (String clientId)
 
void setAuth (ClientRegistrationAuth auth)
 
ClientRegistrationAuth getAuth ()
 
void setEvent (EventBuilder event)
 
EventBuilder getEvent ()
 
void close ()
 

限定公開変数類

KeycloakSession session
 
EventBuilder event
 
ClientRegistrationAuth auth
 

詳解

著者
Stian Thorgersen

構築子と解体子

◆ AbstractClientRegistrationProvider()

org.keycloak.services.clientregistration.AbstractClientRegistrationProvider.AbstractClientRegistrationProvider ( KeycloakSession  session)
inline
49  {
50  this.session = session;
51  }
KeycloakSession session
Definition: AbstractClientRegistrationProvider.java:45

関数詳解

◆ close()

void org.keycloak.services.clientregistration.AbstractClientRegistrationProvider.close ( )
inline
194  {
195  }

◆ create()

ClientRepresentation org.keycloak.services.clientregistration.AbstractClientRegistrationProvider.create ( ClientRegistrationContext  context)
inline
53  {
54  ClientRepresentation client = context.getClient();
55 
56  event.event(EventType.CLIENT_REGISTER);
57 
58  RegistrationAuth registrationAuth = auth.requireCreate(context);
59 
60  ValidationMessages validationMessages = new ValidationMessages();
61  if (!context.validateClient(validationMessages)) {
62  String errorCode = validationMessages.fieldHasError("redirectUris") ? ErrorCodes.INVALID_REDIRECT_URI : ErrorCodes.INVALID_CLIENT_METADATA;
63  throw new ErrorResponseException(
64  errorCode,
65  validationMessages.getStringMessages(),
66  Response.Status.BAD_REQUEST
67  );
68  }
69 
70  try {
71  RealmModel realm = session.getContext().getRealm();
72  ClientModel clientModel = new ClientManager(new RealmManager(session)).createClient(session, realm, client, true);
73 
74  if (clientModel.isServiceAccountsEnabled()) {
75  new ClientManager(new RealmManager(session)).enableServiceAccount(clientModel);
76  }
77 
78  if (Boolean.TRUE.equals(client.getAuthorizationServicesEnabled())) {
79  RepresentationToModel.createResourceServer(clientModel, session, true);
80  }
81 
82  ClientRegistrationPolicyManager.triggerAfterRegister(context, registrationAuth, clientModel);
83 
84  client = ModelToRepresentation.toRepresentation(clientModel, session);
85 
86  client.setSecret(clientModel.getSecret());
87 
88  String registrationAccessToken = ClientRegistrationTokenUtils.updateRegistrationAccessToken(session, clientModel, registrationAuth);
89  client.setRegistrationAccessToken(registrationAccessToken);
90 
91  if (auth.isInitialAccessToken()) {
92  ClientInitialAccessModel initialAccessModel = auth.getInitialAccessModel();
93  session.realms().decreaseRemainingCount(realm, initialAccessModel);
94  }
95 
96  event.client(client.getClientId()).success();
97  return client;
98  } catch (ModelDuplicateException e) {
99  throw new ErrorResponseException(ErrorCodes.INVALID_CLIENT_METADATA, "Client Identifier in use", Response.Status.BAD_REQUEST);
100  }
101  }
ClientRegistrationAuth auth
Definition: AbstractClientRegistrationProvider.java:47
ClientInitialAccessModel getInitialAccessModel()
Definition: ClientRegistrationAuth.java:249
KeycloakSession session
Definition: AbstractClientRegistrationProvider.java:45
boolean isInitialAccessToken()
Definition: ClientRegistrationAuth.java:118
RegistrationAuth requireCreate(ClientRegistrationContext context)
Definition: ClientRegistrationAuth.java:126

◆ delete()

void org.keycloak.services.clientregistration.AbstractClientRegistrationProvider.delete ( String  clientId)
inline
160  {
161  event.event(EventType.CLIENT_DELETE).client(clientId);
162 
163  ClientModel client = session.getContext().getRealm().getClientByClientId(clientId);
164  auth.requireDelete(client);
165 
166  if (new ClientManager(new RealmManager(session)).removeClient(session.getContext().getRealm(), client)) {
167  event.client(client.getClientId()).success();
168  } else {
169  throw new ForbiddenException();
170  }
171  }
void requireDelete(ClientModel client)
Definition: ClientRegistrationAuth.java:217
ClientRegistrationAuth auth
Definition: AbstractClientRegistrationProvider.java:47
KeycloakSession session
Definition: AbstractClientRegistrationProvider.java:45

◆ get()

ClientRepresentation org.keycloak.services.clientregistration.AbstractClientRegistrationProvider.get ( String  clientId)
inline
103  {
104  event.event(EventType.CLIENT_INFO);
105 
106  ClientModel client = session.getContext().getRealm().getClientByClientId(clientId);
107  auth.requireView(client);
108 
109  ClientRepresentation rep = ModelToRepresentation.toRepresentation(client, session);
110  if (client.getSecret() != null) {
111  rep.setSecret(client.getSecret());
112  }
113 
115  String registrationAccessToken = ClientRegistrationTokenUtils.updateTokenSignature(session, auth);
116  rep.setRegistrationAccessToken(registrationAccessToken);
117  }
118 
119  event.client(client.getClientId()).success();
120  return rep;
121  }
ClientRegistrationAuth auth
Definition: AbstractClientRegistrationProvider.java:47
boolean isRegistrationAccessToken()
Definition: ClientRegistrationAuth.java:122
KeycloakSession session
Definition: AbstractClientRegistrationProvider.java:45
void requireView(ClientModel client)
Definition: ClientRegistrationAuth.java:158

◆ getAuth()

ClientRegistrationAuth org.keycloak.services.clientregistration.AbstractClientRegistrationProvider.getAuth ( )
inline

org.keycloak.services.clientregistration.ClientRegistrationProviderを実装しています。

179  {
180  return this.auth;
181  }
ClientRegistrationAuth auth
Definition: AbstractClientRegistrationProvider.java:47

◆ getEvent()

EventBuilder org.keycloak.services.clientregistration.AbstractClientRegistrationProvider.getEvent ( )
inline

org.keycloak.services.clientregistration.ClientRegistrationProviderを実装しています。

189  {
190  return event;
191  }
EventBuilder event
Definition: AbstractClientRegistrationProvider.java:46

◆ setAuth()

void org.keycloak.services.clientregistration.AbstractClientRegistrationProvider.setAuth ( ClientRegistrationAuth  auth)
inline

org.keycloak.services.clientregistration.ClientRegistrationProviderを実装しています。

174  {
175  this.auth = auth;
176  }
ClientRegistrationAuth auth
Definition: AbstractClientRegistrationProvider.java:47

◆ setEvent()

void org.keycloak.services.clientregistration.AbstractClientRegistrationProvider.setEvent ( EventBuilder  event)
inline

org.keycloak.services.clientregistration.ClientRegistrationProviderを実装しています。

184  {
185  this.event = event;
186  }
EventBuilder event
Definition: AbstractClientRegistrationProvider.java:46

◆ update()

ClientRepresentation org.keycloak.services.clientregistration.AbstractClientRegistrationProvider.update ( String  clientId,
ClientRegistrationContext  context 
)
inline
123  {
124  ClientRepresentation rep = context.getClient();
125 
126  event.event(EventType.CLIENT_UPDATE).client(clientId);
127 
128  ClientModel client = session.getContext().getRealm().getClientByClientId(clientId);
129  RegistrationAuth registrationAuth = auth.requireUpdate(context, client);
130 
131  if (!client.getClientId().equals(rep.getClientId())) {
132  throw new ErrorResponseException(ErrorCodes.INVALID_CLIENT_METADATA, "Client Identifier modified", Response.Status.BAD_REQUEST);
133  }
134 
135  ValidationMessages validationMessages = new ValidationMessages();
136  if (!context.validateClient(validationMessages)) {
137  String errorCode = validationMessages.fieldHasError("redirectUris") ? ErrorCodes.INVALID_REDIRECT_URI : ErrorCodes.INVALID_CLIENT_METADATA;
138  throw new ErrorResponseException(
139  errorCode,
140  validationMessages.getStringMessages(),
141  Response.Status.BAD_REQUEST
142  );
143  }
144 
145  RepresentationToModel.updateClient(rep, client);
146  rep = ModelToRepresentation.toRepresentation(client, session);
147 
149  String registrationAccessToken = ClientRegistrationTokenUtils.updateRegistrationAccessToken(session, client, auth.getRegistrationAuth());
150  rep.setRegistrationAccessToken(registrationAccessToken);
151  }
152 
153  ClientRegistrationPolicyManager.triggerAfterUpdate(context, registrationAuth, client);
154 
155  event.client(client.getClientId()).success();
156  return rep;
157  }
RegistrationAuth requireUpdate(ClientRegistrationContext context, ClientModel client)
Definition: ClientRegistrationAuth.java:205
ClientRegistrationAuth auth
Definition: AbstractClientRegistrationProvider.java:47
boolean isRegistrationAccessToken()
Definition: ClientRegistrationAuth.java:122
KeycloakSession session
Definition: AbstractClientRegistrationProvider.java:45
RegistrationAuth getRegistrationAuth()
Definition: ClientRegistrationAuth.java:200

メンバ詳解

◆ auth

ClientRegistrationAuth org.keycloak.services.clientregistration.AbstractClientRegistrationProvider.auth
protected

◆ event

EventBuilder org.keycloak.services.clientregistration.AbstractClientRegistrationProvider.event
protected

◆ session

KeycloakSession org.keycloak.services.clientregistration.AbstractClientRegistrationProvider.session
protected

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