1
0
-1

ONAP-1.1.0-STAGING-LATEST

gerrit_branch: master

While access VID through portal found following error

required key [authentication_mechanism] not found


  1. kranthi guttikonda

    From /opt/app/vid/logs/vid/application.log


    2017-07-11 14:56:20,134|||http-apr-8080-exec-6||||ERROR||||||| handleSesionUpdatesNative failed
    java.lang.NumberFormatException: For input string: "<!DOCTYPE html><html ng-app="abs"> <head> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags --> <link rel="stylesheet" type="text/css" href="app/fusion/external/ebz/fn-ebz.css" > <link rel="stylesheet" type="text/css" href="app/fusion/external/ebz/sandbox/styles/demo.css" > <link rel="stylesheet" type="text/css" href="app/fusion/external/ebz/sandbox/styles/base.css" > <link rel="stylesheet" type="text/css" href="app/fusion/external/ebz/sandbox/styles/btn.css" > <link rel="stylesheet" type="text/css" href="app/fusion/external/ebz/sandbox/styles/dtpk.css" > <link rel="stylesheet" type="text/css" href="app/fusion/external/ebz/sandbox/styles/frms.css" > <link rel="stylesheet" type="text/css" href="app/fusion/external/ebz/sandbox/styles/sldr.css" > <link rel="stylesheet" type="text/css" href="app/fusion/external/ebz/sandbox/styles/style.css" > <link rel="stylesheet" type="text/css" href="app/fusion/external/ebz/sandbox/styles/tbs.css" > <link rel="stylesheet" type="text/css" href="app/fusion/external/ebz/ebz_header/portal_ebz_header.css"> </head> <script src="static/js/jquery-1.10.2.js" type="text/javascript"></script> </head> <body class="templatebody" style="opacity: 1; background-color: rgb(242, 242, 242); padding: 0px;"> <div class="applicationWindow"> <div> <link rel="stylesheet" type="text/css" href="app/fusion/external/ebz/ebz_header/header.css"><link rel="stylesheet" type="text/css" href="app/fusion/external/ebz/ebz_header/portal_ebz_header.css"><link rel="stylesheet" type="text/css" href="app/fusion/external/ebz/sandbox/styles/style.css" ><script src= "app/fusion/external/ebz/angular_js/angular.js"></script> <script src= "app/fusion/external/ebz/angular_js/angular-route.min.js"></script><script src= "app/fusion/external/ebz/angular_js/angular-sanitize.js"></script><script src= "app/fusion/external/ebz/angular_js/angular-cookies.js"></script><script src= "app/fusion/external/ebz/angular_js/app.js"></script><script src= "app/fusion/external/ebz/angular_js/gestures.js"></script><script src="static/js/jquery-1.10.2.js"></script><script src="app/fusion/scripts/modalService.js"></script><script src="static/js/jquery.mask.min.js" type="text/javascript"></script><script src="static/js/jquery-ui.js" type="text/javascript"></script><script src="app/fusion/external/ebz/sandbox/att-abs-tpls.js" type="text/javascript"></script><script src="static/fusion/js/att_angular_gridster/ui-gridster-tpls.js"></script><script src="static/fusion/js/att_angular_gridster/angular-gridster.js"></script><script src= "app/fusion/external/ebz/angular_js/checklist-model.js"></script><script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/lodash.js/0.10.0/lodash.min.js"></script><script src="app/fusion/external/angular-ui/ui-bootstrap-tpls-1.1.2.min.js"></script><script src="app/fusion/scripts/services/userInfoService.js"></script><script src="app/fusion/scripts/services/leftMenuService.js"></script> <style>.att-drawer{ z-index:997 !important;}.secondaryMenuContainer{ z-index:1000;}.megamenu-tabs .megamenu__item { padding: 0 0;}.megamenu-tabs .megamenu__item span { font-size: 18px;}.submenu-tabs { line-height:50px;}.submenu-tabs .sub__menu{ top:54px;}.top-megamenu .megamenu-tabs ul{ width:98%; list-style: none;}</style><!-- ================================================================================ eCOMP Portal SDK ================================================================================ Copyright (C) 2017 AT&T Intellectual Property ================================================================================ Licensed 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. ================================================================================ --><script type="text/ng-template" id="loginSnippet.html"> <div style="line-height: normal; right: 167px; min-height: 200px; height: auto; width: auto; " ng-controller="loginSnippetCtrl" ><div id="reg-header-snippet"> <div class="reg-profilePicture" style="min-height: 215px; width: auto; " id="reg-profile-links"> <div id="reg-profileImage"> <div style="clear: both; height: 80px; position: relative; width: 80px;"> <span style=" background-position: -1px -1px; height: 81px;left: 0;position: absolute;top: 0;width: 81px;">&nbsp;</span> </div> </div> <div id="reg-logout-div"> <a class="reg-logout-btn" href="logout.htm">Log Out</a> </div> </div> <div tabindex="0" class="reg-profileDetails" id="reg-profiledetails-id"> <ul class="reg-Details-table" style="list-style: none;"> <li><div class="reg-userName-table"><div id="reg-userName-table-row"><div id="reg-userName-table-cell"><h3 id="reg-userName" ng-bind="userProfile.fullName"></h3><span class="visuallyhidden">.</span></div></div></div></li> <li><div class="reg-userEmail-label"><span class="reg-userEmail-label-spn">EMAIL<span class="visuallyhidden">:</span></span></div></li><li><div class="reg-userEmail-value"><span class="reg-userEmail-value-spn" ng-bind="userProfile.email"><span class="visuallyhidden">.</span></span></div></li> <li><div class="reg-userRole-label"><span class="reg-userRole-label-spn">orgUserId<span class="visuallyhidden">:</span></span></div></li> <li><div class="reg-userRole-value"><span class="reg-userRole-value-spn" ng-bind="userProfile.orgUserId"><span class="visuallyhidden"></span></span></div></li> </ul></div> </div> </div> </script> <script type="text/ng-template" id="chat_box.html"> <div style="width: auto;"> <div style="font-size: 24px; font-family: Omnes-ECOMP-W02, Arial;line-height: 26px;color: #444444;text-align: center;"> <span>Live Chat</span> </div> </div> </script> <script>var loginSnippetCtrl = function ($scope,$http, $log,UserInfoService){ /*Define fields*/ $scope.userProfile={ firstName:'', lastName:'', fullName:'', email:'' } /*Put user info into fields*/ $scope.inputUserInfo = function(userInfo){ if (typeof(userInfo) != "undefined" && userInfo!=null && userInfo!=''){ if (typeof(userInfo.USER_FIRST_NAME) != "undefined" && userInfo.USER_FIRST_NAME!=null && userInfo.USER_FIRST_NAME!='') $scope.userProfile.firstName = userInfo.USER_FIRST_NAME; if (typeof(userInfo.USER_LAST_NAME) != "undefined" && userInfo.USER_LAST_NAME!=null && userInfo.USER_LAST_NAME!='') $scope.userProfile.lastName = userInfo.USER_LAST_NAME; if (typeof(userInfo.USER_EMAIL) != "undefined" && userInfo.USER_EMAIL!=null && userInfo.USER_EMAIL!='') $scope.userProfile.email = userInfo.USER_EMAIL; } } /*getting user info from session*/ $scope.getUserNameFromSession = function(){ UserInfoService.getFunctionalMenuStaticDetailSession() .then(function (response) { var j = response; // console.log(response); $scope.userProfile.fullName = response.userName; $scope.userProfile.email = response.email; }); } /*getting user info from shared context*/ $scope.getUserName=function() { var promise = UserInfoService.getFunctionalMenuStaticDetailShareContext(); promise.then( function(res) { if(res==null || res==''){ $log.info('loginSnippet::getUserName: failed to get user info from shared context'); $scope.getUserNameFromSession(); }else{ // $log.info('Received User information from shared context',res); var resData = res; $scope.inputUserInfo(resData); $scope.userProfile.fullName = $scope.userProfile.firstName+ ' '+ $scope.userProfile.lastName; } }, function(err) { console.log('error'); } ); }; /*call the get user info function*/ try{ $scope.getUserName(); }catch(err){ $log.info('Error while getting User information',err); }} </script><div style="position: relative; z-index: 999;"> <div ng-controller="headerController"> <div class="headerContainer" id="headerContainer" ng-cloak ng-show="{{showHeader}}"> <div id="megaMenuContainer" class="megaMenuContainer" style="margin-top: 0; overflow: visible;"> <div> <!--for mega Menu--> <!-- Mega Menu parent-tab directive with three models menu-items, active-sub-menu, active-menu --> <div id="topMenu" class="top-megamenu" ng-mouseleave="activeClickSubMenu.x.active=false; activeClickMenu.x.active=false"> <div style="float:left;width:100%;"parent-tab menu-items="megaMenuDataObject" active-sub-menu='activeClickSubMenu.x' active-menu='activeClickMenu.x'> <div parentmenu-tabs mega-menu="true" menu-items="megaMenuDataObject" style="height:55px;"> <div style="float:left"> <li class="megamenu__item" style="line-height:55px;" onclick="returnToPortal()"> <img src="app/fusion/external/ebz/images/logo.png" class="logo" ></span>> <strong style="font-weight: 400 !important; font-family: Omnes-ECOMP-W02, Arial !important; font-size: 18px;" id='returnPortal' >ECOMP Portal</strong> </li> <div menu-tabs mega-menu="true" tab-name="item.text" menu-item="item" active-menu="activeClickMenu.x" ng-repeat="item in megaMenuDataObject" style="font-size: 18px;" ng-mousedown="loadFavorites()" > <div parentmenu-tabs sub-menu="true" ng-show="activeClickMenu.x.active && item.active" menu-items="activeClickMenu.x.children"> <!-- Second level menu --> <div> <div menu-tabs sub-menu="true" tab-name="subItem.text" tab-url="subItem.url" menu-item="subItem" ng-repeat="subItem in activeClickMenu.x.children | orderBy : 'column'" active-menu="activeClickSubMenu.x" sub-item-active="{{subItem.active}}" style="float:left;" aria-label="{{subItem.text}}" ng-mouseenter="submenuLevelAction(subItem.text,subItem.column)" ng-mouseleave="submenuLevelAction(subItem.text,subItem.column)" ng-click="submenuLevelAction(subItem.text,subItem.column)" > <i ng-if="subItem.text=='Favorites'" id="favorite-star" class="icon-star favorites-icon-active"> </i> </div> <div class="sub__menu" ng-mouseleave="activeClickSubMenu.x.active=false" > <ul ng-show="activeClickSubMenu.x.active" role="menubar" class="columns"> <!-- Third level menu --> <div menu-tabs menu-item="subItem" class="columns-div" ng-repeat="subItem in activeClickSubMenu.x.children | orderBy : 'column'" ng-show="activeClickSubMenu.x.active"> <i id="favorite-selector-third-level" ng-show="isUrlFavorite(subItem.menuId)==false" class="icon-star favorites-icon-inactive" ng-if="subItem.url.length > 1"> </i> <i id="favorite-selector-third-level" ng-show="isUrlFavorite(subItem.menuId)" class="icon-star favorites-icon-active" ng-if="subItem.url.length > 1"> </i> <span class="title" aria-label="{{subItem.text}}" ng-click="goToUrl(subItem)">{{subItem.text}}</span> <!-- Fourth level menus --> <div att-links-list=""> <i id="favorite-selector-fourth-level" class="icon-star favorites-icon-inactive" ng-show="isUrlFavorite(tabValue.menuId)==false" ng-if="tabValue.url.length > 1"> </i> <i id="favorite-selector-fourth-level" class="icon-star favorites-icon-active" ng-show="isUrlFavorite(tabValue.menuId)" ng-if="tabValue.url.length > 1"> </i> <span role="menuitem" att-links-list-item="" ng-repeat="tabValue in subItem.children" ng-click="goToUrl(tabValue)" att-accessibility-click="13,32" ng-class="{'disabled': tabValue.disabled}">{{tabValue.text}}</span> </div> <hr ng-show="!$last"/> </div> </ul> <!-- Favorites level menu --> <div class="favorites-window" ng-show='favoritesWindow' ng-mouseleave="hideFavoritesWindow()"> <div id="favorites-menu-items" ng-show="showFavorites"> <div ng-repeat="subItem in favoritesMenuItems" att-links-list="" style='display: inline'> <i id="favorite-selector-favorites-list" class="icon-star favorites-icon-active"> </i> <a id="favorites-list" aria-label="{{subItem.text}}" ng-click="goToUrl(subItem)" style="margin-left: 3px; margin-right: 20px; text-decoration: none; color: #666666;"> {{subItem.text}} </a> </div> <div> <br> <p style='font-weight: 400; font-family: Omnes-ECOMP-W02, Arial !important; font-size: 18px; text-align: center; background-color: lightgray; width: 400px; margin-left: 25%; margin-right: 25%;'> Manage favorites on ECOMP Portal. </p> </div> </div> <!-- Favorites when empty --> <div id="favorites-empty" ng-show='favoritesWindow' ng-show="emptyFavorites"> <div id="favorites-empty" ng-show="emptyFavorites" class="favorites-window-empty"> <div> <img src="app/fusion/external/ebz/images/no_favorites_star.png"> <p class='favoritesLargeText'>No Favorites</p> <p class='favoritesNormalText'>Manage favorites on ECOMP Portal.</p> </div> </div> </div> </div> </div> </div> </div> </div > <li class="megamenu__item" style="line-height:55px;" ng-if="loadMenufail"> <strong style="font-weight: 400 !important; font-family: Omnes-ECOMP-W02, Arial !important; font-size: 18px;" >Unable to load menus</strong> </li><!-- <li class="megamenu__item" style="width: 20%;">&nbsp;</li> --> </div><!-- Login Snippet--> <div style="float:right"> <li id="bcLoginSnippet" class="megamenu__item" style="width: 140px;" > <div popover="loginSnippet.html" aria-label="Login Snippet" referby="loginSnippet" att-accessibility-click="13,32" popover-style="\" popover-placement="below" style="width: 200px;"> <div class="icon-user-small login-snippet-icon"></div> <div class="login-snippet-text" style="display: inline-block; font-size:12px; margin-left:5px;overflow: hidden; max-height: 31px; max-width:120px; padding-top: 0px; margin-top: 0px; white-space: nowrap;" ng-bind="userProfile.firstName"></div> </div> </li> <li class="megamenu__item" style="width:120px;">&nbsp;</li> </div> </div> </div> <div style="clear: both"></div> </div> </div> </div> </div> <div class="license-notification" id="license-notification"> <a href="javascript:void(0)" style="background-color:#bbb;" class="button button--small" tooltip="Please contact ECOMP Portal team to get the license" tooltip-placement="below" tooltip-style="light" tooltip-popup-delay="500" > <span style="">{{app_name_full}}</span> </a> </div> <div style="position: relative; color: black; top: 70px;"> <div ng-cloak> <span ng-style="adjustHLeftMenu('burgerIcon')" style="z-index:998; position:fixed; left:0%; font-size:35px; margin-left:10px;text-decoration:none;"> <a ng-click="toggleDrawer();isOpen = !isOpen" href="javascript:void(0);" class="arrow-icon-left" > <span class="icon-hamburger"></span></a> <span ng-init="isOpen = true" ng-show="isOpen" style="font-size:16px; position:relative; top:-8px; left:-15px;">&nbsp&nbsp&nbsp {{app_name}}</span> </span> <div att-drawer drawer-slide="left" drawer-custom-top="{{drawer_custom_top}}px" drawer-size="200px" drawer-open="drawerOpen" drawer-custom-height="100%" > <div ng-style="adjustHLeftMenu('leftMenu')"> <div class="attDrawer" style="margin-top:{{drawer_margin_top}}px;"> <div style="margin-left:10px; margin-right:10px;"> <accordion close-others="true" css="att-accordion--no-box"> <accordion-group ng-repeat="parent in menuItems" heading="{{parent.parentLabel}}" child="{{parent.parentAction}}" parent-link="{{parent.parentAction}}" image-source="{{parent.parentImageSrc}}" child-length="{{parent.childItemList.length}}" is-open="parent.open"> <div ng-repeat="subMenu in parent.childItemList" style="font-size:12px; margin-left:10px;"> <a href="{{subMenu.action}}" style="font-size:12px; color:#666666;" >{{subMenu.label}}</a> </div> </accordion-group> </accordion> </div> </div> </div> </div> </div> </div> </div></div><script> function returnToPortal(){ window.location.href = "http://portal.api.simpledemo.openecomp.org:8989/ECOMPPORTAL/process_csp"; }detectScrollEvent = function() { var footerOff = $('#footerContainer').offset().top; var headOff = $('#headerContainer').offset().top; var winHeight = $(window).height(); if ((footerOff - headOff) <= winHeight) { $('.att-drawer').css({ "height" : footerOff - headOff - 55 }); } else { $('.att-drawer').css({ "height" : "94vh" }); } } $(window).scroll(function() { if ($('.att-drawer').is(':visible')) { detectScrollEvent(); } }); app.controller("headerController", function($scope, $timeout, $log, $http, UserInfoService, $window, $cookies,LeftMenuService) { // $log.debug('HeaderController started'); $scope.jsonMenuData = []; $scope.loadMenufail=false; $scope.app_name = ""; $scope.app_name_full = ""; $scope.megaMenuDataObject =[]; $scope.activeClickSubMenu = { x: '' }; $scope.activeClickMenu = { x: '' }; $scope.favoritesMenuItems = []; $scope.favoriteItemsCount = 0; $scope.showFavorites = false; $scope.emptyFavorites = false; $scope.favoritesWindow = false; $scope.userProfile={ firstName:'', lastName:'', fullName:'', email:'' } /*Put user info into fields*/ $scope.inputUserInfo = function(userInfo){ if (typeof(userInfo) != "undefined" && userInfo!=null && userInfo!=''){ if (typeof(userInfo.USER_FIRST_NAME) != "undefined" && userInfo.USER_FIRST_NAME!=null && userInfo.USER_FIRST_NAME!='') $scope.userProfile.firstName = userInfo.USER_FIRST_NAME; if (typeof(userInfo.USER_LAST_NAME) != "undefined" && userInfo.USER_LAST_NAME!=null && userInfo.USER_LAST_NAME!='') $scope.userProfile.lastName = userInfo.USER_LAST_NAME; if (typeof(userInfo.USER_EMAIL) != "undefined" && userInfo.USER_EMAIL!=null && userInfo.USER_EMAIL!='') $scope.userProfile.email = userInfo.USER_EMAIL; } } /*getting user info from session*/ $scope.getUserNameFromSession = function(){ UserInfoService.getFunctionalMenuStaticDetailSession() .then(function (res) { $scope.userProfile.firstName = res.firstName; $scope.redirectUrl = res.portalUrl; }); } $scope.getTopMenuStaticInfo=function() { var promise = UserInfoService.getFunctionalMenuStaticDetailShareContext(); promise.then( function(res) { if(res==null || res==''){ $log.info('failed getting static User information'); $scope.getUserNameFromSession(); }else{ $log.info('Received static User information'); var resData = res; $scope.inputUserInfo(resData); $scope.userProfile.fullName = $scope.userProfile.firstName+ ' '+ $scope.userProfile.lastName; }}, function(err) { $log.info('failed getting static User information'); } ); } var unflatten = function( array, parent, tree ){ tree = typeof tree !== 'undefined' ? tree : []; parent = typeof parent !== 'undefined' ? parent : { menuId: null }; var children = _.filter( array, function(child){ return child.parentMenuId == parent.menuId; }); if( !_.isEmpty( children ) ){ if( parent.menuId === null ){ tree = children; }else{ parent['children'] = children } _.each( children, function( child ){ unflatten( array, child ) } ); } return tree; } var menuStructureConvert = function(menuItems) { var megaMenuDataObjectTemp = [ { text: "ECOMP", children:menuItems }, { text: "Help", children: [{ text:"Contact Us", url:"http://" }, { text:"Get Access", url:"http://portal.api.simpledemo.openecomp.org:8989/ECOMPPORTAL/get_access" }] } ]; return megaMenuDataObjectTemp; }; /*Left Menu*/ LeftMenuService.getAppName().then(function(response){ var j = response; try{ if(j && j !== "null" && j!== "undefined"){ // console.log("app name is " + $scope.app_name); $scope.app_name_full = j.data; var processed_app_name = j.data; if(processed_app_name.indexOf("[")<=-1) { if (document.getElementById('license-notification')!=null) document.getElementById('license-notification').style.display = "none"; } var n = processed_app_name.length; if (n > 15) { n = 15; } $scope.app_name = processed_app_name.substr(0, n); }else{ throw "Get app_name response is not an object/is empty"; } }catch (e) { console.log("error happened while trying to get app name "+e); return; } },function(error){ console.log('getAppName failed', error); }); $scope.getTopMenuStaticInfo(); $scope.getMenu=function() { $http({ method: "GET", url: 'get_functional_menu',// TIMEOUT USED FOR LOCAL TESTING ONLY // timeout: 100 }).success(function (response) { if(response == '101: Timeout') { $log.error('Timeout attempting to get_functional_menu'); // TIMEOUT USED FOR LOCAL TESTING ONLY // $scope.createErrorMenu(); $scope.megaMenuDataObject = menuStructureConvert(''); }else { $log.debug('get_functional_menu success: ' + response); if(typeof response != 'undefined' && response.length!=0 && typeof response[0] != 'undefined' && typeof response[0].error!="undefined"){// createErrorMenu() USED FOR LOCAL TESTING ONLY// $scope.createErrorMenu(); $scope.megaMenuDataObject = menuStructureConvert(''); // $scope.loadMenufail=true; }else{ $scope.jsonMenuData = unflatten( response ); $scope.megaMenuDataObject = menuStructureConvert($scope.jsonMenuData); } } }).error(function (response){// createErrorMenu() USED FOR LOCAL TESTING ONLY // $scope.createErrorMenu(); //$scope.loadMenufail=true; $scope.megaMenuDataObject = menuStructureConvert(''); $log.debug('REST API failed get_functional_menu...'+ response); }); } $scope.adjustHLeftMenu = function (type){ $scope.showHeader = ($cookies.show_app_header == undefined ? true : $cookies.show_app_header); if($scope.showHeader == true) { $scope.drawer_margin_top = 60; $scope.drawer_custom_top = 54; $scope.toggle_drawer_top = 55; } else { $scope.drawer_margin_top = 50; $scope.drawer_custom_top = 0; $scope.toggle_drawer_top = 10; } if(type=='burgerIcon'){ return { "top": $scope.toggle_drawer_top+"px"}; }else if(type=='leftMenu'){ return { "margin-top": $scope.drawer_margin_top+"px"}; }else return; } $scope.adjustHeader=function() { $scope.showHeader = ($cookies.show_app_header == undefined ? true : $cookies.show_app_header); if($scope.showHeader == true) { $scope.drawer_margin_top = 50; $scope.drawer_custom_top = 54; $scope.toggle_drawer_top = 55; } else { $scope.drawer_margin_top = 40; $scope.drawer_custom_top = 0; $scope.toggle_drawer_top = 10; } } //$scope.getMenu(); $scope.adjustHeader(); /* **************************************************************************/ /* Logic for the favorite menus is here */ $scope.loadFavorites = function () { $log.debug('loadFavorites has happened.'); if ($scope.favoritesMenuItems == '') { $scope.generateFavoriteItems(); $log.debug('loadFavorites is calling generateFavoriteItems()'); } else { $log.debug('loadFavorites is NOT calling generateFavoriteItems()'); } } $scope.goToUrl = function (item) { $log.info("goToUrl called") $log.info(item); var url = item.url; var restrictedApp = item.restrictedApp; $log.debug('Restricted app status is: ' + restrictedApp); if (!url) { $log.info('No url found for this application, doing nothing..'); return; } if (restrictedApp) { $window.open(url, '_blank'); } else { $window.open(url, '_self'); } } $scope.submenuLevelAction = function(index, column) { if ($scope.favoritesMenuItems == '') { $scope.generateFavoriteItems(); $log.debug('submenuLevelAction is calling generateFavoriteItems()'); } $log.debug('item hovered/clicked: ' + index + '; column = ' + column); if (column == 2) { // 2 is Design $scope.favoritesWindow = false; $scope.showFavorites = false; $scope.emptyFavorites = false; } if (index=='Favorites' && $scope.favoriteItemsCount != 0) { $log.debug('Showing Favorites window'); $scope.favoritesWindow = true; $scope.showFavorites = true; $scope.emptyFavorites = false; } if (index=='Favorites' && $scope.favoriteItemsCount == 0) { $log.debug('Hiding Favorites window in favor of No Favorites Window'); $scope.favoritesWindow = true; $scope.showFavorites = false; $scope.emptyFavorites = true; } if (column > 2) { $scope.favoritesWindow = false; $scope.showFavorites = false; $scope.emptyFavorites = false; } }; $scope.hideFavoritesWindow = function() { $log.debug('$scope.hideFavoritesWindow has been called'); $scope.showFavorites = false; $scope.emptyFavorites = false; } $scope.isUrlFavorite = function (menuId) {// $log.debug('array objects in menu favorites = ' + $scope.favoriteItemsCount + '; menuId=' + menuId); var jsonMenu = JSON.stringify($scope.favoritesMenuItems); var isMenuFavorite = jsonMenu.indexOf('menuId\":' + menuId); if (isMenuFavorite==-1) { return false; } else { return true; } } $scope.generateFavoriteItems = function() { $http({ method: "GET", url: 'get_favorites', // TIMEOUT USED FOR LOCAL TESTING ONLY // timeout: 100 }).success(function (response) { if (response == '101: Timeout') { $log.error('Timeout attempting to get_favorites_menu'); } else { if(typeof response != 'undefined' && response.length!=0 && typeof response[0] != 'undefined' && typeof response[0].error!="undefined"){ $log.error('REST API failed get_favorites' + response); }else{ $log.debug('get_favorites = ' + JSON.stringify(response)); $scope.favoritesMenuItems = response; $scope.favoriteItemsCount = Object.keys($scope.favoritesMenuItems).length; $log.info('number of favorite menus: ' + $scope.favoriteItemsCount); } } }).error(function (response){ $log.error('REST API failed get_favorites' + response); //createFavoriteErrorMenu() USED FOR LOCAL TESTING ONLY // $scope.createFavoriteErrorMenu(); }); } $scope.createFavoriteErrorMenu=function() { $scope.favoritesMenuItems = [// {// "menuId": "93",// "text": "XXX",// "url": "XXX"// } ]; $scope.favoriteItemsCount = Object.keys($scope.favoritesMenuItems).length; $log.info('number of favorite menus: ' + $scope.favoriteItemsCount); } /* end of Favorite Menu code */ /* **************************************************************************/ /* **************************************************************************/ // THIS IS USED FOR LOCAL TESTING ONLY /* **************************************************************************/ $scope.createErrorMenu=function() { $scope.jsonMenuData = [ { "menuId": 1, "column": 2, "text": "Design", "parentMenuId": null, "url": "" }, { "menuId": 2, "column": 3, "text": "Infrastructure Ordering", "parentMenuId": null, "url": "" }, { "menuId": 3, "column": 4, "text": "Service Creation", "parentMenuId": null, "url": "" }, { "menuId": 4, "column": 5, "text": "Service Mgmt", "parentMenuId": null, "url": "" }, { "menuId": 99, "column": 1, "text": "Favorites", "parentMenuId": null, "url": "" } ]; $scope.jsonMenuData = unflatten( $scope.jsonMenuData ); $scope.megaMenuDataObject = menuStructureConvert($scope.jsonMenuData);// $log.debug(JSON.stringify($scope.jsonMenuData)); } var childItemList=""; var parentList = ""; try{ childItemList = ; parentList = ; }catch(err){ console.log("ebz_header: failed to get child/parent lists", err); } var pageUrl = window.location.href.split('/')[window.location.href.split('/').length-1]; $scope.menuItems = []; for (var i = 0; i < parentList.length; i++) { $scope.openCurrentMenu = false; if(pageUrl==parentList[i].action) $scope.openCurrentMenu = true; $scope.childItemList = childItemList[i]; for(chIndex in $scope.childItemList){ if($scope.childItemList.length>0) if($scope.childItemList[chIndex].action!=null){ if($scope.childItemList[chIndex].action==pageUrl) $scope.openCurrentMenu = true; }} $scope.item = { parentLabel : parentList[i].label, parentAction : parentList[i].action, parentImageSrc : parentList[i].imageSrc, open:$scope.openCurrentMenu, childItemList : $scope.childItemList } $scope.menuItems.push($scope.item); } $scope.arrowShow = true; $scope.drawerOpen = false; $scope.subMenuContent = false; $scope.toggleSubMenu = function() { $scope.subMenuContent = !$scope.subMenuContent; }; var drawerOpen = 'open'; if (drawerOpen == 'open') { $scope.drawerOpen = true; $scope.arrowShow = true; } else { $scope.arrowShow = false; } $scope.arrowShow = true; $scope.drawerOpen = false; $scope.toggleDrawer = function() { $scope.drawerOpen = !($scope.drawerOpen); if ($scope.drawerOpen) { $scope.arrowShow = true; if (document.getElementById('mContent')!=null) document.getElementById('mContent').style.marginLeft = "0px"; } else { $scope.arrowShow = false; if (document.getElementById('mContent')!=null) document.getElementById('mContent').style.marginLeft = "-150px"; } }; //var drawerOpen = getCookie('drawerOpen'); if (drawerOpen == 'open') { $scope.drawerOpen = true; $scope.arrowShow = true; } else { $scope.arrowShow = false; } $timeout(function() { detectScrollEvent(); }, 800); }); app.filter("ellipsis", function(){ return function(text, length){ if (text) { var ellipsis = text.length > length ? "..." : ""; return text.slice(0, length) + ellipsis; }; return text; } });</script> </div> <br> <div class="content" id="mContent"> <div class="body-content-jsp"> Authorization Denied </div> </div> <br> <div> <script src="app/fusion/external/ebz/js/footer.js"></script><link rel="stylesheet" type="text/css" href="app/fusion/external/ebz/ebz_header/footer.css" ><div class="footerContainer" id="footerContainer"> <div class="footerWrapper" id="footerWrapper"> <div class="attFooterInfo" style="text-align: center;"> <div class="footerLastSection"> <div class="footerText"> <p class="copyright-text"> </p> </div> <div class="displayInline"> <a href="#" class="footer-logo"> </a> </div> </div> </div> </div> </div></div> </div> </div> </body></html>"
    at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) ~[na:1.8.0_131]
    at java.lang.Integer.parseInt(Integer.java:580) ~[na:1.8.0_131]
    at java.lang.Integer.parseInt(Integer.java:615) ~[na:1.8.0_131]
    at org.openecomp.portalsdk.core.onboarding.listener.PortalTimeoutHandler$SessionComm.fetchSessionSlotCheckInterval(PortalTimeoutHandler.java:65) ~[epsdk-fw-1.1.0-20170628.112755-72.jar:na]
    at org.openecomp.portalsdk.core.onboarding.listener.PortalTimeoutHandler.synchronizeSessionForLastMinuteRequests(PortalTimeoutHandler.java:327) ~[epsdk-fw-1.1.0-20170628.112755-72.jar:na]
    at org.openecomp.portalsdk.core.onboarding.listener.PortalTimeoutHandler.handleSessionUpdatesNative(PortalTimeoutHandler.java:294) ~[epsdk-fw-1.1.0-20170628.112755-72.jar:na]
    at org.openecomp.portalsdk.core.interceptor.ResourceInterceptor.handleSessionUpdates(ResourceInterceptor.java:130) [epsdk-core-1.1.0-20170628.112953-72.jar:na]
    at org.openecomp.portalsdk.core.interceptor.ResourceInterceptor.preHandle(ResourceInterceptor.java:99) [epsdk-core-1.1.0-20170628.112953-72.jar:na]
    at org.springframework.web.servlet.HandlerExecutionChain.applyPreHandle(HandlerExecutionChain.java:134) [spring-webmvc-4.2.0.RELEASE.jar:4.2.0.RELEASE]
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:954) [spring-webmvc-4.2.0.RELEASE.jar:4.2.0.RELEASE]
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:893) [spring-webmvc-4.2.0.RELEASE.jar:4.2.0.RELEASE]
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970) [spring-webmvc-4.2.0.RELEASE.jar:4.2.0.RELEASE]
    at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861) [spring-webmvc-4.2.0.RELEASE.jar:4.2.0.RELEASE]
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:622) [servlet-api.jar:na]
    at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846) [spring-webmvc-4.2.0.RELEASE.jar:4.2.0.RELEASE]
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:729) [servlet-api.jar:na]
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292) [catalina.jar:8.0.45]
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207) [catalina.jar:8.0.45]
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) [tomcat-websocket.jar:8.0.45]
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240) [catalina.jar:8.0.45]
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207) [catalina.jar:8.0.45]
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212) [catalina.jar:8.0.45]
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:94) [catalina.jar:8.0.45]
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:504) [catalina.jar:8.0.45]
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141) [catalina.jar:8.0.45]
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79) [catalina.jar:8.0.45]
    at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:620) [catalina.jar:8.0.45]
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88) [catalina.jar:8.0.45]
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:502) [catalina.jar:8.0.45]
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1132) [tomcat-coyote.jar:8.0.45]
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:684) [tomcat-coyote.jar:8.0.45]
    at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.doRun(AprEndpoint.java:2521) [tomcat-coyote.jar:8.0.45]
    at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:2510) [tomcat-coyote.jar:8.0.45]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_131]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_131]
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-util.jar:8.0.45]
    at java.lang.Thread.run(Thread.java:748) [na:1.8.0_131]
    2017-07-11 14:56:20,151|dd547cf4-d45c-4211-a220-782bb3c302f7||http-apr-8080-exec-6||/single_signon.htm|292b461a-2954-4b63-a3f9-f916c7ad3bc0|WARN|INFORMATIONAL|172.17.0.3|fdfe54306a9d|||| Handler execution resulted in exception: required key [authentication_mechanism] not found

