keycloak-service
公開メンバ関数 | 静的公開メンバ関数 | 静的限定公開変数類 | 非公開メンバ関数 | 非公開変数類 | 全メンバ一覧
org.keycloak.services.resources.admin.AuthenticationManagementResource クラス
org.keycloak.services.resources.admin.AuthenticationManagementResource 連携図
Collaboration graph

公開メンバ関数

 AuthenticationManagementResource (RealmModel realm, KeycloakSession session, AdminPermissionEvaluator auth, AdminEventBuilder adminEvent)
 
List< Map< String, Object > > getFormProviders ()
 
List< Map< String, Object > > getAuthenticatorProviders ()
 
List< Map< String, Object > > getClientAuthenticatorProviders ()
 
List< Map< String, Object > > buildProviderMetadata (List< ProviderFactory > factories)
 
List< Map< String, Object > > getFormActionProviders ()
 
List< AuthenticationFlowRepresentation > getFlows ()
 
Response createFlow (AuthenticationFlowRepresentation flow)
 
AuthenticationFlowRepresentation getFlow (@PathParam("id") String id)
 
Response updateFlow (@PathParam("id") String id, AuthenticationFlowRepresentation flow)
 
void deleteFlow (@PathParam("id") String id)
 
Response copy (@PathParam("flowAlias") String flowAlias, Map< String, String > data)
 
Response addExecutionFlow (@PathParam("flowAlias") String flowAlias, Map< String, String > data)
 
Response addExecutionToFlow (@PathParam("flowAlias") String flowAlias, Map< String, String > data)
 
Response getExecutions (@PathParam("flowAlias") String flowAlias)
 
void recurseExecutions (AuthenticationFlowModel flow, List< AuthenticationExecutionInfoRepresentation > result, int level)
 
void updateExecutions (@PathParam("flowAlias") String flowAlias, AuthenticationExecutionInfoRepresentation rep)
 
Response getExecution (final @PathParam("executionId") String executionId)
 
Response addExecution (AuthenticationExecutionRepresentation execution)
 
AuthenticationFlowModel getParentFlow (AuthenticationExecutionModel model)
 
void raisePriority (@PathParam("executionId") String execution)
 
List< AuthenticationExecutionModel > getSortedExecutions (AuthenticationFlowModel parentFlow)
 
void lowerPriority (@PathParam("executionId") String execution)
 
void removeExecution (@PathParam("executionId") String execution)
 
Response newExecutionConfig (@PathParam("executionId") String execution, AuthenticatorConfigRepresentation json)
 
AuthenticatorConfigRepresentation getAuthenticatorConfig (@PathParam("executionId") String execution, @PathParam("id") String id)
 
List< Map< String, String > > getUnregisteredRequiredActions ()
 
void registerRequiredAction (Map< String, String > data)
 
List< RequiredActionProviderRepresentation > getRequiredActions ()
 
RequiredActionProviderRepresentation getRequiredAction (@PathParam("alias") String alias)
 
void updateRequiredAction (@PathParam("alias") String alias, RequiredActionProviderRepresentation rep)
 
void removeRequiredAction (@PathParam("alias") String alias)
 
void raiseRequiredActionPriority (@PathParam("alias") String alias)
 
void lowerRequiredActionPriority (@PathParam("alias") String alias)
 
AuthenticatorConfigInfoRepresentation getAuthenticatorConfigDescription (@PathParam("providerId") String providerId)
 
Map< String, List< ConfigPropertyRepresentation > > getPerClientConfigDescription ()
 
Response createAuthenticatorConfig (AuthenticatorConfigRepresentation rep)
 
AuthenticatorConfigRepresentation getAuthenticatorConfig (@PathParam("id") String id)
 
void removeAuthenticatorConfig (@PathParam("id") String id)
 
void updateAuthenticatorConfig (@PathParam("id") String id, AuthenticatorConfigRepresentation rep)
 

静的公開メンバ関数

static AuthenticationFlowModel copyFlow (RealmModel realm, AuthenticationFlowModel flow, String newName)
 
static void copy (RealmModel realm, String newName, AuthenticationFlowModel from, AuthenticationFlowModel to)
 
static RequiredActionProviderRepresentation toRepresentation (RequiredActionProviderModel model)
 

静的限定公開変数類

static final Logger logger = Logger.getLogger(AuthenticationManagementResource.class)
 

非公開メンバ関数

void deleteFlow (String id, boolean isTopMostLevel)
 
int getNextPriority (AuthenticationFlowModel parentFlow)
 
int getNextRequiredActionPriority ()
 
ConfigPropertyRepresentation getConfigPropertyRep (ProviderConfigProperty prop)
 

非公開変数類

final RealmModel realm
 
final KeycloakSession session
 
AdminPermissionEvaluator auth
 
AdminEventBuilder adminEvent
 

詳解

Authentication Management

著者
Bill Burke

構築子と解体子

◆ AuthenticationManagementResource()

org.keycloak.services.resources.admin.AuthenticationManagementResource.AuthenticationManagementResource ( RealmModel  realm,
KeycloakSession  session,
AdminPermissionEvaluator  auth,
AdminEventBuilder  adminEvent 
)
inline
89  {
90  this.realm = realm;
91  this.session = session;
92  this.auth = auth;
93  this.adminEvent = adminEvent.resource(ResourceType.AUTH_FLOW);
94  }
final RealmModel realm
Definition: AuthenticationManagementResource.java:82
AdminEventBuilder resource(ResourceType resourceType)
Definition: AdminEventBuilder.java:118
final KeycloakSession session
Definition: AuthenticationManagementResource.java:83
AdminEventBuilder adminEvent
Definition: AuthenticationManagementResource.java:85
AdminPermissionEvaluator auth
Definition: AuthenticationManagementResource.java:84

関数詳解

◆ addExecution()

Response org.keycloak.services.resources.admin.AuthenticationManagementResource.addExecution ( AuthenticationExecutionRepresentation  execution)
inline

Add new authentication execution

引数
executionJSON model describing authentication execution
624  {
626 
627  AuthenticationExecutionModel model = RepresentationToModel.toModel(realm, execution);
628  AuthenticationFlowModel parentFlow = getParentFlow(model);
629  if (parentFlow.isBuiltIn()) {
630  throw new BadRequestException("It is illegal to add execution to a built in flow");
631  }
632  model.setPriority(getNextPriority(parentFlow));
633  model = realm.addAuthenticatorExecution(model);
634 
635  adminEvent.operation(OperationType.CREATE).resource(ResourceType.AUTH_EXECUTION).resourcePath(session.getContext().getUri(), model.getId()).representation(execution).success();
636  return Response.created(session.getContext().getUri().getAbsolutePathBuilder().path(model.getId()).build()).build();
637  }
final RealmModel realm
Definition: AuthenticationManagementResource.java:82
AuthenticationFlowModel getParentFlow(AuthenticationExecutionModel model)
Definition: AuthenticationManagementResource.java:639
AdminEventBuilder resource(ResourceType resourceType)
Definition: AdminEventBuilder.java:118
AdminEventBuilder operation(OperationType operationType)
Definition: AdminEventBuilder.java:113
final KeycloakSession session
Definition: AuthenticationManagementResource.java:83
void success()
Definition: AdminEventBuilder.java:226
AdminEventBuilder resourcePath(String... pathElements)
Definition: AdminEventBuilder.java:171
int getNextPriority(AuthenticationFlowModel parentFlow)
Definition: AuthenticationManagementResource.java:420
AdminEventBuilder adminEvent
Definition: AuthenticationManagementResource.java:85
AdminPermissionEvaluator auth
Definition: AuthenticationManagementResource.java:84

◆ addExecutionFlow()

Response org.keycloak.services.resources.admin.AuthenticationManagementResource.addExecutionFlow ( @PathParam("flowAlias") String  flowAlias,
Map< String, String >  data 
)
inline

Add new flow with new execution to existing flow

