From c709b384cdb1d720631453589ef918bd3338c463 Mon Sep 17 00:00:00 2001 From: Tim van Dijen <tvdijen@gmail.com> Date: Sat, 11 Aug 2018 13:00:18 +0200 Subject: [PATCH] Further twigify adfs --- modules/adfs/lib/IdP/ADFS.php | 25 +++++++---------------- modules/adfs/templates/postResponse.twig | 16 +++++++++++++++ modules/adfs/www/assets/js/postReponse.js | 3 +++ 3 files changed, 26 insertions(+), 18 deletions(-) create mode 100644 modules/adfs/templates/postResponse.twig create mode 100644 modules/adfs/www/assets/js/postReponse.js diff --git a/modules/adfs/lib/IdP/ADFS.php b/modules/adfs/lib/IdP/ADFS.php index 8187aff89..5ed65c328 100644 --- a/modules/adfs/lib/IdP/ADFS.php +++ b/modules/adfs/lib/IdP/ADFS.php @@ -131,24 +131,13 @@ MSG; private static function postResponse($url, $wresult, $wctx) { - $wresult = htmlspecialchars($wresult); - $wctx = htmlspecialchars($wctx); - - $post = <<<MSG - <body onload="document.forms[0].submit()"> - <form method="post" action="$url"> - <input type="hidden" name="wa" value="wsignin1.0"> - <input type="hidden" name="wresult" value="$wresult"> - <input type="hidden" name="wctx" value="$wctx"> - <noscript> - <input type="submit" value="Continue"> - </noscript> - </form> - </body> -MSG; - - echo $post; - exit; + $config = \SimpleSAML\Configuration::getInstance(); + $t = new \SimpleSAML\XHTML\Template($config, 'adfs:postResponse.twig'); + $t->data['baseurlpath'] = \SimpleSAML\Module::getModuleUrl('adfs'); + $t->data['url'] = $url; + $t->data['wresult'] = $wresult; + $t->data['wctx'] = $wctx; + $t->show(); } public static function sendResponse(array $state) diff --git a/modules/adfs/templates/postResponse.twig b/modules/adfs/templates/postResponse.twig new file mode 100644 index 000000000..857aa8d7a --- /dev/null +++ b/modules/adfs/templates/postResponse.twig @@ -0,0 +1,16 @@ +<!DOCTYPE html> +<html> + <head> + <script src="{{ baseurlpath }}/assets/js/postResponse.js"></script> + </head> + <body> + <form method="post" action="{{ url }}"> + <input type="hidden" name="wa" value="wsignin1.0"> + <input type="hidden" name="wresult" value="{{ wresult|escape('html') }}"> + <input type="hidden" name="wctx" value="{{ wctx|escape('html') }}"> + <noscript> + <input type="submit" value="Continue"> + </noscript> + </form> + </body> +</html> diff --git a/modules/adfs/www/assets/js/postReponse.js b/modules/adfs/www/assets/js/postReponse.js new file mode 100644 index 000000000..a813b92cb --- /dev/null +++ b/modules/adfs/www/assets/js/postReponse.js @@ -0,0 +1,3 @@ +document.addEventListener('DOMContentLoaded', function () { + document.forms[0].submit(); +}); -- GitLab