#* The server renders this HTML page in an end-user's browser when an SSO request fails locally but no SSO error landing page is specified. Except for $errorText, Velocity variables (identified by the $ character) are generated at runtime by the server. $errorText is specified in the "Default URL" screen of the Admin console. The following variables are available on this page, but not used by default: $utils - The utility method to display JSON String arrays $escape - The utility class that can be used to escape String variables $HttpServletResponse - The details of HTTP response $HttpServletRequest - The details of HTTP request $TrackingId - The user's session tracking ID $TransactionId - The unique ID for the SSO or SLO transaction. $PingFedBaseURL - The URL containing full hostname and port on which the PingFederate deployment runs on $CurrentPingFedBaseURL - The base URL used in the current request. This URL may differ from $PingFedBaseURL when using a virtual host name $locale - The user's country and language $templateMessages - The set of messages that is used to localize messages based on the user's locale $entityId - The entity ID (connection ID) of the SP Connection used in this SSO transaction $connectionID - The connection ID (entity ID) of the SP Connection used in this SSO transaction $adapterId - The IdP Adapter ID used in this transaction $responseXML - The XML response from the HTTP request $extendedProperties - The extended properties defined on the connection $error - The error code $errorDetail - The message containing details of the error $errorText - The error text specified under “IdP Default URL” page of the Admin console $exceptionMessage - The exception message. This is only populated if no $errorDetail is available $fullStackTrace - The full stack trace of the exception Change text or formatting as needed. Modifying Velocity statements is not recommended as it may interfere with expected server behavior. It is recommended to sanitize the values that are displayed using $escape.escape(), for example $escape.escape($client_id). *# #set( $messageKeyPrefix = "idp.sso.error.page.template." )
$templateMessages.getMessage($messageKeyPrefix, "title")
#if($exceptionMessage)
$escape.escape($exceptionMessage)
#end
$escape.escape($errorDetail)
$escape.escape($errorText)
$templateMessages.getMessage($messageKeyPrefix, "adapterIdTitle"): $escape.escape($adapterId)
## Uncomment below to display additional dynamic content to user: #*
$templateMessages.getMessage($messageKeyPrefix, "partner"): $escape.escape($connectionID)
$templateMessages.getMessage("global.trackingId"): $TrackingId
*#
## Uncomment below to display additional dynamic content to user: #*
$templateMessages.getMessage("global.fullStackTraceTitle")

    $fullStackTrace

$templateMessages.getMessage("global.xmlResponse")

    $escape.escape($responseXml.toString())

*#