mirror of
https://github.com/gyurix1968/guacamole-client.git
synced 2025-09-09 14:41:21 +00:00
GUACAMOLE-197: Working RADIUS Authentication, including dealing with Challenge/Response (e.g. 2/Multi-Factor)
This commit is contained in:
committed by
Nick Couchman
parent
dbb62ded77
commit
3e994021da
@@ -27,8 +27,13 @@ angular.module('guacRadius').config(['formServiceProvider',
|
||||
// Define field for the challenge from the RADIUS service
|
||||
formServiceProvider.registerFieldType('GUAC_RADIUS_CHALLENGE_RESPONSE', {
|
||||
module : 'guacRadius',
|
||||
controller : 'guacRadiusController',
|
||||
templateUrl : 'app/ext/radius/templates/radiusChallengeResponseField.html'
|
||||
controller : 'radiusResponseController',
|
||||
templateUrl : 'app/ext/radius/templates/radiusResponseField.html'
|
||||
});
|
||||
formServiceProvider.registerFieldType('GUAC_RADIUS_STATE', {
|
||||
module : 'guacRadius',
|
||||
controller : 'radiusStateController',
|
||||
template : '<input type=hidden ng-model="model" />'
|
||||
});
|
||||
|
||||
}]);
|
||||
|
@@ -22,22 +22,15 @@
|
||||
* API to prompt the user for additional credentials, ultimately receiving a
|
||||
* signed response from the Duo service.
|
||||
*/
|
||||
angular.module('guacRadius').controller('guacRadiusController', ['$scope', '$element',
|
||||
function guacRadiusController($scope, $element) {
|
||||
console.log("In guacRadiusController() method.");
|
||||
angular.module('guacRadius').controller('radiusResponseController', ['$scope', '$element',
|
||||
function radiusResponseController($scope, $element) {
|
||||
console.log("In radiusResponseController() method.");
|
||||
|
||||
// Find the area to display the challenge message
|
||||
var radiusChallenge = $element.find(document.querySelector('#radius-challenge-text'));
|
||||
|
||||
// Find the hidden input to put the state in
|
||||
var radiusState = $element.find(document.querySelector('#radius-state'));
|
||||
|
||||
// Populate the reply message field
|
||||
console.log("RADIUS Reply Message: " + $scope.field.replyMsg);
|
||||
radiusChellenge.html($scope.field.replyMsg);
|
||||
|
||||
// Populate the input area for the connection state
|
||||
console.log("RADIUS State: " + scope.field.radiusState);
|
||||
radiusState.value = $scope.field.radiusState;
|
||||
radiusChallenge.html($scope.field.replyMsg);
|
||||
|
||||
}]);
|
@@ -0,0 +1,33 @@
|
||||
/*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Controller for the "GUAC_RADIUS_CHALLENGE_RESPONSE" field which uses the DuoWeb
|
||||
* API to prompt the user for additional credentials, ultimately receiving a
|
||||
* signed response from the Duo service.
|
||||
*/
|
||||
angular.module('guacRadius').controller('radiusStateController', ['$scope', '$element',
|
||||
function radiusStateController($scope, $element) {
|
||||
console.log("In radiusStateController() method.");
|
||||
|
||||
// Populate the input area for the connection state
|
||||
console.log("RADIUS State: " + $scope.field.radiusState);
|
||||
$scope.model = $scope.field.radiusState;
|
||||
|
||||
}]);
|
@@ -1,9 +0,0 @@
|
||||
<div class="radius-challenge-response-field-container">
|
||||
<div id="radius-challenge-text" />
|
||||
<div class="password-field">
|
||||
<input type="{{passwordInputType}}" ng-model="model" ng-trim="false" autocorrect="off" autocapitalize="off"/>
|
||||
<div class="icon toggle-password" ng-click="togglePassword()" title="{{getTogglePasswordHelpText() | translate}}"></div>
|
||||
</div>
|
||||
<input type="hidden" id="radius-challenge-state" />
|
||||
<input type="submit" />
|
||||
</div>
|
@@ -0,0 +1,5 @@
|
||||
<div id="radius-challenge-text" />
|
||||
<div class="password-field">
|
||||
<input type="{{passwordInputType}}" ng-model="model" ng-trim="false" autocorrect="off" autocapitalize="off"/>
|
||||
<div class="icon toggle-password" ng-click="togglePassword()" title="{{getTogglePasswordHelpText() | translate}}"></div>
|
||||
</div>
|
Reference in New Issue
Block a user