1 /* 2 * Copyright 2008 University Corporation for Advanced Internet Development, Inc. 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 package edu.internet2.middleware.shibboleth.idp.config.profile.authn; 18 19 import java.util.List; 20 21 import edu.internet2.middleware.shibboleth.idp.authn.provider.IPAddressLoginHandler; 22 23 /** 24 * Spring factory for {@link IPAddressLoginHandler}. 25 */ 26 public class IPAddressLoginHandlerFactoryBean extends AbstractLoginHandlerFactoryBean { 27 28 /** The list of denied or permitted IPs. */ 29 private List<String> addresses; 30 31 /** The username to use for IP-address "authenticated" users. */ 32 private String username; 33 34 /** Are the IPs in ipList a permitted list or a deny list. */ 35 private boolean defaultDeny; 36 37 /** {@inheritDoc} */ 38 protected Object createInstance() throws Exception { 39 IPAddressLoginHandler handler = new IPAddressLoginHandler(); 40 handler.setUsername(getUsername()); 41 handler.setEntries(getAddresses(), isDefaultDeny()); 42 populateHandler(handler); 43 return handler; 44 } 45 46 /** {@inheritDoc} */ 47 public Class getObjectType() { 48 return IPAddressLoginHandler.class; 49 } 50 51 /** 52 * Get the list of denied or permitted IPs. 53 * 54 * @return list of denied or permitted IPs 55 */ 56 public List<String> getAddresses() { 57 return addresses; 58 } 59 60 /** 61 * Set the list of denied or permitted IPs. 62 * 63 * @param newAddresses list of denied or permitted IPs 64 */ 65 public void setAddresses(List<String> newAddresses) { 66 addresses = newAddresses; 67 } 68 69 /** 70 * Get the username to use for IP-address "authenticated" users. 71 * 72 * @return username to use for IP-address "authenticated" users 73 */ 74 public String getUsername() { 75 return username; 76 } 77 78 /** 79 * Set the username to use for IP-address "authenticated" users. 80 * 81 * @param newUsername username to use for IP-address "authenticated" users 82 */ 83 public void setUsername(String newUsername) { 84 username = newUsername; 85 } 86 87 /** 88 * Get whether the IPs in ipList a permitted list or a deny list. 89 * 90 * @return whether the IPs in ipList a permitted list or a deny list 91 */ 92 public boolean isDefaultDeny() { 93 return defaultDeny; 94 } 95 96 /** 97 * Set whether the IPs in ipList a permitted list or a deny list. 98 * 99 * @param newDefaultDeny whether the IPs in ipList a permitted list or a deny list. 100 */ 101 public void setDefaultDeny(boolean newDefaultDeny) { 102 defaultDeny = newDefaultDeny; 103 } 104 105 }