Skip to main content

This content has been archived and is no longer being updated. Links may not function; however, this content may be relevant to outdated versions of the product.

Support Article

REST Service: "Multiple host names in header X-Forwarded-Host"

SA-98417

Summary



Error is generated in the log when some senders invoke REST Service in the Pega application. Service monitoring does not capture this request.


Error Messages



[-XXX.XX.XX.XX:8080-6] [STANDARD] [ ] [DLSales:01.01.01] (fferDecision.DL_Int_FOS.Action) ERROR dluappsit2251|XXX.XX.XX.XXX|Rest|DLSales|v1|decisionb9b9e36c1a5d1be22158df398f2e29b8|A8S71FHDYQMSD5ZSC71WQ8X5YUW4SF4TH  -  
[-XXX.XX.XX.XX:8080-6] [STANDARD] [ ] [ ] (web.impl.WebStandardImpl) ERROR   - XXX.XX.XX.XXX: Unhandled error in ETier invocation 
com.pega.pegarules.pub.context.PRSecurityException: Mutiple host names in header X-Forwarded-Host 
    at com.pega.pegarules.session.external.engineinterface.etier.engine.HttpRequestMapper.getURLfromXFHeaders(HttpRequestMapper.java:625) ~[prenginext.jar:?] 
    at com.pega.pegarules.session.external.engineinterface.etier.engine.HttpRequestMapper.getModifiedData(HttpRequestMapper.java:235) ~[prenginext.jar:?] 
    at com.pega.pegarules.session.external.engineinterface.etier.engine.HttpRequestMapper.buildRequestorDataFromHttpRequest(HttpRequestMapper.java:155) ~[prenginext.jar:?] 
    at com.pega.pegarules.integration.engine.internal.services.http.HTTPService.invoke(HTTPService.java:176) ~[printegrint.jar:?] 
    at com.pega.pegarules.session.internal.engineinterface.etier.impl.EngineImpl._invokeEngine_privact(EngineImpl.java:331) ~[prprivate.jar:?] 
    at com.pega.pegarules.session.internal.engineinterface.etier.impl.EngineImpl.invokeEngine(EngineImpl.java:274) ~[prprivate.jar:?] 
    at com.pega.pegarules.session.internal.engineinterface.etier.impl.EngineImpl.invokeEngine(EngineImpl.java:251) ~[prprivate.jar:?] 
    at com.pega.pegarules.priv.context.JNDIEnvironment.invokeEngineInner(JNDIEnvironment.java:278) ~[prpublic.jar:?] 
    at com.pega.pegarules.priv.context.JNDIEnvironment.invokeEngine(JNDIEnvironment.java:223) ~[prpublic.jar:?] 
    at com.pega.pegarules.web.impl.WebStandardImpl.makeEtierRequest(WebStandardImpl.java:678) ~[prwebj2ee.jar:?] 
    at com.pega.pegarules.web.impl.WebStandardImpl.doPost(WebStandardImpl.java:394) ~[prwebj2ee.jar:?] 
    at sun.reflect.GeneratedMethodAccessor52.invoke(Unknown Source) ~[?:?] 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_141] 
    at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_141] 
    at com.pega.pegarules.internal.bootstrap.PRBootstrap.invokeMethod(PRBootstrap.java:370) ~[prbootstrap-7.3.1-218.jar:7.3.1-218] 
    at
.
.
.
org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:169) ~[jboss-as-web-7.5.7.Final-redhat-3.jar!/:7.5.7.Final-redhat-3] 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:150) ~[jbossweb-7.5.15.Final-redhat-1.jar!/:7.5.15.Final-redhat-1] 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:97) ~[jbossweb-7.5.15.Final-redhat-1.jar!/:7.5.15.Final-redhat-1] 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:102) ~[jbossweb-7.5.15.Final-redhat-1.jar!/:7.5.15.Final-redhat-1] 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:344) ~[jbossweb-7.5.15.Final-redhat-1.jar!/:7.5.15.Final-redhat-1] 
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:854) ~[jbossweb-7.5.15.Final-redhat-1.jar!/:7.5.15.Final-redhat-1] 
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:654) ~[jbossweb-7.5.15.Final-redhat-1.jar!/:7.5.15.Final-redhat-1] 
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:926) ~[jbossweb-7.5.15.Final-redhat-1.jar!/:7.5.15.Final-redhat-1] 
    at java.lang.Thread.run(Thread.java:748) [?:1.8.0_141] 
[egaRULES-MasterAgent] [STANDARD] [ ] [ ] (internal.async.Agent) INFO    - System date: Total memory: 8,500,805,632 Free memory: 4,946,699,696 Requestor Count: 20 Shared Pages memory usage: 0% Current number of threads: 212 
[-XXX.XX.XX.XX:8080-6] [TABTHREAD4] [ ] [VGSFW_IG:03.01.01] (pages.DeclarativePageUtilsImpl) WARN  fargo|XXX.XX.X.XXX iglinka - Required parameter'ServiceType' for data page 'D_ServiceMethods' cannot be blank. 
[XXX.XX.XX.XX:8080-13] [STANDARD] [ ] [DLSales:01.01.01] (fferDecision.DL_Int_FOS.Action) ERROR dluappsit2251|127.0.0.1|Rest|DLSales|v1|decisionb9b9e36c1a5d1be22158df398f2e29b8|A8S71FHDYQMSD5ZSC71WQ8X5YUW4SF4TH  -



Steps to Reproduce

  1. Create a REST Service in the Pega application.
  2. Invoke the Pega application through a router application and Apache.


Root Cause



A defect or configuration issue in the operating environment.
Multiple host names were present in the X-Forwarded-Host header.



Resolution

  1. Apply HFix-58309.
  2. Use the below logger:

    com.pega.pegarules.session.external.engineinterface.etier.engine.HttpRequestMapper
Suggest Edit

Published January 20, 2020 - Updated October 8, 2020

Did you find this content helpful? Yes No

Have a question? Get answers now.

Visit the Collaboration Center to ask questions, engage in discussions, share ideas, and help others.

We'd prefer it if you saw us at our best.

Pega Community has detected you are using a browser which may prevent you from experiencing the site as intended. To improve your experience, please update your browser.

Close Deprecation Notice
Contact us