Issue
The current (rSmart hosted) disaster recovery cloud environment does not have an LDAP implementation and imports certain personal information from a UConn provided LDAP extraction. It is necessary for Rice/KFS to be environmentally aware enough to bypass any specific LDAP queries in the disaster recovery cloud.
Solution
The relatively simple solution
- add a parameter to the rice-config.xml and kfs/security.properties file indicating if the application is running in a disaster recovery environment
rice-config.xml
<!-- Set to true if this is a disaster recovery cloud environment --> <param name="dr.cloud.environment">false</param>
kfs/security.properties
# Set to true if this is a disaster recovery cloud environment dr.cloud.environment=false
2. Include a check in the edu.uconn.kuali.rice.kns.web.struts.action.UConnKualiPortalAction class
. . . boolean drEnv = KNSServiceLocator.getKualiConfigurationService().getPropertyAsBoolean(UConnRiceConstants.DR_CLOUD_ENV); . . if (!drEnv) { if (this.isAuthroized(netId)) { if ((env != null) && (prd != null) && ((appCode != null))) { if (!env.equalsIgnoreCase(prd)) { backdoorRestriction = isBackdoorRestricted(userId, principalId, appCode); } } } else { forward = "notAuthorized"; } }
If the parameter is not included in the configuration files the KNSServiceLocator.getKualiConfigurationService().getPropertyAsBoolean returns false so it is necessary to include the correctly valued parameter in the files we send to the disaster recovery provider.