引数
flowAliasAlias of parent authentication flow
dataNew authentication flow / execution JSON data containing 'alias', 'type', 'provider', and 'description' attributes
382  {
384 
385  AuthenticationFlowModel parentFlow = realm.getFlowByAlias(flowAlias);
386  if (parentFlow == null) {
387  return ErrorResponse.error("Parent flow doesn't exists", Response.Status.BAD_REQUEST);
388  }
389  String alias = data.get("alias");
390  String type = data.get("type");
391  String provider = data.get("provider");
392  String description = data.get("description");
393 
394 
395  AuthenticationFlowModel newFlow = realm.getFlowByAlias(alias);
396  if (newFlow != null) {
397  return ErrorResponse.exists("New flow alias name already exists");
398  }
399  newFlow = new AuthenticationFlowModel();
400  newFlow.setAlias(alias);
401  newFlow.setDescription(description);
402  newFlow.setProviderId(type);
403  newFlow = realm.addAuthenticationFlow(newFlow);
404  AuthenticationExecutionModel execution = new AuthenticationExecutionModel();
405  execution.setParentFlow(parentFlow.getId());
406  execution.setFlowId(newFlow.getId());
407  execution.setRequirement(AuthenticationExecutionModel.Requirement.DISABLED);
408  execution.setAuthenticatorFlow(true);
409  execution.setAuthenticator(provider);
410  execution.setPriority(getNextPriority(parentFlow));
411  execution = realm.addAuthenticatorExecution(execution);
412 
413  data.put("id", execution.getId());
414  adminEvent.operation(OperationType.CREATE).resource(ResourceType.AUTH_EXECUTION_FLOW).resourcePath(session.getContext().getUri()).representation(data).success();
415 
416  String addExecutionPathSegment = UriBuilder.fromMethod(AuthenticationManagementResource.class, "addExecutionFlow").build(parentFlow.getAlias()).getPath();
417  return Response.created(session.getContext().getUri().getBaseUriBuilder().path(session.getContext().getUri().getPath().replace(addExecutionPathSegment, "")).path("flows").path(newFlow.getId()).build()).build();
418  }
final RealmModel realm
Definition: AuthenticationManagementResource.java:82
AdminEventBuilder resource(ResourceType resourceType)
Definition: AdminEventBuilder.java:118
AdminEventBuilder operation(OperationType operationType)
Definition: AdminEventBuilder.java:113
final KeycloakSession session
Definition: AuthenticationManagementResource.java:83
void success()
Definition: AdminEventBuilder.java:226
AdminEventBuilder resourcePath(String... pathElements)
Definition: AdminEventBuilder.java:171
int getNextPriority(AuthenticationFlowModel parentFlow)
Definition: AuthenticationManagementResource.java:420
AdminEventBuilder adminEvent
Definition: AuthenticationManagementResource.java:85
AuthenticationManagementResource(RealmModel realm, KeycloakSession session, AdminPermissionEvaluator auth, AdminEventBuilder adminEvent)
Definition: AuthenticationManagementResource.java:89
AdminPermissionEvaluator auth
Definition: AuthenticationManagementResource.java:84

◆ addExecutionToFlow()

Response org.keycloak.services.resources.admin.AuthenticationManagementResource.addExecutionToFlow ( @PathParam("flowAlias") String  flowAlias,
Map< String, String >  data 
)
inline

Add new authentication execution to a flow

引数
flowAliasAlias of parent flow
dataNew execution JSON data containing 'provider' attribute
435  {
437 
438  AuthenticationFlowModel parentFlow = realm.getFlowByAlias(flowAlias);
439  if (parentFlow == null) {
440  throw new BadRequestException("Parent flow doesn't exists");
441  }
442  if (parentFlow.isBuiltIn()) {
443  throw new BadRequestException("It is illegal to add execution to a built in flow");
444  }
445  String provider = data.get("provider");
446 
447  // make sure provider is one of the registered providers
448  ProviderFactory f;
449  if (parentFlow.getProviderId().equals(AuthenticationFlow.CLIENT_FLOW)) {
450  f = session.getKeycloakSessionFactory().getProviderFactory(ClientAuthenticator.class, provider);
451  } else if (parentFlow.getProviderId().equals(AuthenticationFlow.FORM_FLOW)) {
452  f = session.getKeycloakSessionFactory().getProviderFactory(FormAction.class, provider);
453  } else {
454  f = session.getKeycloakSessionFactory().getProviderFactory(Authenticator.class, provider);
455  }
456  if (f == null) {
457  throw new BadRequestException("No authentication provider found for id: " + provider);
458  }
459 
460  AuthenticationExecutionModel execution = new AuthenticationExecutionModel();
461  execution.setParentFlow(parentFlow.getId());
462  execution.setRequirement(AuthenticationExecutionModel.Requirement.DISABLED);
463  execution.setAuthenticatorFlow(false);
464  execution.setAuthenticator(provider);
465  execution.setPriority(getNextPriority(parentFlow));
466 
467  execution = realm.addAuthenticatorExecution(execution);
468 
469  data.put("id", execution.getId());
470  adminEvent.operation(OperationType.CREATE).resource(ResourceType.AUTH_EXECUTION).resourcePath(session.getContext().getUri()).representation(data).success();
471 
472  String addExecutionPathSegment = UriBuilder.fromMethod(AuthenticationManagementResource.class, "addExecutionToFlow").build(parentFlow.getAlias()).getPath();
473  return Response.created(session.getContext().getUri().getBaseUriBuilder().path(session.getContext().getUri().getPath().replace(addExecutionPathSegment, "")).path("executions").path(execution.getId()).build()).build();
474  }
final RealmModel realm
Definition: AuthenticationManagementResource.java:82
AdminEventBuilder resource(ResourceType resourceType)
Definition: AdminEventBuilder.java:118
AdminEventBuilder operation(OperationType operationType)
Definition: AdminEventBuilder.java:113
final KeycloakSession session
Definition: AuthenticationManagementResource.java:83
void success()
Definition: AdminEventBuilder.java:226
AdminEventBuilder resourcePath(String... pathElements)
Definition: AdminEventBuilder.java:171
int getNextPriority(AuthenticationFlowModel parentFlow)
Definition: AuthenticationManagementResource.java:420
AdminEventBuilder adminEvent
Definition: AuthenticationManagementResource.java:85
AuthenticationManagementResource(RealmModel realm, KeycloakSession session, AdminPermissionEvaluator auth, AdminEventBuilder adminEvent)
Definition: AuthenticationManagementResource.java:89
AdminPermissionEvaluator auth
Definition: AuthenticationManagementResource.java:84

◆ buildProviderMetadata()

List<Map<String, Object> > org.keycloak.services.resources.admin.AuthenticationManagementResource.buildProviderMetadata ( List< ProviderFactory >  factories)
inline
144  {
145  List<Map<String, Object>> providers = new LinkedList<>();
146  for (ProviderFactory factory : factories) {
147  Map<String, Object> data = new HashMap<>();
148  data.put("id", factory.getId());
149  ConfigurableAuthenticatorFactory configured = (ConfigurableAuthenticatorFactory)factory;
150  data.put("description", configured.getHelpText());
151  data.put("displayName", configured.getDisplayType());
152 
153  providers.add(data);
154  }
155  return providers;
156  }

◆ copy() [1/2]

Response org.keycloak.services.resources.admin.AuthenticationManagementResource.copy ( @PathParam("flowAlias") String  flowAlias,
Map< String, String >  data 
)
inline

Copy existing authentication flow under a new name

The new name is given as 'newName' attribute of the passed JSON object

引数
flowAliasName of the existing authentication flow
dataJSON containing 'newName' attribute
318  {
320 
321  String newName = data.get("newName");
322  if (realm.getFlowByAlias(newName) != null) {
323  return ErrorResponse.exists("New flow alias name already exists");
324  }
325 
326  AuthenticationFlowModel flow = realm.getFlowByAlias(flowAlias);
327  if (flow == null) {
328  logger.debug("flow not found: " + flowAlias);
329  return Response.status(NOT_FOUND).build();
330  }
331  AuthenticationFlowModel copy = copyFlow(realm, flow, newName);
332 
333  data.put("id", copy.getId());
334  adminEvent.operation(OperationType.CREATE).resourcePath(session.getContext().getUri()).representation(data).success();
335 
336  return Response.status(Response.Status.CREATED).build();
337 
338  }
final RealmModel realm
Definition: AuthenticationManagementResource.java:82
Response copy(@PathParam("flowAlias") String flowAlias, Map< String, String > data)
Definition: AuthenticationManagementResource.java:318
static AuthenticationFlowModel copyFlow(RealmModel realm, AuthenticationFlowModel flow, String newName)
Definition: AuthenticationManagementResource.java:340
AdminEventBuilder operation(OperationType operationType)
Definition: AdminEventBuilder.java:113
final KeycloakSession session
Definition: AuthenticationManagementResource.java:83
void success()
Definition: AdminEventBuilder.java:226
AdminEventBuilder resourcePath(String... pathElements)
Definition: AdminEventBuilder.java:171
AdminEventBuilder adminEvent
Definition: AuthenticationManagementResource.java:85
AdminPermissionEvaluator auth
Definition: AuthenticationManagementResource.java:84
static final Logger logger
Definition: AuthenticationManagementResource.java:87

◆ copy() [2/2]

