/ldap/src/main/java/org/kuali/rice/kim/service/impl/LdapIdentityDelegateServiceImpl.java

https://github.com/sbower/kuali-rice-1 · Java · 196 lines · 138 code · 27 blank · 31 comment · 34 complexity · a483eb5ec8e56c53a64a150607fa9b65 MD5 · raw file

  1. /*
  2. * Copyright 2010 The Kuali Foundation
  3. *
  4. * Licensed under the Educational Community 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.opensource.org/licenses/ecl2.php
  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. package org.kuali.rice.kim.service.impl;
  17. import java.util.Collections;
  18. import java.util.List;
  19. import java.util.Map;
  20. import org.apache.commons.collections.CollectionUtils;
  21. import org.apache.commons.lang.StringUtils;
  22. import org.kuali.rice.core.api.exception.RiceIllegalArgumentException;
  23. import org.kuali.rice.kim.api.identity.entity.Entity;
  24. import org.kuali.rice.kim.api.identity.entity.EntityDefault;
  25. import org.kuali.rice.kim.api.identity.principal.EntityNamePrincipalName;
  26. import org.kuali.rice.kim.api.identity.principal.Principal;
  27. import org.kuali.rice.kim.api.identity.privacy.EntityPrivacyPreferences;
  28. import org.kuali.rice.kim.api.identity.IdentityService;
  29. import org.kuali.rice.kim.impl.identity.IdentityServiceImpl;
  30. import org.kuali.rice.kim.dao.LdapPrincipalDao;
  31. /**
  32. * Implementation of {@link IdentityService} that communicates with and serves information
  33. * from the UA Enterprise Directory Service.
  34. *
  35. *
  36. * @author Kuali Rice Team (rice.collab@kuali.org)
  37. */
  38. public class LdapIdentityDelegateServiceImpl extends IdentityServiceImpl {
  39. private LdapPrincipalDao principalDao;
  40. @Override
  41. public Entity getEntity(String entityId) {
  42. if (StringUtils.isBlank(entityId)) {
  43. throw new RiceIllegalArgumentException("entityId is blank");
  44. }
  45. Entity edsInfo = getPrincipalDao().getEntity(entityId);
  46. if (edsInfo != null) {
  47. return edsInfo;
  48. } else {
  49. return super.getEntity(entityId);
  50. }
  51. }
  52. /**
  53. * Overridden to populate this information from the LdapPrincipalDao
  54. */
  55. @Override
  56. public Entity getEntityByPrincipalId(String principalId) {
  57. if (StringUtils.isBlank(principalId)) {
  58. throw new RiceIllegalArgumentException("principalId is blank");
  59. }
  60. Entity edsInfo = getPrincipalDao().getEntityByPrincipalId(principalId);
  61. if (edsInfo != null) {
  62. return edsInfo;
  63. } else {
  64. return super.getEntityByPrincipalId(principalId);
  65. }
  66. }
  67. @Override
  68. public Entity getEntityByPrincipalName(String principalName) {
  69. if (StringUtils.isBlank(principalName)) {
  70. throw new RiceIllegalArgumentException("principalName is blank");
  71. }
  72. final Entity edsInfo = getPrincipalDao().getEntityByPrincipalName(principalName);
  73. if (edsInfo != null) {
  74. return edsInfo;
  75. } else {
  76. return super.getEntityByPrincipalName(principalName);
  77. }
  78. }
  79. @Override
  80. public EntityDefault getEntityDefault(String entityId) {
  81. if (StringUtils.isBlank(entityId)) {
  82. throw new RiceIllegalArgumentException("entityId is blank");
  83. }
  84. EntityDefault edsInfo = getPrincipalDao().getEntityDefault(entityId);
  85. if (edsInfo != null) {
  86. return edsInfo;
  87. }
  88. else {
  89. return super.getEntityDefault(entityId);
  90. }
  91. }
  92. @Override
  93. public EntityDefault getEntityDefaultByPrincipalId(String principalId) {
  94. if (StringUtils.isBlank(principalId)) {
  95. throw new RiceIllegalArgumentException("principalId is blank");
  96. }
  97. final EntityDefault retval = getPrincipalDao().getEntityDefaultByPrincipalId(principalId);
  98. if (retval != null) {
  99. return retval;
  100. }
  101. else {
  102. return super.getEntityDefaultByPrincipalId(principalId);
  103. }
  104. }
  105. @Override
  106. public EntityDefault getEntityDefaultByPrincipalName(String principalName) {
  107. if (StringUtils.isBlank(principalName)) {
  108. throw new RiceIllegalArgumentException("principalName is blank");
  109. }
  110. final EntityDefault retval = getPrincipalDao().getEntityDefaultByPrincipalName(principalName);
  111. if (retval != null) {
  112. return retval;
  113. }
  114. else {
  115. return super.getEntityDefaultByPrincipalName(principalName);
  116. }
  117. }
  118. /**
  119. * Password lookups not supported by EDS. Use Natural Authentication strategies instead
  120. * of this if that's what you need.
  121. *
  122. */
  123. @Override
  124. @Deprecated
  125. public Principal getPrincipalByPrincipalNameAndPassword(String principalName, String password) {
  126. if (StringUtils.isBlank(principalName)) {
  127. throw new RiceIllegalArgumentException("principalName is blank");
  128. }
  129. //not validating password
  130. return getPrincipalByPrincipalName(principalName);
  131. }
  132. @Override
  133. public EntityPrivacyPreferences getEntityPrivacyPreferences(String entityId) {
  134. if (StringUtils.isBlank(entityId)) {
  135. throw new RiceIllegalArgumentException("entityId is blank");
  136. }
  137. return getPrincipalDao().getEntityPrivacyPreferences(entityId);
  138. }
  139. @Override
  140. public Principal getPrincipal(String principalId) {
  141. if (StringUtils.isBlank(principalId)) {
  142. throw new RiceIllegalArgumentException("principalId is blank");
  143. }
  144. final Principal edsInfo = getPrincipalDao().getPrincipal(principalId);
  145. if (edsInfo != null) {
  146. return edsInfo;
  147. } else {
  148. return super.getPrincipal(principalId);
  149. }
  150. }
  151. @Override
  152. public Principal getPrincipalByPrincipalName(String principalName) {
  153. if (StringUtils.isBlank(principalName)) {
  154. throw new RiceIllegalArgumentException("principalName is blank");
  155. }
  156. final Principal edsInfo = getPrincipalDao().getPrincipalByName(principalName);
  157. if (edsInfo != null) {
  158. return edsInfo;
  159. } else {
  160. return super.getPrincipalByPrincipalName(principalName);
  161. }
  162. }
  163. public void setPrincipalDao(LdapPrincipalDao principalDao) {
  164. this.principalDao = principalDao;
  165. }
  166. public LdapPrincipalDao getPrincipalDao() {
  167. return principalDao;
  168. }
  169. }