1 28 package net.sf.jguard.core.authentication.configuration; 29 30 31 import java.security.AccessController ; 32 import java.util.ArrayList ; 33 import java.util.Arrays ; 34 import java.util.Collection ; 35 import java.util.HashMap ; 36 import java.util.Iterator ; 37 import java.util.List ; 38 import java.util.Map ; 39 import java.util.logging.Level ; 40 import java.util.logging.Logger ; 41 42 import javax.security.auth.AuthPermission ; 43 import javax.security.auth.login.AppConfigurationEntry ; 44 import javax.security.auth.login.Configuration ; 45 46 53 public final class JGuardConfiguration extends Configuration { 54 55 private Collection internalConfigs = null; 56 private Map appConfigurations = null; 57 private static Logger logger = Logger.getLogger(JGuardConfiguration.class.getName()); 58 61 public JGuardConfiguration() { 62 super(); 63 logger.finest("##### JGuardConfiguration #####"); 64 65 internalConfigs = new ArrayList (); 66 appConfigurations = new HashMap (); 67 68 } 69 70 74 public void refresh() { 75 AccessController.checkPermission(new AuthPermission ("refreshLoginConfiguration")); 76 77 if(internalConfigs.size()>0){ 78 Iterator itConfigs = internalConfigs.iterator(); 79 while(itConfigs.hasNext()){ 80 Configuration tempConfig = (Configuration ) itConfigs.next(); 81 tempConfig.refresh(); 82 } 83 } 84 85 } 86 87 93 public AppConfigurationEntry [] getAppConfigurationEntry( 94 String applicationName) { 95 Collection appInternalEntries = new ArrayList (); 96 Iterator itConfigs = internalConfigs.iterator(); 97 while(itConfigs.hasNext()){ 98 Configuration tempConfig = (Configuration ) itConfigs.next(); 99 if (tempConfig == null){ 100 itConfigs.remove(); 101 logger.log(Level.WARNING,"the default Configuration implementation has been removed from the JGuardConfiguration which imported it"); 102 } else if( tempConfig.getAppConfigurationEntry(applicationName)!= null){ 103 appInternalEntries.addAll(Arrays.asList(tempConfig.getAppConfigurationEntry(applicationName))); 104 } 105 } 106 107 List jGuardAppConfigEntries = (List )appConfigurations.get(applicationName); 108 109 if(jGuardAppConfigEntries!=null){ 110 appInternalEntries.addAll(jGuardAppConfigEntries); 111 } 112 if(appInternalEntries.size()>0){ 113 return (AppConfigurationEntry []) appInternalEntries.toArray(new AppConfigurationEntry [appInternalEntries.size()]); 114 } 115 116 return null; 117 118 } 119 120 121 127 public void addConfigEntriesForApplication(String applicationName,List entries) { 128 if(entries == null || entries.size() == 0){ 129 logger.log(Level.WARNING," entries provided are null or empty "); 130 return; 131 } 132 133 List applicationEntries = (List ) appConfigurations.get(applicationName); 134 if(applicationEntries==null){ 135 appConfigurations.put(applicationName,entries); 137 } 138 139 } 143 144 151 public void addConfigEntriesLikeApplication(String applicationName,String applicationTemplateName) { 152 List applicationEntries = (List ) appConfigurations.get(applicationTemplateName); 153 if(applicationEntries== null){ 154 logger.log(Level.SEVERE," there is no applications registered with your applicationName and password "); 155 return; 156 } 157 appConfigurations.put(applicationName,applicationEntries); 158 } 159 160 166 public void addConfigEntriesLikeApplication(String applicationName,String password,String applicationTemplateName) { 167 StringBuffer newApplicationName = new StringBuffer (applicationName) 168 .append('#').append(password); 169 addConfigEntriesLikeApplication(newApplicationName.toString(),applicationTemplateName); 170 } 171 172 176 protected void includeConfiguration(Configuration configuration){ 177 if(!configuration.getClass().getName().equals(JGuardConfiguration.class.getName()) 179 &&!internalConfigs.contains(configuration)){ 180 internalConfigs.add(configuration); 181 } 182 } 183 184 185 193 public void addConfigEntriesForApplication(String applicationName,String password,List entries) { 194 StringBuffer newApplicationName = new StringBuffer (applicationName) 195 .append('#').append(password); 196 addConfigEntriesForApplication(newApplicationName.toString(),entries); 197 } 198 199 200 } 201 | Popular Tags |