static void org.keycloak.services.resources.admin.AuthenticationManagementResource.copy ( RealmModel  realm,
String  newName,
AuthenticationFlowModel  from,
AuthenticationFlowModel  to 
)
inlinestatic
352  {
353  for (AuthenticationExecutionModel execution : realm.getAuthenticationExecutions(from.getId())) {
354  if (execution.isAuthenticatorFlow()) {
355  AuthenticationFlowModel subFlow = realm.getAuthenticationFlowById(execution.getFlowId());
356  AuthenticationFlowModel copy = new AuthenticationFlowModel();
357  copy.setAlias(newName + " " + subFlow.getAlias());
358  copy.setDescription(subFlow.getDescription());
359  copy.setProviderId(subFlow.getProviderId());
360  copy.setBuiltIn(false);
361  copy.setTopLevel(false);
362  copy = realm.addAuthenticationFlow(copy);
363  execution.setFlowId(copy.getId());
364  copy(realm, newName, subFlow, copy);
365  }
366  execution.setId(null);
367  execution.setParentFlow(to.getId());
368  realm.addAuthenticatorExecution(execution);
369  }
370  }
final RealmModel realm
Definition: AuthenticationManagementResource.java:82
Response copy(@PathParam("flowAlias") String flowAlias, Map< String, String > data)
Definition: AuthenticationManagementResource.java:318

◆ copyFlow()

static AuthenticationFlowModel org.keycloak.services.resources.admin.AuthenticationManagementResource.copyFlow ( RealmModel  realm,
AuthenticationFlowModel  flow,
String  newName 
)
inlinestatic
340  {
341  AuthenticationFlowModel copy = new AuthenticationFlowModel();
342  copy.setAlias(newName);
343  copy.setDescription(flow.getDescription());
344  copy.setProviderId(flow.getProviderId());
345  copy.setBuiltIn(false);
346  copy.setTopLevel(flow.isTopLevel());
347  copy = realm.addAuthenticationFlow(copy);
348  copy(realm, newName, flow, copy);
349  return copy;
350  }
final RealmModel realm
Definition: AuthenticationManagementResource.java:82
Response copy(@PathParam("flowAlias") String flowAlias, Map< String, String > data)
Definition: AuthenticationManagementResource.java:318

◆ createAuthenticatorConfig()

Response org.keycloak.services.resources.admin.AuthenticationManagementResource.createAuthenticatorConfig ( AuthenticatorConfigRepresentation  rep)
inline

Create new authenticator configuration

引数
repJSON describing new authenticator configuration
非推奨:
Use newExecutionConfig(String, AuthenticatorConfigRepresentation) instead
1129  {
1131 
1132  AuthenticatorConfigModel config = realm.addAuthenticatorConfig(RepresentationToModel.toModel(rep));
1133  adminEvent.operation(OperationType.CREATE).resource(ResourceType.AUTHENTICATOR_CONFIG).resourcePath(session.getContext().getUri(), config.getId()).representation(rep).success();
1134  return Response.created(session.getContext().getUri().getAbsolutePathBuilder().path(config.getId()).build()).build();
1135  }
final RealmModel realm
Definition: AuthenticationManagementResource.java:82
AdminEventBuilder resource(ResourceType resourceType)
Definition: AdminEventBuilder.java:118
AdminEventBuilder operation(OperationType operationType)
Definition: AdminEventBuilder.java:113
final KeycloakSession session
Definition: AuthenticationManagementResource.java:83
void success()
Definition: AdminEventBuilder.java:226
AdminEventBuilder resourcePath(String... pathElements)
Definition: AdminEventBuilder.java:171
AdminEventBuilder adminEvent
Definition: AuthenticationManagementResource.java:85
AdminPermissionEvaluator auth
Definition: AuthenticationManagementResource.java:84

◆ createFlow()

Response org.keycloak.services.resources.admin.AuthenticationManagementResource.createFlow ( AuthenticationFlowRepresentation  flow)
inline

Create a new authentication flow

引数
flowAuthentication flow representation
戻り値
207  {
209 
210  if (flow.getAlias() == null || flow.getAlias().isEmpty()) {
211  return ErrorResponse.exists("Failed to create flow with empty alias name");
212  }
213 
214  if (realm.getFlowByAlias(flow.getAlias()) != null) {
215  return ErrorResponse.exists("Flow " + flow.getAlias() + " already exists");
216  }
217 
218  AuthenticationFlowModel createdModel = realm.addAuthenticationFlow(RepresentationToModel.toModel(flow));
219 
220  flow.setId(createdModel.getId());
221  adminEvent.operation(OperationType.CREATE).resourcePath(session.getContext().getUri(), createdModel.getId()).representation(flow).success();
222  return Response.created(session.getContext().getUri().getAbsolutePathBuilder().path(flow.getId()).build()).build();
223  }
final RealmModel realm
Definition: AuthenticationManagementResource.java:82
AdminEventBuilder operation(OperationType operationType)
Definition: AdminEventBuilder.java:113
final KeycloakSession session
Definition: AuthenticationManagementResource.java:83
void success()
Definition: AdminEventBuilder.java:226
AdminEventBuilder resourcePath(String... pathElements)
Definition: AdminEventBuilder.java:171
AdminEventBuilder adminEvent
Definition: AuthenticationManagementResource.java:85
AdminPermissionEvaluator auth
Definition: AuthenticationManagementResource.java:84

◆ deleteFlow() [1/2]

void org.keycloak.services.resources.admin.AuthenticationManagementResource.deleteFlow ( @PathParam("id") String  id)
inline

Delete an authentication flow

引数
idFlow id
279  {
281 
282  deleteFlow(id, true);
283  }
void deleteFlow(@PathParam("id") String id)
Definition: AuthenticationManagementResource.java:279
AdminPermissionEvaluator auth
Definition: AuthenticationManagementResource.java:84

◆ deleteFlow() [2/2]

void org.keycloak.services.resources.admin.AuthenticationManagementResource.deleteFlow ( String  id,
boolean  isTopMostLevel 
)
inlineprivate
285  {
286  AuthenticationFlowModel flow = realm.getAuthenticationFlowById(id);
287  if (flow == null) {
288  throw new NotFoundException("Could not find flow with id");
289  }
290  if (flow.isBuiltIn()) {
291  throw new BadRequestException("Can't delete built in flow");
292  }
293 
294  List<AuthenticationExecutionModel> executions = realm.getAuthenticationExecutions(id);
295  for (AuthenticationExecutionModel execution : executions) {
296  if(execution.getFlowId() != null) {
297  deleteFlow(execution.getFlowId(), false);
298  }
299  }
300  realm.removeAuthenticationFlow(flow);
301 
302  // Use just one event for top-level flow. Using separate events won't work properly for flows of depth 2 or bigger
303  if (isTopMostLevel) adminEvent.operation(OperationType.DELETE).resourcePath(session.getContext().getUri()).success();
304  }
final RealmModel realm
Definition: AuthenticationManagementResource.java:82
AdminEventBuilder operation(OperationType operationType)
Definition: AdminEventBuilder.java:113
final KeycloakSession session
Definition: AuthenticationManagementResource.java:83
AdminEventBuilder resourcePath(String... pathElements)
Definition: AdminEventBuilder.java:171
void deleteFlow(@PathParam("id") String id)
Definition: AuthenticationManagementResource.java:279
AdminEventBuilder adminEvent
Definition: AuthenticationManagementResource.java:85

◆ getAuthenticatorConfig() [1/2]

AuthenticatorConfigRepresentation org.keycloak.services.resources.admin.AuthenticationManagementResource.getAuthenticatorConfig ( @PathParam("executionId") String  execution,
@PathParam("id") String  id 
)
inline

Get execution's configuration

引数
executionExecution id
idConfiguration id
非推奨:
Use rather getAuthenticatorConfig(String)
815  {
817 
818  AuthenticatorConfigModel config = realm.getAuthenticatorConfigById(id);
819  if (config == null) {
820  throw new NotFoundException("Could not find authenticator config");
821 
822  }
823  return ModelToRepresentation.toRepresentation(config);
824  }
final RealmModel realm
Definition: AuthenticationManagementResource.java:82
AdminPermissionEvaluator auth
Definition: AuthenticationManagementResource.java:84

◆ getAuthenticatorConfig() [2/2]

AuthenticatorConfigRepresentation org.keycloak.services.resources.admin.AuthenticationManagementResource.getAuthenticatorConfig ( @PathParam("id") String  id)
inline

Get authenticator configuration

引数
idConfiguration id
1145  {
1147 
1148  AuthenticatorConfigModel config = realm.getAuthenticatorConfigById(id);
1149  if (config == null) {
1150  throw new NotFoundException("Could not find authenticator config");
1151 
1152  }
1153  return ModelToRepresentation.toRepresentation(config);
1154  }
final RealmModel realm
Definition: AuthenticationManagementResource.java:82
AdminPermissionEvaluator auth
Definition: AuthenticationManagementResource.java:84

◆ getAuthenticatorConfigDescription()

AuthenticatorConfigInfoRepresentation org.keycloak.services.resources.admin.AuthenticationManagementResource.getAuthenticatorConfigDescription ( @PathParam("providerId") String  providerId)
inline

Get authenticator provider's configuration description

