org.keycloak.services.clientpolicy.condition

## Interface ClientPolicyConditionProvider<CONFIG extends ClientPolicyConditionConfigurationRepresentation>

- All Superinterfaces:
    Provider
  All Known Implementing Classes:
    AbstractClientPolicyConditionProvider, AnyClientCondition, ClientAccessTypeCondition, ClientRolesCondition, ClientScopesCondition, ClientUpdaterContextCondition, ClientUpdaterSourceGroupsCondition, ClientUpdaterSourceHostsCondition, ClientUpdaterSourceRolesCondition

      public interface ClientPolicyConditionProvider<CONFIG extends ClientPolicyConditionConfigurationRepresentation>
      extends Provider

  This condition determines to which client a client policy is adopted. The condition can be evaluated on the events defined in `ClientPolicyEvent`. It is sufficient for the implementer of this condition to implement methods in which they are interested and `isEvaluatedOnEvent` method.
  Author:
    Takashi Norimatsu

- - ### Method Summary

    All Methods Instance Methods Abstract Methods Default Methods
    Modifier and Type | Method and Description
    --- | ---
    `default ClientPolicyVote` | `applyPolicy(ClientPolicyContext context)` returns ABSTAIN if this condition is not evaluated due to its nature.
    `default void` | `close()`
    `default Class<CONFIG>` | `getConditionConfigurationClass()`
    `default String` | `getName()`
    `String` | `getProviderId()`
    `boolean` | `isNegativeLogic()` tells whether the result of applyPolicy method is inverted or not as follows.
    `void` | `setupConfiguration(CONFIG config)` setup this condition's configuration.

- - ### Method Detail

    - #### close

          default void close()

      Specified by:
        `close` in interface `Provider`

    - #### setupConfiguration

          void setupConfiguration(CONFIG config)

      setup this condition's configuration.
      Parameters:
        `config` -

    - #### getConditionConfigurationClass

          default Class<CONFIG> getConditionConfigurationClass()

      Returns:
        Class, which should match the "config" argument of the `setupConfiguration(ClientPolicyConditionConfigurationRepresentation)`

    - #### applyPolicy

          default ClientPolicyVote applyPolicy(ClientPolicyContext context)
                                        throws ClientPolicyException

      returns ABSTAIN if this condition is not evaluated due to its nature. returns YES if the client satisfies this condition on the event defined in `ClientPolicyEvent`. If not, returns NO.
      Parameters:
        `context` - - the context of the event.
      Returns:
        returns ABSTAIN if this condition is not evaluated due to its nature.
      Throws:
        `{@link` - ClientPolicyException} - thrown if the condition is not evaluated in its nature on the event specified by context.
        `ClientPolicyException`

    - #### isNegativeLogic

          boolean isNegativeLogic()
                           throws ClientPolicyException

      tells whether the result of applyPolicy method is inverted or not as follows. ClientPolicyVote.YES is inverted to ClientPolicyVote.NO ClientPolicyVote.NO is inverted to ClientPolicyVote.YES ClientPolicyVote.ABSTAIN remains unchanged
      Returns:
        true if the result of applyPolicy method is inverted.
      Throws:
        `ClientPolicyException`

    - #### getName

          default String getName()

    - #### getProviderId

          String getProviderId()

Copyright © 2021 JBoss by Red Hat. All rights reserved.