| 1 17 18 package org.sape.carbon.services.security.auth.weblogic61; 19 20 import java.security.Principal ; 22 import java.security.acl.Group ; 23 import java.util.Enumeration ; 24 import java.util.Hashtable ; 25 import java.util.Properties ; 26 27 import org.sape.carbon.core.component.Lookup; 28 import org.sape.carbon.services.security.management.UserManager; 29 30 import weblogic.management.configuration.CustomRealmMBean; 31 import weblogic.security.acl.AbstractListableRealm; 32 import weblogic.security.acl.User; 33 import weblogic.server.Server; 34 35 53 public class WeblogicCarbonRealm extends AbstractListableRealm { 54 55 protected static final String CONFIG_LOCATION_NAME = "userManagerPath"; 56 57 58 protected UserManager userManager; 59 60 63 public WeblogicCarbonRealm() { 64 super("WeblogicCarbonRealm"); 65 configure(); 66 } 67 68 72 protected void configure() { 73 CustomRealmMBean customRealmMBean = (CustomRealmMBean) 74 Server.getSecurityConfig().getRealm(). 75 getCachingRealm().getBasicRealm(); 76 77 Properties configData = customRealmMBean.getConfigurationData(); 78 79 String configLocation = configData.getProperty(CONFIG_LOCATION_NAME); 80 81 userManager = 82 (UserManager) Lookup.getInstance().fetchComponent( 83 configLocation); 84 } 85 86 87 100 protected User authUserPassword(String name, String passwd) { 101 WeblogicCarbonUser weblogicCarbonUser = null; 102 103 if (userManager.authenticate(name, passwd)) { 104 weblogicCarbonUser = 105 new WeblogicCarbonUser(userManager.retreiveUser(name), this); 106 } 107 108 return weblogicCarbonUser; 109 } 110 111 121 protected Hashtable getGroupMembersInternal(String name) { 122 Hashtable groupMembers = null; 123 124 Group group = userManager.retreiveGroup(name); 125 if (group != null) { 126 groupMembers = new Hashtable (); 127 Enumeration membersEnumeration = group.members(); 128 while (membersEnumeration.hasMoreElements()) { 129 Principal currentMember = 130 (Principal ) membersEnumeration.nextElement(); 131 132 if (currentMember instanceof Group ) { 133 groupMembers.put(currentMember.getName(), 134 new WeblogicCarbonGroup((Group ) currentMember, this)); 135 } else { 136 groupMembers.put(currentMember.getName(), 137 new WeblogicCarbonUser(currentMember, this)); 138 } 139 } 140 } 141 142 return groupMembers; 143 } 144 145 154 public User getUser(String name) { 155 WeblogicCarbonUser weblogicCarbonUser = null; 156 Principal carbonUser = userManager.retreiveUser(name); 157 if (carbonUser != null) { 158 weblogicCarbonUser = new WeblogicCarbonUser(carbonUser, this); 159 } 160 161 return weblogicCarbonUser; 162 } 163 164 174 public Group getGroup(String name) { 175 WeblogicCarbonGroup weblogicCarbonGroup = null; 176 Group carbonGroup = userManager.retreiveGroup(name); 177 if (carbonGroup != null) { 178 weblogicCarbonGroup = new WeblogicCarbonGroup(carbonGroup, this); 179 } 180 181 return weblogicCarbonGroup; 182 } 183 } | Popular Tags |