1066  {
1068 
1069  ConfigurableAuthenticatorFactory factory = CredentialHelper.getConfigurableAuthenticatorFactory(session, providerId);
1070  if (factory == null) {
1071  throw new NotFoundException("Could not find authenticator provider");
1072  }
1073  AuthenticatorConfigInfoRepresentation rep = new AuthenticatorConfigInfoRepresentation();
1074  rep.setProviderId(providerId);
1075  rep.setName(factory.getDisplayType());
1076  rep.setHelpText(factory.getHelpText());
1077  rep.setProperties(new LinkedList<>());
1078  List<ProviderConfigProperty> configProperties = factory.getConfigProperties();
1079  for (ProviderConfigProperty prop : configProperties) {
1080  ConfigPropertyRepresentation propRep = getConfigPropertyRep(prop);
1081  rep.getProperties().add(propRep);
1082  }
1083  return rep;
1084  }
final KeycloakSession session
Definition: AuthenticationManagementResource.java:83
ConfigPropertyRepresentation getConfigPropertyRep(ProviderConfigProperty prop)
Definition: AuthenticationManagementResource.java:1086
AdminPermissionEvaluator auth
Definition: AuthenticationManagementResource.java:84

◆ getAuthenticatorProviders()

List<Map<String, Object> > org.keycloak.services.resources.admin.AuthenticationManagementResource.getAuthenticatorProviders ( )
inline

Get authenticator providers

Returns a list of authenticator providers.

121  {
123 
124  List<ProviderFactory> factories = session.getKeycloakSessionFactory().getProviderFactories(Authenticator.class);
125  return buildProviderMetadata(factories);
126  }
List< Map< String, Object > > buildProviderMetadata(List< ProviderFactory > factories)
Definition: AuthenticationManagementResource.java:144
final KeycloakSession session
Definition: AuthenticationManagementResource.java:83
AdminPermissionEvaluator auth
Definition: AuthenticationManagementResource.java:84

◆ getClientAuthenticatorProviders()

List<Map<String, Object> > org.keycloak.services.resources.admin.AuthenticationManagementResource.getClientAuthenticatorProviders ( )
inline

Get client authenticator providers

Returns a list of client authenticator providers.

137  {
139 
140  List<ProviderFactory> factories = session.getKeycloakSessionFactory().getProviderFactories(ClientAuthenticator.class);
141  return buildProviderMetadata(factories);
142  }
List< Map< String, Object > > buildProviderMetadata(List< ProviderFactory > factories)
Definition: AuthenticationManagementResource.java:144
final KeycloakSession session
Definition: AuthenticationManagementResource.java:83
AdminPermissionEvaluator auth
Definition: AuthenticationManagementResource.java:84

◆ getConfigPropertyRep()

ConfigPropertyRepresentation org.keycloak.services.resources.admin.AuthenticationManagementResource.getConfigPropertyRep ( ProviderConfigProperty  prop)
inlineprivate
1086  {
1087  return ModelToRepresentation.toRepresentation(prop);
1088  }

◆ getExecution()

Response org.keycloak.services.resources.admin.AuthenticationManagementResource.getExecution ( final @PathParam("executionId") String  executionId)
inline

Get Single Execution

602  {
603  //http://localhost:8080/auth/admin/realms/master/authentication/executions/cf26211b-9e68-4788-b754-1afd02e59d7f
605 
606  final Optional<AuthenticationExecutionModel> model = Optional.ofNullable(realm.getAuthenticationExecutionById(executionId));
607  if (!model.isPresent()) {
608  logger.debugv("Could not find execution by Id: {}", executionId);
609  throw new NotFoundException("Illegal execution");
610  }
611 
612  return Response.ok(model.get()).build();
613  }
final RealmModel realm
Definition: AuthenticationManagementResource.java:82
AdminPermissionEvaluator auth
Definition: AuthenticationManagementResource.java:84
static final Logger logger
Definition: AuthenticationManagementResource.java:87

◆ getExecutions()

Response org.keycloak.services.resources.admin.AuthenticationManagementResource.getExecutions ( @PathParam("flowAlias") String  flowAlias)
inline

Get authentication executions for a flow

引数
flowAliasFlow alias
485  {
487 
488  AuthenticationFlowModel flow = realm.getFlowByAlias(flowAlias);
489  if (flow == null) {
490  logger.debug("flow not found: " + flowAlias);
491  return Response.status(NOT_FOUND).build();
492  }
493  List<AuthenticationExecutionInfoRepresentation> result = new LinkedList<>();
494 
495  int level = 0;
496 
497  recurseExecutions(flow, result, level);
498  return Response.ok(result).build();
499  }
final RealmModel realm
Definition: AuthenticationManagementResource.java:82
void recurseExecutions(AuthenticationFlowModel flow, List< AuthenticationExecutionInfoRepresentation > result, int level)
Definition: AuthenticationManagementResource.java:501
AdminPermissionEvaluator auth
Definition: AuthenticationManagementResource.java:84
static final Logger logger
Definition: AuthenticationManagementResource.java:87

◆ getFlow()

AuthenticationFlowRepresentation org.keycloak.services.resources.admin.AuthenticationManagementResource.getFlow ( @PathParam("id") String  id)
inline

Get authentication flow for id

引数
idFlow id
戻り値
235  {
237 
238  AuthenticationFlowModel flow = realm.getAuthenticationFlowById(id);
239  if (flow == null) {
240  throw new NotFoundException("Could not find flow with id");
241  }
242  return ModelToRepresentation.toRepresentation(realm, flow);
243  }
final RealmModel realm
Definition: AuthenticationManagementResource.java:82
AdminPermissionEvaluator auth
Definition: AuthenticationManagementResource.java:84

◆ getFlows()

List<AuthenticationFlowRepresentation> org.keycloak.services.resources.admin.AuthenticationManagementResource.getFlows ( )
inline

Get authentication flows

Returns a list of authentication flows.

184  {
186 
187  List<AuthenticationFlowRepresentation> flows = new LinkedList<>();
188  for (AuthenticationFlowModel flow : realm.getAuthenticationFlows()) {
189  // KEYCLOAK-3517, we need a better way to filter non-configurable internal flows
190  if (flow.isTopLevel() && !flow.getAlias().equals(DefaultAuthenticationFlows.SAML_ECP_FLOW)) {
191  flows.add(ModelToRepresentation.toRepresentation(realm, flow));
192  }
193  }
194  return flows;
195  }
final RealmModel realm
Definition: AuthenticationManagementResource.java:82
AdminPermissionEvaluator auth
Definition: AuthenticationManagementResource.java:84

◆ getFormActionProviders()

List<Map<String, Object> > org.keycloak.services.resources.admin.AuthenticationManagementResource.getFormActionProviders ( )
inline

Get form action providers

Returns a list of form action providers.

167  {
169 
170  List<ProviderFactory> factories = session.getKeycloakSessionFactory().getProviderFactories(FormAction.class);
171  return buildProviderMetadata(factories);
172  }
List< Map< String, Object > > buildProviderMetadata(List< ProviderFactory > factories)
Definition: AuthenticationManagementResource.java:144
final KeycloakSession session
Definition: AuthenticationManagementResource.java:83
AdminPermissionEvaluator auth
Definition: AuthenticationManagementResource.java:84

◆ getFormProviders()

List<Map<String, Object> > org.keycloak.services.resources.admin.AuthenticationManagementResource.getFormProviders ( )
inline

Get form providers

Returns a list of form providers.

105  {
107 
108  List<ProviderFactory> factories = session.getKeycloakSessionFactory().getProviderFactories(FormAuthenticator.class);
109  return buildProviderMetadata(factories);
110  }
List< Map< String, Object > > buildProviderMetadata(List< ProviderFactory > factories)
Definition: AuthenticationManagementResource.java:144
final KeycloakSession session
Definition: AuthenticationManagementResource.java:83
AdminPermissionEvaluator auth
Definition: AuthenticationManagementResource.java:84

◆ getNextPriority()

int org.keycloak.services.resources.admin.AuthenticationManagementResource.getNextPriority ( AuthenticationFlowModel  parentFlow)
inlineprivate
420  {
421  List<AuthenticationExecutionModel> executions = getSortedExecutions(parentFlow);
422  return executions.isEmpty() ? 0 : executions.get(executions.size() - 1).getPriority() + 1;
423  }
List< AuthenticationExecutionModel > getSortedExecutions(AuthenticationFlowModel parentFlow)
Definition: AuthenticationManagementResource.java:692

◆ getNextRequiredActionPriority()

int org.keycloak.services.resources.admin.AuthenticationManagementResource.getNextRequiredActionPriority ( )
inlineprivate
887  {
888  List<RequiredActionProviderModel> actions = realm.getRequiredActionProviders();
889  return actions.isEmpty() ? 0 : actions.get(actions.size() - 1).getPriority() + 1;
890  }
final RealmModel realm
Definition: AuthenticationManagementResource.java:82

