VMware Smarts Assurance : EDAA URL unable to pick up notification having "/" in name attribute; 404 Not Found
book
Article ID: 345362
calendar_today
Updated On:
Products
VMwareVMware Smart Assurance
Issue/Introduction
Symptoms: Notification with / in name attribute is not processed by EDAA and throws error 404 - Not found. Example notifications : IF-MI_ELX-NI-IT-Por-SH01/18 [lan1_0] TEMP-VF_GRH-Grohe_PT_VEL_PL_S9300-007-1/1012 [Switch 1 - Inlet Temp Sensor, GREEN ] IF-MI__TMK-COL-NRBSH01/10_Down
Error observed:
Environment
VMware Smart Assurance - SMARTS
Cause
According to RFC 3986, below special characters are reserved as sub-delimiters. reserved = gen-delims / sub-delims gen-delims = ":" / "/" / "?" / "#" / "[" / "]" / "@" sub-delims = "!" / "$" / "&" / "'" / "(" / ")" / "*" / "+" / "," / ";" / "=" Thus tomcat disables encoded slashes for security reasons by default.
In Smarts, post request looks as below: http://localhost:8080/smarts-edaa/msa/servername/instances/className::instanceName/action/action_name Hence when a notification contains "/" in URL; Smarts is expecting it as action.
Resolution
Edit file catalina.properties located under <SAM_BASE>/smarts/tomcat/conf/ and add line: org.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH=true. Restart tomcat for changes to take effect.
Workaround: In case, if restart of tomcat is not possible due to production environment then use ~2F in the URL for "/" for time being. Example: http://localhost:8080/smarts-edaa/msa/INCHARGE-SA/instances/ICS_Notification::NOTIFICATION-Interface_PerformanceCiscoRouter_I-InterfacePerformanceCiscoRouter-IF-MI_ACM-USIBKYLATNY01R0006~2F8_HighUtilization"
Additional Information
Impact/Risks: Unable to create tickets in third party ticking tools (ServiceNow) where Smarts-EDAA acts as source.