Updated Branches: refs/heads/master a07319240 -> f61da05a0
routing all the requests through the router. serving css files/etc through file streamer Project: http://git-wip-us.apache.org/repos/asf/incubator-stratos/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-stratos/commit/f61da05a Tree: http://git-wip-us.apache.org/repos/asf/incubator-stratos/tree/f61da05a Diff: http://git-wip-us.apache.org/repos/asf/incubator-stratos/diff/f61da05a Branch: refs/heads/master Commit: f61da05a0a13eb434fc853ac2c8c4ed7212b22b8 Parents: a073192 Author: Pradeep Fernando <[email protected]> Authored: Mon Jan 20 17:07:12 2014 +0530 Committer: Pradeep Fernando <[email protected]> Committed: Mon Jan 20 17:07:12 2014 +0530 ---------------------------------------------------------------------- .../console/controllers/router.jag | 50 ++++++++------------ .../console/jaggery.conf | 6 ++- .../console/modules/file.js | 13 +++++ .../console/modules/mime.js | 22 +++++++++ 4 files changed, 60 insertions(+), 31 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/f61da05a/components/org.apache.stratos.manager.console/console/controllers/router.jag ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.manager.console/console/controllers/router.jag b/components/org.apache.stratos.manager.console/console/controllers/router.jag index 31d5aef..25f2e52 100644 --- a/components/org.apache.stratos.manager.console/console/controllers/router.jag +++ b/components/org.apache.stratos.manager.console/console/controllers/router.jag @@ -4,15 +4,13 @@ var config=require('/config/console.json'); var log = new Log("controller.router"); var DEFAULT_ROUTER_NAME='/asset.jag'; - var EXT_ROUTER_NAME='/pages/asset.jag'; - var EXT_PATH=config.paths.ASSET_EXT_PATH; var DEFAULT_PATH=config.paths.ASSET_DEFAULT_PATH; - var URL=config.urls.MGT; var acl = require('/util/acl.jag'); var MSG_404='Asset not found'; //Eror 404 message var securityModule=require('/modules/security/security.manager.js').securityManagementModule(); + var file = require('/modules/file.js'); var sm=securityModule.cached(); @@ -21,9 +19,6 @@ var tenantDomain = session.get("TENANT_DOMAIN"); var roleArray = session.get("ROLE_ARRAY"); - log.info(tenantDomain); - log.info(roleArray); - // comment out the above and uncomment below code bits for testing. It removes authentication/authorization // of the app. @@ -31,7 +26,6 @@ //var tenantDomain = "carbon.super"; //var roleArray = "["admin","Internal/Everyone"]"; - //Stop servicing the request if the check failed if(!passed){ return; @@ -44,51 +38,47 @@ @return: true if the pattern matches,else false */ function isMatchingPattern(patterns,uriMatcher){ - for each(var pattern in patterns){ - if(uriMatcher.match(pattern)){ - return true; } } - return false; } var matcher=new URIMatcher(request.getRequestURI()); + // we stream css and other theme related resources found under themes directory. + if (matcher.match('/{context}/themes/{+file}')) { + elements = matcher.elements(); + file.send('/themes/' + elements.file); + return; + } - var patterns=[ '/{context}'+URL+'/{type}/{+suffix}', - '/{context}'+URL+'/{type}']; - - - + var patterns=['/{context}','/{context}/','/{context}/{+suffix}']; if(isMatchingPattern(patterns,matcher)){ var params=matcher.elements(); - var theme=params.theme; - var type=params.type; - log.info("type : "+ params.type); - log.info("context :"+ params.cotext); - var extLocation ='/'+type; - var path = extLocation; //Assume there is an extension - log.info(path); - - - //Check if an extension asset router exists - var fileTester=new File(path); + var context=params.context; + var suffix=params.suffix; + var includePath ='/'; + if(!suffix){ + includePath += 'index.jag'; // index page rendering for /console + }else{ + includePath += suffix; + } + //check if the file path exists + var fileTester=new File(includePath); if(fileTester.isExists()){ request.getMappedPath = function() { - return path; + return includePath; }; var permissionObject = acl.authorizationUtil.getPermissionObj(tenantDomain,roleArray); - log.info(permissionObject); request.permissions = permissionObject; - include(path); + include(includePath); return; } http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/f61da05a/components/org.apache.stratos.manager.console/console/jaggery.conf ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.manager.console/console/jaggery.conf b/components/org.apache.stratos.manager.console/console/jaggery.conf index 0c7ce62..80b8f8f 100644 --- a/components/org.apache.stratos.manager.console/console/jaggery.conf +++ b/components/org.apache.stratos.manager.console/console/jaggery.conf @@ -3,7 +3,11 @@ "logLevel": "info", "urlMappings":[ { - "url":"/mgt/*", + "url":"/acs", + "path":"/controllers/acs.jag" + }, + { + "url":"/*", "path":"/controllers/router.jag" }, { http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/f61da05a/components/org.apache.stratos.manager.console/console/modules/file.js ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.manager.console/console/modules/file.js b/components/org.apache.stratos.manager.console/console/modules/file.js new file mode 100644 index 0000000..9913f7c --- /dev/null +++ b/components/org.apache.stratos.manager.console/console/modules/file.js @@ -0,0 +1,13 @@ +var send = function(path) { + var mime, + file = new File(path); + if(!file.isExists()) { + response.sendError(404, 'Request resource not found'); + return; + } + mime = require('/modules/mime.js'); + response.addHeader('Content-Type', mime.getType(path)); + file.open('r'); + print(file.getStream()); + file.close(); +}; \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/f61da05a/components/org.apache.stratos.manager.console/console/modules/mime.js ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.manager.console/console/modules/mime.js b/components/org.apache.stratos.manager.console/console/modules/mime.js new file mode 100644 index 0000000..98bc518 --- /dev/null +++ b/components/org.apache.stratos.manager.console/console/modules/mime.js @@ -0,0 +1,22 @@ +var getType = function (path) { + var index = path.lastIndexOf('.'); + var ext = index < path.length ? path.substring(index + 1) : ''; + switch (ext) { + case 'js': + return 'application/javascript'; + case 'css': + return 'text/css'; + case 'html': + return 'text/html'; + case 'png': + return 'image/png'; + case 'gif': + return 'image/gif'; + case 'jpeg': + return 'image/jpeg'; + case 'jpg': + return 'image/jpg'; + default : + return 'text/plain'; + } +}; \ No newline at end of file
