Updated Branches: refs/heads/master 73326f9a1 -> 2f6d8530e
sso login modifications in console app Project: http://git-wip-us.apache.org/repos/asf/incubator-stratos/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-stratos/commit/2f6d8530 Tree: http://git-wip-us.apache.org/repos/asf/incubator-stratos/tree/2f6d8530 Diff: http://git-wip-us.apache.org/repos/asf/incubator-stratos/diff/2f6d8530 Branch: refs/heads/master Commit: 2f6d8530eeb261d4d35f7af03383bb7c0f165de6 Parents: 73326f9 Author: Pradeep Fernando <[email protected]> Authored: Wed Jan 8 10:55:47 2014 +0530 Committer: Pradeep Fernando <[email protected]> Committed: Wed Jan 8 10:55:47 2014 +0530 ---------------------------------------------------------------------- .../config/console.json | 2 +- .../controllers/acs.jag | 11 ++- .../util/utility.jag | 77 ++++++++++++-------- 3 files changed, 58 insertions(+), 32 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/2f6d8530/components/org.apache.stratos.manager.console/config/console.json ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.manager.console/config/console.json b/components/org.apache.stratos.manager.console/config/console.json index 271ddcc..23efa7c 100644 --- a/components/org.apache.stratos.manager.console/config/console.json +++ b/components/org.apache.stratos.manager.console/config/console.json @@ -1,6 +1,6 @@ { "backendServerConfiguration":{ - "url":"https://localhost:9443" + "url":"https://localhost:9443/stratos/admin" }, "oauthConfiguration":{ http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/2f6d8530/components/org.apache.stratos.manager.console/controllers/acs.jag ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.manager.console/controllers/acs.jag b/components/org.apache.stratos.manager.console/controllers/acs.jag index fb1b101..a83826e 100644 --- a/components/org.apache.stratos.manager.console/controllers/acs.jag +++ b/components/org.apache.stratos.manager.console/controllers/acs.jag @@ -4,6 +4,7 @@ log.info("console ACS page...."); var configs = require('/config/console.js').config(), process = require("process"), + util = require('/util/utility.jag'), samlResponse = request.getParameter('SAMLResponse'), sessionId = session.getId(), samlRequest = request.getParameter('SAMLRequest'), @@ -34,10 +35,16 @@ if (sso.client.validateSignature(samlRespObj, keyStoreProps)) { var sessionObj = sso.client.decodeSAMLLoginResponse(samlRespObj, samlResponse, sessionId); - + var samlToken = sso.client.getB64EncodedtSAMLAssertion(samlRespObj); + log.info("B64 encoded SAML2Token : " + samlToken.b64Encoded); + var encodedString = sso.client.b64encode("LATjzZ4FvQc2gFEfwcitay78lQQa:LeZD0oN0ZLTLjLmRqphX4Ulrr5wa"); + log.info("encoded string : " + encodedString); + var accessToken = util.consoleAppUtil.getOauthAccessToken(samlToken.b64Encoded,encodedString); + log.info(accessToken.data.access_token); + session.put("access_token",accessToken.data.access_token); if (sessionObj.sessionIndex != null || sessionObj.sessionIndex != 'undefined') { session.put("LOGGED_IN_USER", sessionObj.loggedInUser); - session.put("Logged", "true"); + //session.put("Logged", "true"); //sso_sessions[sessionObj.sessionIndex] = sessionObj.sessionId; http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/2f6d8530/components/org.apache.stratos.manager.console/util/utility.jag ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.manager.console/util/utility.jag b/components/org.apache.stratos.manager.console/util/utility.jag index ff42a3d..e943e10 100644 --- a/components/org.apache.stratos.manager.console/util/utility.jag +++ b/components/org.apache.stratos.manager.console/util/utility.jag @@ -74,52 +74,71 @@ function getServerUrl(){ return serverUrl; } -function getAuthenticationHeader(){ - return {"Authorization": "Basic YWRtaW46YWRtaW4="}; -} - -function getBackendServerURL(){ - var config = require('/config/console.json'); - return config.backendServerConfiguration.url; -} - consoleAppUtil = new function(){ var log = new Log(); this.getAvailableCartridges = function(){ - return this.makeRequest() + }; + this.getSubscribedCartridges = function(){ + + } this.makeRequest = function(httpMethod,urlPostFix,data){ - var endpoint = getBackendServerURL() + urlPostFix; - var headers = getAuthenticationHeader(); - var type="json"; - if(log.isDebugEnabeld()){ - log.debug("HTTPMethod : " + httpMethod); - log.debug("HTTPEndpoint : "+endpoint); - log.debug("HTTPHeaders : "+headers); - } + var config = require('/config/console.js').config(); + var backendServerURL = config.backendServerConfiguration.url; + // getting the access token from the session. + var endpoint = backendServerURL + urlPostfix; + var accessToken = this.getAccessTokenFromSession(); + // the header values are constant + var headers = { + "Authorization": "Bearer "+accessToken, + "Content-Type": "application/json" + }; + var type = "json"; // response format var response; - switch(httpMethod){ - case "GET": - response = get(endpoint,data,headers,type); - break; - case "POST": + switch (httpMethod){ + case "GET": + response = get(endpoint,{},headers,type); + break; + case "POST": response = post(endpoint,data,headers,type); break; - case "DELETE": - response = del(endpoint,data,headers,type); - break; - case "PUT": + case "PUT": response = put(endpoint,data,headers,type); break; + case "DELETE": + response = del(endpoint,data,headers,type); + break; default : - response = {"data":"wrong data"}; // TODO: proper error handling. + log.error("Error in the programme flow."); } - log.info(response.data); + log.debug(response.data); + return response; + }; + + + + this.getOauthAccessToken = function(encodedSAMLToken,basicAuthToken){ + var config = require('/config/console.js').config(); + var endpoint = config.oauthConfiguration.tokenEndpoint; + var headers = { + "Authorization": "Basic "+basicAuthToken, + "Content-Type": "application/x-www-form-urlencoded;charset=UTF-8" + }; + var data = { + grant_type:"urn:ietf:params:oauth:grant-type:saml2-bearer", + assertion:encodedSAMLToken + }; + var response = post(endpoint,data,headers,"json"); + log.debug(response); return response; }; + + this.getAccessTokenFromSession = function(){ + return session.get("access_token"); + }; };
