View Javadoc

    1   /*
    2    * Licensed to the University Corporation for Advanced Internet Development,
    3    * Inc. (UCAID) under one or more contributor license agreements.  See the
    4    * NOTICE file distributed with this work for additional information regarding
    5    * copyright ownership. The UCAID licenses this file to You under the Apache
    6    * License, Version 2.0 (the "License"); you may not use this file except in
    7    * compliance with the License.  You may obtain a copy of the License at
    8    *
    9    *    http://www.apache.org/licenses/LICENSE-2.0
    10   *
    11   * Unless required by applicable law or agreed to in writing, software
    12   * distributed under the License is distributed on an "AS IS" BASIS,
    13   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14   * See the License for the specific language governing permissions and
    15   * limitations under the License.
    16   */
    17
    18  package edu.internet2.middleware.shibboleth.idp.config.profile.authn;
    19
    20  import java.util.List;
    21
    22  import edu.internet2.middleware.shibboleth.idp.authn.provider.IPAddressLoginHandler;
    23  import edu.internet2.middleware.shibboleth.idp.util.IPRange;
    24
    25  /**
    26   * Spring factory for {@link IPAddressLoginHandler}.
    27   */
    28  public class IPAddressLoginHandlerFactoryBean extends AbstractLoginHandlerFactoryBean {
    29
    30      /** The username to use for IP-address "authenticated" users. */
    31      private String authenticatedUser;
    32
    33      /** List of configured IP ranged. */
    34      private List<IPRange> ipRanges;
    35
    36      /** Whether a user is "authenticated" if their IP address is within a configured IP range. */
    37      private boolean ipInRangeIsAuthenticated;
    38
    39      /** {@inheritDoc} */
    40      public Class getObjectType() {
    41          return IPAddressLoginHandler.class;
    42      }
    43
    44      /**
    45       * @param user The authenticatedUser to set.
    46       */
    47      public void setAuthenticatedUser(String user) {
    48          authenticatedUser = user;
    49      }
    50
    51      /**
    52       * @param ranges The ipRanges to set.
    53       */
    54      public void setIpRanges(List<IPRange> ranges) {
    55          ipRanges = ranges;
    56      }
    57
    58      /**
    59       * @param authenticated The ipInRangeIsAuthenticated to set.
    60       */
    61      public void setIpInRangeIsAuthenticated(boolean authenticated) {
    62          ipInRangeIsAuthenticated = authenticated;
    63      }
    64
    65      /** {@inheritDoc} */
    66      protected Object createInstance() throws Exception {
    67          IPAddressLoginHandler handler = new IPAddressLoginHandler(authenticatedUser, ipRanges, ipInRangeIsAuthenticated);
    68          populateHandler(handler);
    69          return handler;
    70      }
    71  }