Class DoLockoutManagerOperation

  • All Implemented Interfaces:
    net.shibboleth.utilities.java.support.component.Component, net.shibboleth.utilities.java.support.component.DestructableComponent, net.shibboleth.utilities.java.support.component.InitializableComponent, org.opensaml.profile.action.ProfileAction, Aware, MessageSource, MessageSourceAware, Action

    public class DoLockoutManagerOperation
    extends net.shibboleth.idp.profile.AbstractProfileAction
    Action that implements a JSON REST API for the AccountLockoutManager interface.

    The API supports GET, POST, and DELETE at the moment, using jsonapi.org conventions.

    GET
    Check for lockout.
    POST
    Increment lockout.
    DELETE
    Clear lockout count.
    Event:
    EventIds.PROCEED_EVENT_ID, EventIds.INVALID_PROFILE_CTX, EventIds.IO_ERROR
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private String key
      Account key to operate on.
      static String KEY
      Flow variable indicating ID of account key.
      private net.shibboleth.idp.authn.AccountLockoutManager lockoutManager
      AccountLockoutManager to operate on.
      private org.slf4j.Logger log
      Class logger.
      static String MANAGER_ID
      Flow variable indicating ID of manager bean to access.
      private String managerId
      Manager ID to operate on.
      private com.fasterxml.jackson.databind.ObjectMapper objectMapper
      JSON object mapper.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected void doExecute​(org.opensaml.profile.context.ProfileRequestContext profileRequestContext)
      protected void doInitialize()
      protected boolean doPreExecute​(org.opensaml.profile.context.ProfileRequestContext profileRequestContext)
      private net.shibboleth.idp.authn.AccountLockoutManager getLockoutManager​(RequestContext requestContext)
      Helper method to get the manager bean to operate on.
      private void sendError​(int status, String title, String detail)
      Output an error object.
      void setObjectMapper​(com.fasterxml.jackson.databind.ObjectMapper mapper)
      Set the JSON ObjectMapper to use for serialization.
      • Methods inherited from class net.shibboleth.idp.profile.AbstractProfileAction

        doExecute, execute, getMessage, getMessage, getMessage, getProfileContextLookupStrategy, getRequestContext, getResult, setMessageSource, setProfileContextLookupStrategy
      • Methods inherited from class org.opensaml.profile.action.AbstractConditionalProfileAction

        getActivationCondition, setActivationCondition
      • Methods inherited from class org.opensaml.profile.action.AbstractProfileAction

        doPostExecute, doPostExecute, execute, getHttpServletRequest, getHttpServletResponse, getLogPrefix, setHttpServletRequest, setHttpServletResponse
      • Methods inherited from class net.shibboleth.utilities.java.support.component.AbstractInitializableComponent

        destroy, doDestroy, initialize, isDestroyed, isInitialized
      • Methods inherited from interface net.shibboleth.utilities.java.support.component.InitializableComponent

        initialize, isInitialized
    • Field Detail

      • MANAGER_ID

        @Nonnull
        @NotEmpty
        public static final String MANAGER_ID
        Flow variable indicating ID of manager bean to access.
        See Also:
        Constant Field Values
      • log

        @Nonnull
        private org.slf4j.Logger log
        Class logger.
      • objectMapper

        @NonnullAfterInit
        private com.fasterxml.jackson.databind.ObjectMapper objectMapper
        JSON object mapper.
      • managerId

        @Nullable
        @NotEmpty
        private String managerId
        Manager ID to operate on.
      • key

        @Nullable
        @NotEmpty
        private String key
        Account key to operate on.
      • lockoutManager

        @Nullable
        private net.shibboleth.idp.authn.AccountLockoutManager lockoutManager
        AccountLockoutManager to operate on.
    • Constructor Detail

      • DoLockoutManagerOperation

        public DoLockoutManagerOperation()
    • Method Detail

      • setObjectMapper

        public void setObjectMapper​(@Nonnull
                                    com.fasterxml.jackson.databind.ObjectMapper mapper)
        Set the JSON ObjectMapper to use for serialization.
        Parameters:
        mapper - object mapper
      • doInitialize

        protected void doInitialize()
                             throws net.shibboleth.utilities.java.support.component.ComponentInitializationException
        Overrides:
        doInitialize in class net.shibboleth.utilities.java.support.component.AbstractInitializableComponent
        Throws:
        net.shibboleth.utilities.java.support.component.ComponentInitializationException
      • doPreExecute

        protected boolean doPreExecute​(org.opensaml.profile.context.ProfileRequestContext profileRequestContext)
        Overrides:
        doPreExecute in class org.opensaml.profile.action.AbstractConditionalProfileAction
      • doExecute

        protected void doExecute​(org.opensaml.profile.context.ProfileRequestContext profileRequestContext)
        Overrides:
        doExecute in class org.opensaml.profile.action.AbstractProfileAction
      • getLockoutManager

        @Nullable
        private net.shibboleth.idp.authn.AccountLockoutManager getLockoutManager​(@Nonnull
                                                                                 RequestContext requestContext)
        Helper method to get the manager bean to operate on.
        Parameters:
        requestContext - current SWF request context
        Returns:
        lockout manager or null
      • sendError

        private void sendError​(int status,
                               @Nonnull @NotEmpty
                               String title,
                               @Nonnull @NotEmpty
                               String detail)
                        throws IOException
        Output an error object.
        Parameters:
        status - HTTP status
        title - fixed error description
        detail - human-readable error description
        Throws:
        IOException - if unable to output the error