More fixes to take care of the issue of authenticating users which exist
in containers with names that contain reserved XML characters.
This commit is contained in:
		| @@ -145,7 +145,7 @@ CLASSES = $(addprefix $(BUILDDIR)/, $(JAVAFILES:%.java=%.class)) | |||||||
|  |  | ||||||
| XMLSEC_LIBS = $(XMLSEC_JARS_DIR)/xmlsec-1.4.0.jar | XMLSEC_LIBS = $(XMLSEC_JARS_DIR)/xmlsec-1.4.0.jar | ||||||
|  |  | ||||||
| LIBS = /usr/share/java/servletapi5.jar:/usr/share/java/xerces-j2.jar:/usr/share/java/log4j.jar | LIBS = /usr/share/java/servletapi5.jar:/usr/share/java/xerces-j2.jar:/usr/share/java/log4j.jar:/usr/share/java/jakarta-commons-lang.jar | ||||||
| if LIB64 | if LIB64 | ||||||
| CASA_JAR = /usr/lib64/miCASA.jar | CASA_JAR = /usr/lib64/miCASA.jar | ||||||
| else | else | ||||||
|   | |||||||
| @@ -336,9 +336,6 @@ public final class CasaIdentityToken implements IdentityToken | |||||||
|                // Verify that we are processing the expected tag |                // Verify that we are processing the expected tag | ||||||
|                if (idElementName.equalsIgnoreCase(qName)) |                if (idElementName.equalsIgnoreCase(qName)) | ||||||
|                { |                { | ||||||
|                   // Un-escape the identity id |  | ||||||
|                   m_casaIdentToken.m_identityId = StringEscapeUtils.unescapeXml(m_casaIdentToken.m_identityId); |  | ||||||
|  |  | ||||||
|                   // Advance to the next state |                   // Advance to the next state | ||||||
|                   m_state = AWAITING_SOURCE_NAME_ELEMENT_START; |                   m_state = AWAITING_SOURCE_NAME_ELEMENT_START; | ||||||
|                } |                } | ||||||
| @@ -406,40 +403,6 @@ public final class CasaIdentityToken implements IdentityToken | |||||||
|                break; |                break; | ||||||
|  |  | ||||||
|             case AWAITING_ATTRIBUTE_END: |             case AWAITING_ATTRIBUTE_END: | ||||||
|  |  | ||||||
|                // If necessary, un-escape the attribute data. |  | ||||||
|                if (!m_encryptedAttrs) |  | ||||||
|                { |  | ||||||
|                   Attribute attrib = m_casaIdentToken.m_attributes.remove(m_currAttribute); |  | ||||||
|                   if (attrib != null) |  | ||||||
|                   { |  | ||||||
|                      try |  | ||||||
|                      { |  | ||||||
|                         String attribData = (String) attrib.get(); |  | ||||||
|                         if (attribData != null) |  | ||||||
|                         { |  | ||||||
|                            m_casaIdentToken.m_attributes.put(m_currAttribute, |  | ||||||
|                                                              StringEscapeUtils.unescapeXml(attribData)); |  | ||||||
|                         } |  | ||||||
|                         else |  | ||||||
|                         { |  | ||||||
|                            m_log.error("SAXHandler.endElement()- Attribute data not found"); |  | ||||||
|                            throw new SAXException("Attribute data not found"); |  | ||||||
|                         } |  | ||||||
|                      } |  | ||||||
|                      catch (NamingException e) |  | ||||||
|                      { |  | ||||||
|                         m_log.error("SAXHandler.endElement()- Attribute data not found"); |  | ||||||
|                         throw new SAXException("Attribute data not found", e); |  | ||||||
|                      } |  | ||||||
|                   } |  | ||||||
|                   else |  | ||||||
|                   { |  | ||||||
|                      m_log.error("SAXHandler.endElement()- Attribute not found"); |  | ||||||
|                      throw new SAXException("Attribute not found"); |  | ||||||
|                   } |  | ||||||
|                } |  | ||||||
|  |  | ||||||
|                // Advance to the next state |                // Advance to the next state | ||||||
|                m_state = AWAITING_ATTRIBUTE_START; |                m_state = AWAITING_ATTRIBUTE_START; | ||||||
|                break; |                break; | ||||||
| @@ -511,7 +474,6 @@ public final class CasaIdentityToken implements IdentityToken | |||||||
|          // Proceed based on our state |          // Proceed based on our state | ||||||
|          switch (m_state) |          switch (m_state) | ||||||
|          { |          { | ||||||
|  |  | ||||||
|             case AWAITING_ID_DATA: |             case AWAITING_ID_DATA: | ||||||
|                // Consume the data |                // Consume the data | ||||||
|                m_casaIdentToken.m_identityId = new String(ch, start, length); |                m_casaIdentToken.m_identityId = new String(ch, start, length); | ||||||
| @@ -520,6 +482,11 @@ public final class CasaIdentityToken implements IdentityToken | |||||||
|                m_state = AWAITING_ID_ELEMENT_END; |                m_state = AWAITING_ID_ELEMENT_END; | ||||||
|                break; |                break; | ||||||
|  |  | ||||||
|  |             case AWAITING_ID_ELEMENT_END: | ||||||
|  |                // Consume the data | ||||||
|  |                m_casaIdentToken.m_identityId = m_casaIdentToken.m_identityId.concat(new String(ch, start, length)); | ||||||
|  |                break; | ||||||
|  |  | ||||||
|             case AWAITING_SOURCE_NAME_DATA: |             case AWAITING_SOURCE_NAME_DATA: | ||||||
|                // Consume the data |                // Consume the data | ||||||
|                m_casaIdentToken.m_sourceName = new String(ch, start, length); |                m_casaIdentToken.m_sourceName = new String(ch, start, length); | ||||||
| @@ -528,6 +495,11 @@ public final class CasaIdentityToken implements IdentityToken | |||||||
|                m_state = AWAITING_SOURCE_NAME_ELEMENT_END; |                m_state = AWAITING_SOURCE_NAME_ELEMENT_END; | ||||||
|                break; |                break; | ||||||
|  |  | ||||||
|  |             case AWAITING_SOURCE_NAME_ELEMENT_END: | ||||||
|  |                // Consume the data | ||||||
|  |                m_casaIdentToken.m_sourceName = m_casaIdentToken.m_sourceName.concat(new String(ch, start, length)); | ||||||
|  |                break; | ||||||
|  |  | ||||||
|             case AWAITING_SOURCE_URL_DATA: |             case AWAITING_SOURCE_URL_DATA: | ||||||
|                // Consume the data |                // Consume the data | ||||||
|                m_casaIdentToken.m_sourceUrl = new String(ch, start, length); |                m_casaIdentToken.m_sourceUrl = new String(ch, start, length); | ||||||
| @@ -536,6 +508,11 @@ public final class CasaIdentityToken implements IdentityToken | |||||||
|                m_state = AWAITING_SOURCE_URL_ELEMENT_END; |                m_state = AWAITING_SOURCE_URL_ELEMENT_END; | ||||||
|                break; |                break; | ||||||
|  |  | ||||||
|  |             case AWAITING_SOURCE_URL_ELEMENT_END: | ||||||
|  |                // Consume the data | ||||||
|  |                m_casaIdentToken.m_sourceUrl = m_casaIdentToken.m_sourceUrl.concat(new String(ch, start, length)); | ||||||
|  |                break; | ||||||
|  |  | ||||||
|             case AWAITING_TARGET_SERVICE_DATA: |             case AWAITING_TARGET_SERVICE_DATA: | ||||||
|                // Consume the data |                // Consume the data | ||||||
|                m_casaIdentToken.m_service = new String(ch, start, length); |                m_casaIdentToken.m_service = new String(ch, start, length); | ||||||
| @@ -544,6 +521,11 @@ public final class CasaIdentityToken implements IdentityToken | |||||||
|                m_state = AWAITING_TARGET_SERVICE_ELEMENT_END; |                m_state = AWAITING_TARGET_SERVICE_ELEMENT_END; | ||||||
|                break; |                break; | ||||||
|  |  | ||||||
|  |             case AWAITING_TARGET_SERVICE_ELEMENT_END: | ||||||
|  |                // Consume the data | ||||||
|  |                m_casaIdentToken.m_service = m_casaIdentToken.m_service.concat(new String(ch, start, length)); | ||||||
|  |                break; | ||||||
|  |  | ||||||
|             case AWAITING_TARGET_HOST_DATA: |             case AWAITING_TARGET_HOST_DATA: | ||||||
|                // Consume the data |                // Consume the data | ||||||
|                m_casaIdentToken.m_host = new String(ch, start, length); |                m_casaIdentToken.m_host = new String(ch, start, length); | ||||||
| @@ -560,6 +542,11 @@ public final class CasaIdentityToken implements IdentityToken | |||||||
|                m_state = AWAITING_TARGET_HOST_ELEMENT_END; |                m_state = AWAITING_TARGET_HOST_ELEMENT_END; | ||||||
|                break; |                break; | ||||||
|  |  | ||||||
|  |             case AWAITING_TARGET_HOST_ELEMENT_END: | ||||||
|  |                // Consume the data | ||||||
|  |                m_casaIdentToken.m_host = m_casaIdentToken.m_host.concat(new String(ch, start, length)); | ||||||
|  |                break; | ||||||
|  |  | ||||||
|             case AWAITING_ATTRIBUTE_DATA: |             case AWAITING_ATTRIBUTE_DATA: | ||||||
|                // Consume the data |                // Consume the data | ||||||
|                // |                // | ||||||
|   | |||||||
| @@ -54,4 +54,4 @@ server.loader=${catalina.home}/server/classes,${catalina.home}/server/lib/*.jar | |||||||
| #     "foo/*.jar": Add all the JARs of the specified folder as class  | #     "foo/*.jar": Add all the JARs of the specified folder as class  | ||||||
| #                  repositories | #                  repositories | ||||||
| #     "foo/bar.jar": Add bar.jar as a class repository  | #     "foo/bar.jar": Add bar.jar as a class repository  | ||||||
| shared.loader=${catalina.base}/shared/classes,${catalina.base}/shared/lib/*.jar,/usr/share/java/identity-abstraction/*.jar,/usr/share/java/CASA/*.jar | shared.loader=${catalina.base}/shared/classes,${catalina.base}/shared/lib/*.jar,/usr/share/java/identity-abstraction/*.jar,/usr/share/java/CASA/*.jar,/usr/share/java/*.jar | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user