◆ getParentFlow()

AuthenticationFlowModel org.keycloak.services.resources.admin.AuthenticationManagementResource.getParentFlow ( AuthenticationExecutionModel  model)
inline
639  {
640  if (model.getParentFlow() == null) {
641  throw new BadRequestException("parent flow not set on new execution");
642  }
643  AuthenticationFlowModel parentFlow = realm.getAuthenticationFlowById(model.getParentFlow());
644  if (parentFlow == null) {
645  throw new BadRequestException("execution parent flow does not exist");
646 
647  }
648  return parentFlow;
649  }
final RealmModel realm
Definition: AuthenticationManagementResource.java:82

◆ getPerClientConfigDescription()

Map<String, List<ConfigPropertyRepresentation> > org.keycloak.services.resources.admin.AuthenticationManagementResource.getPerClientConfigDescription ( )
inline

Get configuration descriptions for all clients

1097  {
1099 
1100  List<ProviderFactory> factories = session.getKeycloakSessionFactory().getProviderFactories(ClientAuthenticator.class);
1101 
1102  Map<String, List<ConfigPropertyRepresentation>> toReturn = new HashMap<>();
1103  for (ProviderFactory clientAuthenticatorFactory : factories) {
1104  String providerId = clientAuthenticatorFactory.getId();
1105  ConfigurableAuthenticatorFactory factory = CredentialHelper.getConfigurableAuthenticatorFactory(session, providerId);
1106  ClientAuthenticatorFactory clientAuthFactory = (ClientAuthenticatorFactory) factory;
1107  List<ProviderConfigProperty> perClientConfigProps = clientAuthFactory.getConfigPropertiesPerClient();
1108  List<ConfigPropertyRepresentation> result = new LinkedList<>();
1109  for (ProviderConfigProperty prop : perClientConfigProps) {
1110  ConfigPropertyRepresentation propRep = getConfigPropertyRep(prop);
1111  result.add(propRep);
1112  }
1113 
1114  toReturn.put(providerId, result);
1115  }
1116 
1117  return toReturn;
1118  }
final KeycloakSession session
Definition: AuthenticationManagementResource.java:83
ConfigPropertyRepresentation getConfigPropertyRep(ProviderConfigProperty prop)
Definition: AuthenticationManagementResource.java:1086
AdminPermissionEvaluator auth
Definition: AuthenticationManagementResource.java:84

◆ getRequiredAction()

RequiredActionProviderRepresentation org.keycloak.services.resources.admin.AuthenticationManagementResource.getRequiredAction ( @PathParam("alias") String  alias)
inline

Get required action for alias

引数
aliasAlias of required action
932  {
934 
935  RequiredActionProviderModel model = realm.getRequiredActionProviderByAlias(alias);
936  if (model == null) {
937  throw new NotFoundException("Failed to find required action");
938  }
939  return toRepresentation(model);
940  }
final RealmModel realm
Definition: AuthenticationManagementResource.java:82
static RequiredActionProviderRepresentation toRepresentation(RequiredActionProviderModel model)
Definition: AuthenticationManagementResource.java:913
AdminPermissionEvaluator auth
Definition: AuthenticationManagementResource.java:84

◆ getRequiredActions()

List<RequiredActionProviderRepresentation> org.keycloak.services.resources.admin.AuthenticationManagementResource.getRequiredActions ( )
inline

Get required actions

Returns a list of required actions.

902  {
904 
905  List<RequiredActionProviderRepresentation> list = new LinkedList<>();
906  for (RequiredActionProviderModel model : realm.getRequiredActionProviders()) {
907  RequiredActionProviderRepresentation rep = toRepresentation(model);
908  list.add(rep);
909  }
910  return list;
911  }
final RealmModel realm
Definition: AuthenticationManagementResource.java:82
static RequiredActionProviderRepresentation toRepresentation(RequiredActionProviderModel model)
Definition: AuthenticationManagementResource.java:913
AdminPermissionEvaluator auth
Definition: AuthenticationManagementResource.java:84

◆ getSortedExecutions()

List<AuthenticationExecutionModel> org.keycloak.services.resources.admin.AuthenticationManagementResource.getSortedExecutions ( AuthenticationFlowModel  parentFlow)
inline
692  {
693  List<AuthenticationExecutionModel> executions = new LinkedList<>(realm.getAuthenticationExecutions(parentFlow.getId()));
694  Collections.sort(executions, AuthenticationExecutionModel.ExecutionComparator.SINGLETON);
695  return executions;
696  }
final RealmModel realm
Definition: AuthenticationManagementResource.java:82

◆ getUnregisteredRequiredActions()

List<Map<String, String> > org.keycloak.services.resources.admin.AuthenticationManagementResource.getUnregisteredRequiredActions ( )
inline

Get unregistered required actions

Returns a list of unregistered required actions.

835  {
837 
838  List<ProviderFactory> factories = session.getKeycloakSessionFactory().getProviderFactories(RequiredActionProvider.class);
839  List<Map<String, String>> unregisteredList = new LinkedList<>();
840  for (ProviderFactory factory : factories) {
841  RequiredActionFactory requiredActionFactory = (RequiredActionFactory) factory;
842  boolean found = false;
843  for (RequiredActionProviderModel model : realm.getRequiredActionProviders()) {
844  if (model.getProviderId().equals(factory.getId())) {
845  found = true;
846  break;
847  }
848  }
849  if (!found) {
850  Map<String, String> data = new HashMap<>();
851  data.put("name", requiredActionFactory.getDisplayText());
852  data.put("providerId", requiredActionFactory.getId());
853  unregisteredList.add(data);
854  }
855 
856  }
857  return unregisteredList;
858  }
final RealmModel realm
Definition: AuthenticationManagementResource.java:82
final KeycloakSession session
Definition: AuthenticationManagementResource.java:83
AdminPermissionEvaluator auth
Definition: AuthenticationManagementResource.java:84

◆ lowerPriority()

void org.keycloak.services.resources.admin.AuthenticationManagementResource.lowerPriority ( @PathParam("executionId") String  execution)
inline

Lower execution's priority

引数
executionExecution id
706  {
708 
709  AuthenticationExecutionModel model = realm.getAuthenticationExecutionById(execution);
710  if (model == null) {
711  session.getTransactionManager().setRollbackOnly();
712  throw new NotFoundException("Illegal execution");
713 
714  }
715  AuthenticationFlowModel parentFlow = getParentFlow(model);
716  if (parentFlow.isBuiltIn()) {
717  throw new BadRequestException("It is illegal to modify execution in a built in flow");
718  }
719  List<AuthenticationExecutionModel> executions = getSortedExecutions(parentFlow);
720  int i = 0;
721  for (i = 0; i < executions.size(); i++) {
722  if (executions.get(i).getId().equals(model.getId())) {
723  break;
724  }
725  }
726  if (i + 1 >= executions.size()) return;
727  AuthenticationExecutionModel next = executions.get(i + 1);
728  int tmp = model.getPriority();
729  model.setPriority(next.getPriority());
730  realm.updateAuthenticatorExecution(model);
731  next.setPriority(tmp);
732  realm.updateAuthenticatorExecution(next);
733 
734  adminEvent.operation(OperationType.UPDATE).resource(ResourceType.AUTH_EXECUTION).resourcePath(session.getContext().getUri()).success();
735  }
final RealmModel realm
Definition: AuthenticationManagementResource.java:82
AuthenticationFlowModel getParentFlow(AuthenticationExecutionModel model)
Definition: AuthenticationManagementResource.java:639
List< AuthenticationExecutionModel > getSortedExecutions(AuthenticationFlowModel parentFlow)
Definition: AuthenticationManagementResource.java:692
AdminEventBuilder resource(ResourceType resourceType)
Definition: AdminEventBuilder.java:118
AdminEventBuilder operation(OperationType operationType)
Definition: AdminEventBuilder.java:113
final KeycloakSession session
Definition: AuthenticationManagementResource.java:83
AdminEventBuilder resourcePath(String... pathElements)
Definition: AdminEventBuilder.java:171
AdminEventBuilder adminEvent
Definition: AuthenticationManagementResource.java:85
AdminPermissionEvaluator auth
Definition: AuthenticationManagementResource.java:84

◆ lowerRequiredActionPriority()

void org.keycloak.services.resources.admin.AuthenticationManagementResource.lowerRequiredActionPriority ( @PathParam("alias") String  alias)
inline

Lower required action's priority

