From d7218c3e4434f0278cb08594e7c9b6a172131852 Mon Sep 17 00:00:00 2001 From: Nick Couchman Date: Tue, 28 Mar 2017 10:22:14 -0400 Subject: [PATCH] GUACAMOLE-204: Move ticket parameter code out of config and into run block. --- .../src/main/resources/casConfig.js | 22 ---------- .../src/main/resources/casIndexTicket.js | 42 +++++++++++++++++++ .../src/main/resources/guac-manifest.json | 3 +- 3 files changed, 44 insertions(+), 23 deletions(-) create mode 100644 extensions/guacamole-auth-cas/src/main/resources/casIndexTicket.js diff --git a/extensions/guacamole-auth-cas/src/main/resources/casConfig.js b/extensions/guacamole-auth-cas/src/main/resources/casConfig.js index a90530db3..76ee755fe 100644 --- a/extensions/guacamole-auth-cas/src/main/resources/casConfig.js +++ b/extensions/guacamole-auth-cas/src/main/resources/casConfig.js @@ -31,25 +31,3 @@ angular.module('guacCAS').config(['formServiceProvider', }); }]); - -/** - * Config block which augments the existing routing, providing special handling - * for the "ticket=" parameter provided by the CAS authentication process. - */ -angular.module('index').config(['$routeProvider','$windowProvider', - function indexRouteConfig($routeProvider,$windowProvider) { - - var $window = $windowProvider.$get(); - var curPath = $window.location.href; - var ticketPos = curPath.indexOf('?ticket='); - if (ticketPos < 0) - return null; - ticketPos += 8; - var hashPos = curPath.indexOf('#/'); - if (ticketPos < hashPos) { - var ticket = curPath.substring(ticketPos, hashPos); - var newPath = curPath.substring(0,ticketPos - 8) + '#/?ticket=' + ticket; - $window.location.href = newPath; - } - -}]); diff --git a/extensions/guacamole-auth-cas/src/main/resources/casIndexTicket.js b/extensions/guacamole-auth-cas/src/main/resources/casIndexTicket.js new file mode 100644 index 000000000..282ee6536 --- /dev/null +++ b/extensions/guacamole-auth-cas/src/main/resources/casIndexTicket.js @@ -0,0 +1,42 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +/** + * Index module run block that looks for the ticket parameter + * on the current location and moves it to the correct + * place to get processed by the Angular app. + */ +angular.module('index').run(['$injector', + function casIndexTicket($injector) { + + console.log('Running casIndexTicket...'); + var $window = $injector.get('$window'); + var curPath = $window.location.href; + var ticketPos = curPath.indexOf('?ticket='); + if (ticketPos < 0) + return null; + ticketPos += 8; + var hashPos = curPath.indexOf('#/'); + if (ticketPos < hashPos) { + var ticket = curPath.substring(ticketPos, hashPos); + var newPath = curPath.substring(0,ticketPos - 8) + '#/?ticket=' + ticket; + $window.location.href = newPath; + } + +}]); diff --git a/extensions/guacamole-auth-cas/src/main/resources/guac-manifest.json b/extensions/guacamole-auth-cas/src/main/resources/guac-manifest.json index 2561a3262..2c059b838 100644 --- a/extensions/guacamole-auth-cas/src/main/resources/guac-manifest.json +++ b/extensions/guacamole-auth-cas/src/main/resources/guac-manifest.json @@ -12,7 +12,8 @@ "js" : [ "casModule.js", "casController.js", - "casConfig.js" + "casConfig.js", + "casIndexTicket.js" ] }