CommentAdd your comment...

2 answers

  1.  
    1
    0
    -1

    This issue is fixed with latest portal docker images

      CommentAdd your comment...
    1.  
      1
      0
      -1

      Just found yours after posting mine. I'll see if I can delete mine. What I've found is that it tries to use single sign on and a process_csp service that doesnt exist (yet?). I found a workaround below, if you want to use it. 


      With version 1.1 we are not able to launch VID from the Portal. A workaround I have found is to open VID directly and login using a local account. The details are below. VID will log you out frequently and point you back at the single sign on URL which appears to be broken, you’ll need to go back to this URL if that happens and login again. Once you login you can go back to the portal and open VID successfully, though it doesn’t seem to make much of a difference.


      URL http://vid.api.simpledemo.openecomp.org:8080/vid/login.htm

      Username demo

      Password Kp8bJ4SXszM0WX



      Also, I've found that VID cant POST to AAI right now. Digging through the code I've found that the RestGet method of AAIRestInterface will look for a client cert or use a login/password stored in the system properties. However, the RestPost function does neither of these and is getting an authorization failed. You'll see this once you get to the point of trying to create a new service instance. You can select the subscriber and then the service type and it hangs.

      1. kranthi guttikonda

        Thanks Brian Matt Looks like portal requires an update. I am also seeing the same error for policy

      2. Brian Matt

        Yea I'm taking a peak at the code. I did update the code in the VID client to get around the auth error with aai-traversal. I'm going to see if it is something I can commit back to the VID project, but I assume its probably already being worked on (though I didn't see anything in JIRA).


        I've looked around the portal code and I cant find any actual backing code for process_csp. I'm going to dig a little bit more to see what I can find though.


      3. Brian Matt

        I think I found the single sign on piece, but i think it may still be unfinished. The actual endpoint appears to be /processSingleSignOn. I updated our portal instance to use /process_csp in the java code for the login controller, but it still gets this authentication mechanism error.

      4. Stephen Moffitt

        Brian Matt - did you manage to get your service defined in SDC and instantiated using version 1.1 components?
        I reverted back to 1.0 for Portal, VID, SDC and MSO (the other components are 1.1), due to various errors. However when I try to deploy an instance of the vFW service created as per (Optional) Tutorial: Onboarding and Distributing a Vendor Software Product (VSP) I now get a BPEL error. So I am curious to know if you have it working with 1.1 because I can't think of how to resolve this issue. Thanks.

      5. Brian Matt

        Not yet, I cannot get far enough into VID to deploy it yet. I also have a, new i think, AAI deployment error. Before I think it only deployed to MSO and that works fine. I'm wondering if the AAI deployment step may be something new now, this is at the distribution step before VID.

        Right now I feel like there is a lot of movement on the 1.1 version that is causing new errors to pop up. I've been looking more into the source at the moment while, hopefully, this version matures more.

      6. Sudhakar Reddy

        Same error is coming for Policy UI when I tried to open from Portal.Is there any workaround for that?

        I tried with the credentials given for vid to login to policy: http://policy.api.simpledemo.openecomp.org:8443/ecomp/login.htm 

        But I got invalid login message.

        Update :got the work around for this.Policy : required key [authentication_mechanism] not found

      CommentAdd your comment...