引数
aliasAlias of required action
1033  {
1035 
1036  RequiredActionProviderModel model = realm.getRequiredActionProviderByAlias(alias);
1037  if (model == null) {
1038  throw new NotFoundException("Failed to find required action.");
1039  }
1040 
1041  List<RequiredActionProviderModel> actions = realm.getRequiredActionProviders();
1042  int i = 0;
1043  for (i = 0; i < actions.size(); i++) {
1044  if (actions.get(i).getId().equals(model.getId())) {
1045  break;
1046  }
1047  }
1048  if (i + 1 >= actions.size()) return;
1049  RequiredActionProviderModel next = actions.get(i + 1);
1050  int tmp = model.getPriority();
1051  model.setPriority(next.getPriority());
1052  realm.updateRequiredActionProvider(model);
1053  next.setPriority(tmp);
1054  realm.updateRequiredActionProvider(next);
1055 
1056  adminEvent.operation(OperationType.UPDATE).resource(ResourceType.REQUIRED_ACTION).resourcePath(session.getContext().getUri()).success();
1057  }
final RealmModel realm
Definition: AuthenticationManagementResource.java:82
AdminEventBuilder resource(ResourceType resourceType)
Definition: AdminEventBuilder.java:118
AdminEventBuilder operation(OperationType operationType)
Definition: AdminEventBuilder.java:113
final KeycloakSession session
Definition: AuthenticationManagementResource.java:83
AdminEventBuilder resourcePath(String... pathElements)
Definition: AdminEventBuilder.java:171
AdminEventBuilder adminEvent
Definition: AuthenticationManagementResource.java:85
AdminPermissionEvaluator auth
Definition: AuthenticationManagementResource.java:84

◆ newExecutionConfig()

Response org.keycloak.services.resources.admin.AuthenticationManagementResource.newExecutionConfig ( @PathParam("executionId") String  execution,
AuthenticatorConfigRepresentation  json 
)
inline

Update execution with new configuration

引数
executionExecution id
jsonJSON with new configuration
戻り値
782  {
784 
785  AuthenticationExecutionModel model = realm.getAuthenticationExecutionById(execution);
786  if (model == null) {
787  session.getTransactionManager().setRollbackOnly();
788  throw new NotFoundException("Illegal execution");
789 
790  }
791  AuthenticatorConfigModel config = RepresentationToModel.toModel(json);
792  if (config.getAlias() == null) {
793  return ErrorResponse.error("Alias missing", Response.Status.BAD_REQUEST);
794  }
795  config = realm.addAuthenticatorConfig(config);
796  model.setAuthenticatorConfig(config.getId());
797  realm.updateAuthenticatorExecution(model);
798 
799  json.setId(config.getId());
800  adminEvent.operation(OperationType.CREATE).resource(ResourceType.AUTH_EXECUTION).resourcePath(session.getContext().getUri()).representation(json).success();
801  return Response.created(session.getContext().getUri().getAbsolutePathBuilder().path(config.getId()).build()).build();
802  }
final RealmModel realm
Definition: AuthenticationManagementResource.java:82
AdminEventBuilder resource(ResourceType resourceType)
Definition: AdminEventBuilder.java:118
AdminEventBuilder operation(OperationType operationType)
Definition: AdminEventBuilder.java:113
final KeycloakSession session
Definition: AuthenticationManagementResource.java:83
void success()
Definition: AdminEventBuilder.java:226
AdminEventBuilder resourcePath(String... pathElements)
Definition: AdminEventBuilder.java:171
AdminEventBuilder adminEvent
Definition: AuthenticationManagementResource.java:85
AdminPermissionEvaluator auth
Definition: AuthenticationManagementResource.java:84

◆ raisePriority()

void org.keycloak.services.resources.admin.AuthenticationManagementResource.raisePriority ( @PathParam("executionId") String  execution)
inline

Raise execution's priority

引数
executionExecution id
660  {
662 
663  AuthenticationExecutionModel model = realm.getAuthenticationExecutionById(execution);
664  if (model == null) {
665  session.getTransactionManager().setRollbackOnly();
666  throw new NotFoundException("Illegal execution");
667 
668  }
669  AuthenticationFlowModel parentFlow = getParentFlow(model);
670  if (parentFlow.isBuiltIn()) {
671  throw new BadRequestException("It is illegal to modify execution in a built in flow");
672  }
673  List<AuthenticationExecutionModel> executions = getSortedExecutions(parentFlow);
674  AuthenticationExecutionModel previous = null;
675  for (AuthenticationExecutionModel exe : executions) {
676  if (exe.getId().equals(model.getId())) {
677  break;
678  }
679  previous = exe;
680 
681  }
682  if (previous == null) return;
683  int tmp = previous.getPriority();
684  previous.setPriority(model.getPriority());
685  realm.updateAuthenticatorExecution(previous);
686  model.setPriority(tmp);
687  realm.updateAuthenticatorExecution(model);
688 
689  adminEvent.operation(OperationType.UPDATE).resource(ResourceType.AUTH_EXECUTION).resourcePath(session.getContext().getUri()).success();
690  }
final RealmModel realm
Definition: AuthenticationManagementResource.java:82
AuthenticationFlowModel getParentFlow(AuthenticationExecutionModel model)
Definition: AuthenticationManagementResource.java:639
List< AuthenticationExecutionModel > getSortedExecutions(AuthenticationFlowModel parentFlow)
Definition: AuthenticationManagementResource.java:692
AdminEventBuilder resource(ResourceType resourceType)
Definition: AdminEventBuilder.java:118
AdminEventBuilder operation(OperationType operationType)
Definition: AdminEventBuilder.java:113
final KeycloakSession session
Definition: AuthenticationManagementResource.java:83
AdminEventBuilder resourcePath(String... pathElements)
Definition: AdminEventBuilder.java:171
AdminEventBuilder adminEvent
Definition: AuthenticationManagementResource.java:85
AdminPermissionEvaluator auth
Definition: AuthenticationManagementResource.java:84

◆ raiseRequiredActionPriority()

void org.keycloak.services.resources.admin.AuthenticationManagementResource.raiseRequiredActionPriority ( @PathParam("alias") String  alias)
inline

Raise required action's priority

引数
aliasAlias of required action
999  {
1001 
1002  RequiredActionProviderModel model = realm.getRequiredActionProviderByAlias(alias);
1003  if (model == null) {
1004  throw new NotFoundException("Failed to find required action.");
1005  }
1006 
1007  List<RequiredActionProviderModel> actions = realm.getRequiredActionProviders();
1008  RequiredActionProviderModel previous = null;
1009  for (RequiredActionProviderModel action : actions) {
1010  if (action.getId().equals(model.getId())) {
1011  break;
1012  }
1013  previous = action;
1014  }
1015  if (previous == null) return;
1016  int tmp = previous.getPriority();
1017  previous.setPriority(model.getPriority());
1018  realm.updateRequiredActionProvider(previous);
1019  model.setPriority(tmp);
1020  realm.updateRequiredActionProvider(model);
1021 
1022  adminEvent.operation(OperationType.UPDATE).resource(ResourceType.REQUIRED_ACTION).resourcePath(session.getContext().getUri()).success();
1023  }
final RealmModel realm
Definition: AuthenticationManagementResource.java:82
AdminEventBuilder resource(ResourceType resourceType)
Definition: AdminEventBuilder.java:118
AdminEventBuilder operation(OperationType operationType)
Definition: AdminEventBuilder.java:113
final KeycloakSession session
Definition: AuthenticationManagementResource.java:83
AdminEventBuilder resourcePath(String... pathElements)
Definition: AdminEventBuilder.java:171
AdminEventBuilder adminEvent
Definition: AuthenticationManagementResource.java:85
AdminPermissionEvaluator auth
Definition: AuthenticationManagementResource.java:84

◆ recurseExecutions()

