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 }