void org.keycloak.services.resources.admin.AuthenticationManagementResource.recurseExecutions ( AuthenticationFlowModel  flow,
List< AuthenticationExecutionInfoRepresentation >  result,
int  level 
)
inline
501  {
502  int index = 0;
503  List<AuthenticationExecutionModel> executions = realm.getAuthenticationExecutions(flow.getId());
504  for (AuthenticationExecutionModel execution : executions) {
505  AuthenticationExecutionInfoRepresentation rep = new AuthenticationExecutionInfoRepresentation();
506  rep.setLevel(level);
507  rep.setIndex(index++);
508  rep.setRequirementChoices(new LinkedList<String>());
509  if (execution.isAuthenticatorFlow()) {
510  AuthenticationFlowModel flowRef = realm.getAuthenticationFlowById(execution.getFlowId());
511  if (AuthenticationFlow.BASIC_FLOW.equals(flowRef.getProviderId())) {
512  rep.getRequirementChoices().add(AuthenticationExecutionModel.Requirement.ALTERNATIVE.name());
513  rep.getRequirementChoices().add(AuthenticationExecutionModel.Requirement.REQUIRED.name());
514  rep.getRequirementChoices().add(AuthenticationExecutionModel.Requirement.DISABLED.name());
515  } else if (AuthenticationFlow.FORM_FLOW.equals(flowRef.getProviderId())) {
516  rep.getRequirementChoices().add(AuthenticationExecutionModel.Requirement.REQUIRED.name());
517  rep.getRequirementChoices().add(AuthenticationExecutionModel.Requirement.DISABLED.name());
518  rep.setProviderId(execution.getAuthenticator());
519  rep.setAuthenticationConfig(execution.getAuthenticatorConfig());
520  } else if (AuthenticationFlow.CLIENT_FLOW.equals(flowRef.getProviderId())) {
521  rep.getRequirementChoices().add(AuthenticationExecutionModel.Requirement.ALTERNATIVE.name());
522  rep.getRequirementChoices().add(AuthenticationExecutionModel.Requirement.REQUIRED.name());
523  rep.getRequirementChoices().add(AuthenticationExecutionModel.Requirement.DISABLED.name());
524  }
525  rep.setDisplayName(flowRef.getAlias());
526  rep.setConfigurable(false);
527  rep.setId(execution.getId());
528  rep.setAuthenticationFlow(execution.isAuthenticatorFlow());
529  rep.setRequirement(execution.getRequirement().name());
530  rep.setFlowId(execution.getFlowId());
531  result.add(rep);
532  AuthenticationFlowModel subFlow = realm.getAuthenticationFlowById(execution.getFlowId());
533  recurseExecutions(subFlow, result, level + 1);
534  } else {
535  String providerId = execution.getAuthenticator();
536  ConfigurableAuthenticatorFactory factory = CredentialHelper.getConfigurableAuthenticatorFactory(session, providerId);
537  rep.setDisplayName(factory.getDisplayType());
538  rep.setConfigurable(factory.isConfigurable());
539  for (AuthenticationExecutionModel.Requirement choice : factory.getRequirementChoices()) {
540  rep.getRequirementChoices().add(choice.name());
541  }
542  rep.setId(execution.getId());
543 
544  if (factory.isConfigurable()) {
545  String authenticatorConfigId = execution.getAuthenticatorConfig();
546  if(authenticatorConfigId != null) {
547  AuthenticatorConfigModel authenticatorConfig = realm.getAuthenticatorConfigById(authenticatorConfigId);
548 
549  if (authenticatorConfig != null) {
550  rep.setAlias(authenticatorConfig.getAlias());
551  }
552  }
553  }
554 
555  rep.setRequirement(execution.getRequirement().name());
556  rep.setProviderId(execution.getAuthenticator());
557  rep.setAuthenticationConfig(execution.getAuthenticatorConfig());
558  result.add(rep);
559  }
560  }
561  }
final RealmModel realm
Definition: AuthenticationManagementResource.java:82
void recurseExecutions(AuthenticationFlowModel flow, List< AuthenticationExecutionInfoRepresentation > result, int level)
Definition: AuthenticationManagementResource.java:501
final KeycloakSession session
Definition: AuthenticationManagementResource.java:83

◆ registerRequiredAction()

void org.keycloak.services.resources.admin.AuthenticationManagementResource.registerRequiredAction ( Map< String, String >  data)
inline

Register a new required actions

引数
dataJSON containing 'providerId', and 'name' attributes.
869  {
871 
872  String providerId = data.get("providerId");
873  String name = data.get("name");
874  RequiredActionProviderModel requiredAction = new RequiredActionProviderModel();
875  requiredAction.setAlias(providerId);
876  requiredAction.setName(name);
877  requiredAction.setProviderId(providerId);
878  requiredAction.setDefaultAction(false);
879  requiredAction.setPriority(getNextRequiredActionPriority());
880  requiredAction.setEnabled(true);
881  requiredAction = realm.addRequiredActionProvider(requiredAction);
882 
883  data.put("id", requiredAction.getId());
884  adminEvent.operation(OperationType.CREATE).resource(ResourceType.REQUIRED_ACTION).resourcePath(session.getContext().getUri()).representation(data).success();
885  }
final RealmModel realm
Definition: AuthenticationManagementResource.java:82
AdminEventBuilder resource(ResourceType resourceType)
Definition: AdminEventBuilder.java:118
AdminEventBuilder operation(OperationType operationType)
Definition: AdminEventBuilder.java:113
int getNextRequiredActionPriority()
Definition: AuthenticationManagementResource.java:887
final KeycloakSession session
Definition: AuthenticationManagementResource.java:83
void success()
Definition: AdminEventBuilder.java:226
AdminEventBuilder resourcePath(String... pathElements)
Definition: AdminEventBuilder.java:171
AdminEventBuilder adminEvent
Definition: AuthenticationManagementResource.java:85
AdminPermissionEvaluator auth
Definition: AuthenticationManagementResource.java:84

◆ removeAuthenticatorConfig()

void org.keycloak.services.resources.admin.AuthenticationManagementResource.removeAuthenticatorConfig ( @PathParam("id") String  id)
inline

Delete authenticator configuration

引数
idConfiguration id
1163  {
1165 
1166  AuthenticatorConfigModel config = realm.getAuthenticatorConfigById(id);
1167  if (config == null) {
1168  throw new NotFoundException("Could not find authenticator config");
1169 
1170  }
1171  List<AuthenticationFlowModel> flows = new LinkedList<>();
1172  for (AuthenticationFlowModel flow : realm.getAuthenticationFlows()) {
1173  for (AuthenticationExecutionModel exe : realm.getAuthenticationExecutions(flow.getId())) {
1174  if (id.equals(exe.getAuthenticatorConfig())) {
1175  exe.setAuthenticatorConfig(null);
1176  realm.updateAuthenticatorExecution(exe);
1177  }
1178  }
1179  }
1180 
1181  realm.removeAuthenticatorConfig(config);
1182 
1183  adminEvent.operation(OperationType.DELETE).resource(ResourceType.AUTHENTICATOR_CONFIG).resourcePath(session.getContext().getUri()).success();
1184  }
final RealmModel realm
Definition: AuthenticationManagementResource.java:82
AdminEventBuilder resource(ResourceType resourceType)
Definition: AdminEventBuilder.java:118
AdminEventBuilder operation(OperationType operationType)
Definition: AdminEventBuilder.java:113
final KeycloakSession session
Definition: AuthenticationManagementResource.java:83
AdminEventBuilder resourcePath(String... pathElements)
Definition: AdminEventBuilder.java:171
AdminEventBuilder adminEvent
Definition: AuthenticationManagementResource.java:85
AdminPermissionEvaluator auth
Definition: AuthenticationManagementResource.java:84

◆ removeExecution()

void org.keycloak.services.resources.admin.AuthenticationManagementResource.removeExecution ( @PathParam("executionId") String  execution)
inline

Delete execution

引数
executionExecution id
746  {
748 
749  AuthenticationExecutionModel model = realm.getAuthenticationExecutionById(execution);
750  if (model == null) {
751  session.getTransactionManager().setRollbackOnly();
752  throw new NotFoundException("Illegal execution");
753 
754  }
755  AuthenticationFlowModel parentFlow = getParentFlow(model);
756  if (parentFlow.isBuiltIn()) {
757  throw new BadRequestException("It is illegal to remove execution from a built in flow");
758  }
759 
760  if(model.getFlowId() != null) {
761  AuthenticationFlowModel nonTopLevelFlow = realm.getAuthenticationFlowById(model.getFlowId());
762  realm.removeAuthenticationFlow(nonTopLevelFlow);
763  }
764 
765  realm.removeAuthenticatorExecution(model);
766 
767  adminEvent.operation(OperationType.DELETE).resource(ResourceType.AUTH_EXECUTION).resourcePath(session.getContext().getUri()).success();
768  }
final RealmModel realm
Definition: AuthenticationManagementResource.java:82
AuthenticationFlowModel getParentFlow(AuthenticationExecutionModel model)
Definition: AuthenticationManagementResource.java:639
AdminEventBuilder resource(ResourceType resourceType)
Definition: AdminEventBuilder.java:118
AdminEventBuilder operation(OperationType operationType)
Definition: AdminEventBuilder.java:113
final KeycloakSession session
Definition: AuthenticationManagementResource.java:83
AdminEventBuilder resourcePath(String... pathElements)
Definition: AdminEventBuilder.java:171
AdminEventBuilder adminEvent
Definition: AuthenticationManagementResource.java:85
AdminPermissionEvaluator auth
Definition: AuthenticationManagementResource.java:84

◆ removeRequiredAction()

void org.keycloak.services.resources.admin.AuthenticationManagementResource.removeRequiredAction ( @PathParam("alias") String  alias)
inline

Delete required action

引数
aliasAlias of required action
979  {
981 
982  RequiredActionProviderModel model = realm.getRequiredActionProviderByAlias(alias);
983  if (model == null) {
984  throw new NotFoundException("Failed to find required action.");
985  }
986  realm.removeRequiredActionProvider(model);
987 
988  adminEvent.operation(OperationType.DELETE).resource(ResourceType.REQUIRED_ACTION).resourcePath(session.getContext().getUri()).success();
989  }
final RealmModel realm
Definition: AuthenticationManagementResource.java:82
AdminEventBuilder resource(ResourceType resourceType)
Definition: AdminEventBuilder.java:118
AdminEventBuilder operation(OperationType operationType)
Definition: AdminEventBuilder.java:113
final KeycloakSession session
Definition: AuthenticationManagementResource.java:83
AdminEventBuilder resourcePath(String... pathElements)
Definition: AdminEventBuilder.java:171
AdminEventBuilder adminEvent
Definition: AuthenticationManagementResource.java:85
AdminPermissionEvaluator auth
Definition: AuthenticationManagementResource.java:84

◆ toRepresentation()

static RequiredActionProviderRepresentation org.keycloak.services.resources.admin.AuthenticationManagementResource.toRepresentation ( RequiredActionProviderModel  model)
inlinestatic
913  {
914  RequiredActionProviderRepresentation rep = new RequiredActionProviderRepresentation();
915  rep.setAlias(model.getAlias());
916  rep.setName(model.getName());
917  rep.setDefaultAction(model.isDefaultAction());
918  rep.setPriority(model.getPriority());
919  rep.setEnabled(model.isEnabled());
920  rep.setConfig(model.getConfig());
921  return rep;
922  }

◆ updateAuthenticatorConfig()

void org.keycloak.services.resources.admin.AuthenticationManagementResource.updateAuthenticatorConfig ( @PathParam("id") String  id,
AuthenticatorConfigRepresentation  rep 
)
inline

Update authenticator configuration

引数
idConfiguration id
repJSON describing new state of authenticator configuration
1195  {
1197 
1198  AuthenticatorConfigModel exists = realm.getAuthenticatorConfigById(id);
1199  if (exists == null) {
1200  throw new NotFoundException("Could not find authenticator config");
1201 
1202  }
1203  exists.setAlias(rep.getAlias());
1204  exists.setConfig(rep.getConfig());
1205  realm.updateAuthenticatorConfig(exists);
1206  adminEvent.operation(OperationType.UPDATE).resource(ResourceType.AUTHENTICATOR_CONFIG).resourcePath(session.getContext().getUri()).representation(rep).success();
1207  }
final RealmModel realm
Definition: AuthenticationManagementResource.java:82
AdminEventBuilder resource(ResourceType resourceType)
Definition: AdminEventBuilder.java:118
AdminEventBuilder operation(OperationType operationType)
Definition: AdminEventBuilder.java:113
final KeycloakSession session
Definition: AuthenticationManagementResource.java:83
void success()
Definition: AdminEventBuilder.java:226
AdminEventBuilder resourcePath(String... pathElements)
Definition: AdminEventBuilder.java:171
AdminEventBuilder adminEvent
Definition: AuthenticationManagementResource.java:85
AdminPermissionEvaluator auth
Definition: AuthenticationManagementResource.java:84

◆ updateExecutions()

void org.keycloak.services.resources.admin.AuthenticationManagementResource.updateExecutions ( @PathParam("flowAlias") String  flowAlias,
AuthenticationExecutionInfoRepresentation  rep 
)
inline

Update authentication executions of a flow

引数
flowAliasFlow alias
rep
573  {
575 
576  AuthenticationFlowModel flow = realm.getFlowByAlias(flowAlias);
577  if (flow == null) {
578  logger.debug("flow not found: " + flowAlias);
579  throw new NotFoundException("flow not found");
580  }
581 
582  AuthenticationExecutionModel model = realm.getAuthenticationExecutionById(rep.getId());
583  if (model == null) {
584  session.getTransactionManager().setRollbackOnly();
585  throw new NotFoundException("Illegal execution");
586 
587  }
588  if (!model.getRequirement().name().equals(rep.getRequirement())) {
589  model.setRequirement(AuthenticationExecutionModel.Requirement.valueOf(rep.getRequirement()));
590  realm.updateAuthenticatorExecution(model);
591  adminEvent.operation(OperationType.UPDATE).resource(ResourceType.AUTH_EXECUTION).resourcePath(session.getContext().getUri()).representation(rep).success();
592  }
593  }
final RealmModel realm
Definition: AuthenticationManagementResource.java:82
AdminEventBuilder resource(ResourceType resourceType)
Definition: AdminEventBuilder.java:118
AdminEventBuilder operation(OperationType operationType)
Definition: AdminEventBuilder.java:113
final KeycloakSession session
Definition: AuthenticationManagementResource.java:83
void success()
Definition: AdminEventBuilder.java:226
AdminEventBuilder resourcePath(String... pathElements)
Definition: AdminEventBuilder.java:171
AdminEventBuilder adminEvent
Definition: AuthenticationManagementResource.java:85
AdminPermissionEvaluator auth
Definition: AuthenticationManagementResource.java:84
static final Logger logger
Definition: AuthenticationManagementResource.java:87

◆ updateFlow()

Response org.keycloak.services.resources.admin.AuthenticationManagementResource.updateFlow ( @PathParam("id") String  id,
AuthenticationFlowRepresentation  flow 
)
inline

Update an authentication flow

引数
flowAuthentication flow representation
戻り値
255  {
257 
258  AuthenticationFlowRepresentation existingFlow = getFlow(id);
259 
260  if (flow.getAlias() == null || flow.getAlias().isEmpty()) {
261  return ErrorResponse.exists("Failed to update flow with empty alias name");
262  }
263 
264  flow.setId(existingFlow.getId());
265  realm.updateAuthenticationFlow(RepresentationToModel.toModel(flow));
266  adminEvent.operation(OperationType.UPDATE).resourcePath(session.getContext().getUri()).representation(flow).success();
267 
268  return Response.accepted(flow).build();
269  }
final RealmModel realm
Definition: AuthenticationManagementResource.java:82
AuthenticationFlowRepresentation getFlow(@PathParam("id") String id)
Definition: AuthenticationManagementResource.java:235
AdminEventBuilder operation(OperationType operationType)
Definition: AdminEventBuilder.java:113
final KeycloakSession session
Definition: AuthenticationManagementResource.java:83
void success()
Definition: AdminEventBuilder.java:226
AdminEventBuilder resourcePath(String... pathElements)
Definition: AdminEventBuilder.java:171
AdminEventBuilder adminEvent
Definition: AuthenticationManagementResource.java:85
AdminPermissionEvaluator auth
Definition: AuthenticationManagementResource.java:84

◆ updateRequiredAction()

void org.keycloak.services.resources.admin.AuthenticationManagementResource.updateRequiredAction ( @PathParam("alias") String  alias,
RequiredActionProviderRepresentation  rep 
)
inline

Update required action

引数
aliasAlias of required action
repJSON describing new state of required action
952  {
954 
955  RequiredActionProviderModel model = realm.getRequiredActionProviderByAlias(alias);
956  if (model == null) {
957  throw new NotFoundException("Failed to find required action");
958  }
959  RequiredActionProviderModel update = new RequiredActionProviderModel();
960  update.setId(model.getId());
961  update.setName(rep.getName());
962  update.setAlias(rep.getAlias());
963  update.setProviderId(model.getProviderId());
964  update.setDefaultAction(rep.isDefaultAction());
965  update.setPriority(rep.getPriority());
966  update.setEnabled(rep.isEnabled());
967  update.setConfig(rep.getConfig());
968  realm.updateRequiredActionProvider(update);
969 
970  adminEvent.operation(OperationType.UPDATE).resource(ResourceType.REQUIRED_ACTION).resourcePath(session.getContext().getUri()).representation(rep).success();
971  }
final RealmModel realm
Definition: AuthenticationManagementResource.java:82
AdminEventBuilder resource(ResourceType resourceType)
Definition: AdminEventBuilder.java:118
AdminEventBuilder operation(OperationType operationType)
Definition: AdminEventBuilder.java:113
final KeycloakSession session
Definition: AuthenticationManagementResource.java:83
void success()
Definition: AdminEventBuilder.java:226
AdminEventBuilder resourcePath(String... pathElements)
Definition: AdminEventBuilder.java:171
AdminEventBuilder adminEvent
Definition: AuthenticationManagementResource.java:85
AdminPermissionEvaluator auth
Definition: AuthenticationManagementResource.java:84

メンバ詳解

◆ adminEvent

AdminEventBuilder org.keycloak.services.resources.admin.AuthenticationManagementResource.adminEvent
private

◆ auth

AdminPermissionEvaluator org.keycloak.services.resources.admin.AuthenticationManagementResource.auth
private

◆ logger

final Logger org.keycloak.services.resources.admin.AuthenticationManagementResource.logger = Logger.getLogger(AuthenticationManagementResource.class)
staticprotected

◆ realm

final RealmModel org.keycloak.services.resources.admin.AuthenticationManagementResource.realm
private

◆ session

final KeycloakSession org.keycloak.services.resources.admin.AuthenticationManagementResource.session
private

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