ambari-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From mradhakrish...@apache.org
Subject [51/94] [abbrv] [partial] ambari git commit: AMBARI-21870. Integrate LogSearch new UI with the server and get rid of the old one (oleewere)
Date Mon, 11 Sep 2017 04:39:21 GMT
AMBARI-21870. Integrate LogSearch new UI with the server and get rid of the old one (oleewere)


Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/02360dd5
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/02360dd5
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/02360dd5

Branch: refs/heads/branch-feature-AMBARI-14714
Commit: 02360dd5d788fd2ad7b0edd2f706051c1cc690e8
Parents: 93011b2
Author: oleewere <oleewere@gmail.com>
Authored: Fri Sep 1 16:55:25 2017 +0200
Committer: oleewere <oleewere@gmail.com>
Committed: Tue Sep 5 21:32:02 2017 +0200

----------------------------------------------------------------------
 .../ambari-logsearch-server/build.xml           |    3 +
 .../ambari-logsearch-server/pom.xml             |    7 +-
 .../auth/filter/AbstractJWTFilter.java          |  193 +
 .../auth/model/JWTAuthenticationToken.java      |   47 +
 .../ambari/logsearch/conf/SecurityConfig.java   |   38 +-
 .../LogsearchLogoutSuccessHandler.java          |    1 -
 .../web/filters/LogsearchJWTFilter.java         |  150 +-
 .../web/model/JWTAuthenticationToken.java       |   53 -
 .../ambari-logsearch-web-new/.angular-cli.json  |   64 -
 .../ambari-logsearch-web-new/.editorconfig      |   13 -
 .../ambari-logsearch-web-new/.gitignore         |   42 -
 .../ambari-logsearch-web-new/README.md          |   28 -
 .../e2e/app.e2e-spec.ts                         |   32 -
 .../ambari-logsearch-web-new/e2e/app.po.ts      |   29 -
 .../e2e/tsconfig.e2e.json                       |   12 -
 .../ambari-logsearch-web-new/karma.conf.js      |   62 -
 .../ambari-logsearch-web-new/package.json       |   64 -
 .../ambari-logsearch-web-new/pom.xml            |  171 -
 .../ambari-logsearch-web-new/protractor.conf.js |   48 -
 .../src/app/app.module.ts                       |  169 -
 .../queries/audit-logs-query-params.class.ts    |   50 -
 .../app/classes/queries/query-params.class.ts   |   23 -
 ...ce-logs-histogram-query-params.class.spec.ts |  203 -
 ...service-logs-histogram-query-params.class.ts |   69 -
 .../queries/service-logs-query-params.class.ts  |   31 -
 .../accordion-panel.component.html              |   25 -
 .../accordion-panel.component.less              |   42 -
 .../accordion-panel.component.spec.ts           |   42 -
 .../accordion-panel.component.ts                |   33 -
 .../src/app/components/app.component.html       |   34 -
 .../src/app/components/app.component.less       |   51 -
 .../src/app/components/app.component.spec.ts    |   71 -
 .../src/app/components/app.component.ts         |   45 -
 .../dropdown-button.component.html              |   25 -
 .../dropdown-button.component.less              |   32 -
 .../dropdown-button.component.spec.ts           |   79 -
 .../dropdown-button.component.ts                |   96 -
 .../dropdown-list/dropdown-list.component.html  |   31 -
 .../dropdown-list/dropdown-list.component.less  |   41 -
 .../dropdown-list.component.spec.ts             |  130 -
 .../dropdown-list/dropdown-list.component.ts    |   63 -
 .../filter-button.component.spec.ts             |   78 -
 .../filter-button/filter-button.component.ts    |   80 -
 .../filter-dropdown.component.spec.ts           |   92 -
 .../filter-dropdown.component.ts                |   63 -
 .../filter-text-field.component.html            |   21 -
 .../filter-text-field.component.less            |   33 -
 .../filter-text-field.component.spec.ts         |   82 -
 .../filter-text-field.component.ts              |   87 -
 .../filters-panel/filters-panel.component.html  |   46 -
 .../filters-panel/filters-panel.component.less  |   51 -
 .../filters-panel.component.spec.ts             |   93 -
 .../filters-panel/filters-panel.component.ts    |   44 -
 .../login-form/login-form.component.html        |   33 -
 .../login-form/login-form.component.less        |   22 -
 .../login-form/login-form.component.spec.ts     |  122 -
 .../login-form/login-form.component.ts          |   59 -
 .../logs-container.component.html               |   22 -
 .../logs-container.component.less               |   25 -
 .../logs-container.component.spec.ts            |  102 -
 .../logs-container/logs-container.component.ts  |  105 -
 .../logs-list/logs-list.component.html          |   54 -
 .../logs-list/logs-list.component.less          |  138 -
 .../logs-list/logs-list.component.spec.ts       |  102 -
 .../components/logs-list/logs-list.component.ts |   62 -
 .../main-container.component.html               |   24 -
 .../main-container.component.less               |   24 -
 .../main-container.component.spec.ts            |   65 -
 .../main-container/main-container.component.ts  |   66 -
 .../menu-button/menu-button.component.html      |   28 -
 .../menu-button/menu-button.component.less      |   33 -
 .../menu-button/menu-button.component.spec.ts   |  133 -
 .../menu-button/menu-button.component.ts        |   97 -
 .../app/components/modal/modal.component.html   |   40 -
 .../components/modal/modal.component.spec.ts    |   57 -
 .../src/app/components/modal/modal.component.ts |  122 -
 .../components/node-bar/node-bar.component.html |   19 -
 .../components/node-bar/node-bar.component.less |   39 -
 .../node-bar/node-bar.component.spec.ts         |   43 -
 .../components/node-bar/node-bar.component.ts   |   35 -
 .../pagination-controls.component.html          |   23 -
 .../pagination-controls.component.less          |   23 -
 .../pagination-controls.component.spec.ts       |   43 -
 .../pagination-controls.component.ts            |   73 -
 .../pagination/pagination.component.html        |   24 -
 .../pagination/pagination.component.less        |   28 -
 .../pagination/pagination.component.spec.ts     |   69 -
 .../pagination/pagination.component.ts          |   72 -
 .../time-histogram.component.html               |   18 -
 .../time-histogram.component.less               |   29 -
 .../time-histogram.component.spec.ts            |   53 -
 .../time-histogram/time-histogram.component.ts  |  161 -
 .../timezone-picker.component.html              |   26 -
 .../timezone-picker.component.less              |   45 -
 .../timezone-picker.component.spec.ts           |   73 -
 .../timezone-picker.component.ts                |   77 -
 .../components/top-menu/top-menu.component.html |   21 -
 .../components/top-menu/top-menu.component.less |   22 -
 .../top-menu/top-menu.component.spec.ts         |   45 -
 .../components/top-menu/top-menu.component.ts   |  122 -
 .../src/app/components/variables.less           |  118 -
 .../src/app/mock-data.ts                        | 1067 ---
 .../src/app/models/app-settings.model.ts        |   27 -
 .../src/app/models/app-state.model.ts           |   33 -
 .../src/app/models/audit-log-field.model.ts     |  225 -
 .../src/app/models/audit-log.model.ts           |   46 -
 .../src/app/models/bar-graph.model.ts           |   24 -
 .../src/app/models/common-entry.model.ts        |   22 -
 .../src/app/models/count.model.ts               |   22 -
 .../src/app/models/filter.model.ts              |   25 -
 .../src/app/models/graph.model.ts               |   23 -
 .../src/app/models/log-field.model.ts           |   27 -
 .../src/app/models/log.model.ts                 |   37 -
 .../src/app/models/node.model.ts                |   29 -
 .../src/app/models/service-log-field.model.ts   |  107 -
 .../src/app/models/service-log.model.ts         |   27 -
 .../app/models/solr-collection-state.model.ts   |   23 -
 .../src/app/models/store.model.ts               |  169 -
 .../src/app/models/user-config.model.ts         |   26 -
 .../src/app/pipes/timezone-abbr.pipe.spec.ts    |   26 -
 .../src/app/pipes/timezone-abbr.pipe.ts         |   31 -
 .../services/component-actions.service.spec.ts  |   43 -
 .../app/services/component-actions.service.ts   |   53 -
 .../component-generator.service.spec.ts         |   84 -
 .../app/services/component-generator.service.ts |   57 -
 .../src/app/services/filtering.service.spec.ts  |   67 -
 .../src/app/services/filtering.service.ts       |  352 -
 .../app/services/http-client.service.spec.ts    |   67 -
 .../src/app/services/http-client.service.ts     |  138 -
 .../app/services/logs-container.service.spec.ts |   82 -
 .../src/app/services/logs-container.service.ts  |  148 -
 .../app/services/mock-api-data.service.spec.ts  |   81 -
 .../src/app/services/mock-api-data.service.ts   |  178 -
 .../services/storage/app-settings.service.ts    |   33 -
 .../app/services/storage/app-state.service.ts   |   33 -
 .../storage/audit-logs-fields.service.ts        |   32 -
 .../app/services/storage/audit-logs.service.ts  |   32 -
 .../app/services/storage/clusters.service.ts    |   32 -
 .../app/services/storage/components.service.ts  |   32 -
 .../src/app/services/storage/filters.service.ts |   33 -
 .../src/app/services/storage/graphs.service.ts  |   33 -
 .../src/app/services/storage/hosts.service.ts   |   32 -
 .../app/services/storage/reducers.service.ts    |   52 -
 .../storage/service-logs-fields.service.ts      |   32 -
 .../service-logs-histogram-data.service.ts      |   32 -
 .../services/storage/service-logs.service.ts    |   32 -
 .../services/storage/user-configs.service.ts    |   33 -
 .../src/app/services/utils.service.spec.ts      |   86 -
 .../src/app/services/utils.service.ts           |   46 -
 .../src/assets/i18n/en.json                     |  124 -
 .../src/environments/environment.prod.ts        |   21 -
 .../src/environments/environment.ts             |   21 -
 .../ambari-logsearch-web-new/src/favicon.ico    |  Bin 1150 -> 0 bytes
 .../ambari-logsearch-web-new/src/index.html     |   31 -
 .../ambari-logsearch-web-new/src/main.ts        |   29 -
 .../ambari-logsearch-web-new/src/polyfills.ts   |   86 -
 .../ambari-logsearch-web-new/src/styles.less    |   17 -
 .../ambari-logsearch-web-new/src/test.ts        |   50 -
 .../src/tsconfig.app.json                       |   13 -
 .../src/tsconfig.spec.json                      |   20 -
 .../ambari-logsearch-web-new/src/typings.d.ts   |   23 -
 .../src/vendor/css/bootstrap-logsearch.min.css  |   18 -
 .../vendor/css/fonts/Roboto-Regular-webfont.eot |  Bin 79547 -> 0 bytes
 .../vendor/css/fonts/Roboto-Regular-webfont.svg | 7606 ---------------
 .../vendor/css/fonts/Roboto-Regular-webfont.ttf |  Bin 234464 -> 0 bytes
 .../css/fonts/Roboto-Regular-webfont.woff       |  Bin 105700 -> 0 bytes
 .../src/vendor/js/WorldMapGenerator.min.js      |   11 -
 .../src/vendor/js/bootstrap-logsearch.min.js    |   19 -
 .../ambari-logsearch-web-new/tsconfig.json      |   31 -
 .../ambari-logsearch-web-new/tslint.json        |  116 -
 .../ambari-logsearch-web-new/yarn.lock          | 5766 ------------
 .../ambari-logsearch-web/.angular-cli.json      |   64 +
 ambari-logsearch/ambari-logsearch-web/.bowerrc  |    3 -
 .../ambari-logsearch-web/.editorconfig          |   13 +
 .../ambari-logsearch-web/.gitignore             |   43 +-
 .../ambari-logsearch-web/Gruntfile.js           |  139 -
 .../ambari-logsearch-web/LICENSE.txt            |  339 -
 ambari-logsearch/ambari-logsearch-web/README.md |   28 +
 .../ambari-logsearch-web/bower.json             |   39 -
 .../ambari-logsearch-web/build.properties       |   12 -
 ambari-logsearch/ambari-logsearch-web/build.xml |   37 -
 .../ambari-logsearch-web/e2e/app.e2e-spec.ts    |   32 +
 .../ambari-logsearch-web/e2e/app.po.ts          |   29 +
 .../ambari-logsearch-web/e2e/tsconfig.e2e.json  |   12 +
 .../ambari-logsearch-web/karma.conf.js          |   62 +
 .../ambari-logsearch-web/package.json           |   75 +-
 ambari-logsearch/ambari-logsearch-web/pom.xml   |  143 +-
 .../ambari-logsearch-web/protractor.conf.js     |   48 +
 .../ambari-logsearch-web/src/app/app.module.ts  |  169 +
 .../queries/audit-logs-query-params.class.ts    |   50 +
 .../app/classes/queries/query-params.class.ts   |   23 +
 ...ce-logs-histogram-query-params.class.spec.ts |  203 +
 ...service-logs-histogram-query-params.class.ts |   69 +
 .../queries/service-logs-query-params.class.ts  |   31 +
 .../accordion-panel.component.html              |   25 +
 .../accordion-panel.component.less              |   42 +
 .../accordion-panel.component.spec.ts           |   42 +
 .../accordion-panel.component.ts                |   33 +
 .../src/app/components/app.component.html       |   34 +
 .../src/app/components/app.component.less       |   51 +
 .../src/app/components/app.component.spec.ts    |   71 +
 .../src/app/components/app.component.ts         |   45 +
 .../dropdown-button.component.html              |   25 +
 .../dropdown-button.component.less              |   32 +
 .../dropdown-button.component.spec.ts           |   79 +
 .../dropdown-button.component.ts                |   96 +
 .../dropdown-list/dropdown-list.component.html  |   31 +
 .../dropdown-list/dropdown-list.component.less  |   41 +
 .../dropdown-list.component.spec.ts             |  130 +
 .../dropdown-list/dropdown-list.component.ts    |   63 +
 .../filter-button.component.spec.ts             |   78 +
 .../filter-button/filter-button.component.ts    |   80 +
 .../filter-dropdown.component.spec.ts           |   92 +
 .../filter-dropdown.component.ts                |   63 +
 .../filter-text-field.component.html            |   21 +
 .../filter-text-field.component.less            |   33 +
 .../filter-text-field.component.spec.ts         |   82 +
 .../filter-text-field.component.ts              |   87 +
 .../filters-panel/filters-panel.component.html  |   46 +
 .../filters-panel/filters-panel.component.less  |   51 +
 .../filters-panel.component.spec.ts             |   93 +
 .../filters-panel/filters-panel.component.ts    |   44 +
 .../login-form/login-form.component.html        |   33 +
 .../login-form/login-form.component.less        |   22 +
 .../login-form/login-form.component.spec.ts     |  122 +
 .../login-form/login-form.component.ts          |   59 +
 .../logs-container.component.html               |   22 +
 .../logs-container.component.less               |   25 +
 .../logs-container.component.spec.ts            |  102 +
 .../logs-container/logs-container.component.ts  |  105 +
 .../logs-list/logs-list.component.html          |   54 +
 .../logs-list/logs-list.component.less          |  138 +
 .../logs-list/logs-list.component.spec.ts       |  102 +
 .../components/logs-list/logs-list.component.ts |   62 +
 .../main-container.component.html               |   24 +
 .../main-container.component.less               |   24 +
 .../main-container.component.spec.ts            |   65 +
 .../main-container/main-container.component.ts  |   66 +
 .../menu-button/menu-button.component.html      |   28 +
 .../menu-button/menu-button.component.less      |   33 +
 .../menu-button/menu-button.component.spec.ts   |  133 +
 .../menu-button/menu-button.component.ts        |   97 +
 .../app/components/modal/modal.component.html   |   40 +
 .../components/modal/modal.component.spec.ts    |   57 +
 .../src/app/components/modal/modal.component.ts |  122 +
 .../components/node-bar/node-bar.component.html |   19 +
 .../components/node-bar/node-bar.component.less |   39 +
 .../node-bar/node-bar.component.spec.ts         |   43 +
 .../components/node-bar/node-bar.component.ts   |   35 +
 .../pagination-controls.component.html          |   23 +
 .../pagination-controls.component.less          |   23 +
 .../pagination-controls.component.spec.ts       |   43 +
 .../pagination-controls.component.ts            |   73 +
 .../pagination/pagination.component.html        |   24 +
 .../pagination/pagination.component.less        |   28 +
 .../pagination/pagination.component.spec.ts     |   69 +
 .../pagination/pagination.component.ts          |   72 +
 .../time-histogram.component.html               |   18 +
 .../time-histogram.component.less               |   29 +
 .../time-histogram.component.spec.ts            |   53 +
 .../time-histogram/time-histogram.component.ts  |  161 +
 .../timezone-picker.component.html              |   26 +
 .../timezone-picker.component.less              |   45 +
 .../timezone-picker.component.spec.ts           |   73 +
 .../timezone-picker.component.ts                |   77 +
 .../components/top-menu/top-menu.component.html |   21 +
 .../components/top-menu/top-menu.component.less |   22 +
 .../top-menu/top-menu.component.spec.ts         |   45 +
 .../components/top-menu/top-menu.component.ts   |  122 +
 .../src/app/components/variables.less           |  118 +
 .../ambari-logsearch-web/src/app/mock-data.ts   | 1067 +++
 .../src/app/models/app-settings.model.ts        |   27 +
 .../src/app/models/app-state.model.ts           |   33 +
 .../src/app/models/audit-log-field.model.ts     |  225 +
 .../src/app/models/audit-log.model.ts           |   46 +
 .../src/app/models/bar-graph.model.ts           |   24 +
 .../src/app/models/common-entry.model.ts        |   22 +
 .../src/app/models/count.model.ts               |   22 +
 .../src/app/models/filter.model.ts              |   25 +
 .../src/app/models/graph.model.ts               |   23 +
 .../src/app/models/log-field.model.ts           |   27 +
 .../src/app/models/log.model.ts                 |   37 +
 .../src/app/models/node.model.ts                |   29 +
 .../src/app/models/service-log-field.model.ts   |  107 +
 .../src/app/models/service-log.model.ts         |   27 +
 .../app/models/solr-collection-state.model.ts   |   23 +
 .../src/app/models/store.model.ts               |  169 +
 .../src/app/models/user-config.model.ts         |   26 +
 .../src/app/pipes/timezone-abbr.pipe.spec.ts    |   26 +
 .../src/app/pipes/timezone-abbr.pipe.ts         |   31 +
 .../services/component-actions.service.spec.ts  |   43 +
 .../app/services/component-actions.service.ts   |   53 +
 .../component-generator.service.spec.ts         |   84 +
 .../app/services/component-generator.service.ts |   57 +
 .../src/app/services/filtering.service.spec.ts  |   67 +
 .../src/app/services/filtering.service.ts       |  352 +
 .../app/services/http-client.service.spec.ts    |   67 +
 .../src/app/services/http-client.service.ts     |  138 +
 .../app/services/logs-container.service.spec.ts |   82 +
 .../src/app/services/logs-container.service.ts  |  148 +
 .../app/services/mock-api-data.service.spec.ts  |   81 +
 .../src/app/services/mock-api-data.service.ts   |  178 +
 .../services/storage/app-settings.service.ts    |   33 +
 .../app/services/storage/app-state.service.ts   |   33 +
 .../storage/audit-logs-fields.service.ts        |   32 +
 .../app/services/storage/audit-logs.service.ts  |   32 +
 .../app/services/storage/clusters.service.ts    |   32 +
 .../app/services/storage/components.service.ts  |   32 +
 .../src/app/services/storage/filters.service.ts |   33 +
 .../src/app/services/storage/graphs.service.ts  |   33 +
 .../src/app/services/storage/hosts.service.ts   |   32 +
 .../app/services/storage/reducers.service.ts    |   52 +
 .../storage/service-logs-fields.service.ts      |   32 +
 .../service-logs-histogram-data.service.ts      |   32 +
 .../services/storage/service-logs.service.ts    |   32 +
 .../services/storage/user-configs.service.ts    |   33 +
 .../src/app/services/utils.service.spec.ts      |   86 +
 .../src/app/services/utils.service.ts           |   46 +
 .../src/assets/i18n/en.json                     |  124 +
 .../src/environments/environment.prod.ts        |   21 +
 .../src/environments/environment.ts             |   21 +
 .../ambari-logsearch-web/src/favicon.ico        |  Bin 0 -> 1150 bytes
 .../ambari-logsearch-web/src/index.html         |   31 +
 .../ambari-logsearch-web/src/main.ts            |   29 +
 .../src/main/webapp/404.html                    |  170 -
 .../src/main/webapp/ajax_failure.jsp            |   31 -
 .../src/main/webapp/ajax_success.html           |   26 -
 .../src/main/webapp/favicon.ico                 |  Bin 1150 -> 0 bytes
 .../webapp/fonts/fontawesome/FontAwesome.otf    |  Bin 61896 -> 0 bytes
 .../fonts/fontawesome/fontawesome-webfont.eot   |  Bin 37405 -> 0 bytes
 .../fonts/fontawesome/fontawesome-webfont.svg   |  415 -
 .../fonts/fontawesome/fontawesome-webfont.ttf   |  Bin 79076 -> 0 bytes
 .../fonts/fontawesome/fontawesome-webfont.woff  |  Bin 43572 -> 0 bytes
 .../fonts/fontopensans/open-sans-300.woff       |  Bin 22656 -> 0 bytes
 .../fonts/fontopensans/open-sans-300i.woff      |  Bin 21524 -> 0 bytes
 .../fonts/fontopensans/open-sans-400.woff       |  Bin 21956 -> 0 bytes
 .../fonts/fontopensans/open-sans-400i.woff      |  Bin 21092 -> 0 bytes
 .../fonts/fontopensans/open-sans-600.woff       |  Bin 22604 -> 0 bytes
 .../fonts/fontopensans/open-sans-600i.woff      |  Bin 21252 -> 0 bytes
 .../fonts/fontopensans/open-sans-700.woff       |  Bin 22748 -> 0 bytes
 .../fonts/fontopensans/open-sans-700i.woff      |  Bin 21184 -> 0 bytes
 .../main/webapp/images/System-Settings-icon.png |  Bin 17540 -> 0 bytes
 .../src/main/webapp/images/avatar.png           |  Bin 761 -> 0 bytes
 .../src/main/webapp/images/blank.gif            |  Bin 43 -> 0 bytes
 .../src/main/webapp/images/blockLoading.gif     |  Bin 3209 -> 0 bytes
 .../src/main/webapp/images/body-bg.png          |  Bin 3375 -> 0 bytes
 .../src/main/webapp/images/cancel_search.png    |  Bin 541 -> 0 bytes
 .../src/main/webapp/images/clear.png            |  Bin 509 -> 0 bytes
 .../src/main/webapp/images/comp.png             |  Bin 1603 -> 0 bytes
 .../src/main/webapp/images/data-grey.png        |  Bin 1468 -> 0 bytes
 .../main/webapp/images/database_table_32.png    |  Bin 1329 -> 0 bytes
 .../src/main/webapp/images/error-404-icon.png   |  Bin 2529 -> 0 bytes
 .../src/main/webapp/images/error-500-icon.png   |  Bin 2986 -> 0 bytes
 .../src/main/webapp/images/folder-grey.png      |  Bin 1372 -> 0 bytes
 .../src/main/webapp/images/folder.png           |  Bin 920 -> 0 bytes
 .../src/main/webapp/images/folder2.png          |  Bin 946 -> 0 bytes
 .../src/main/webapp/images/form.png             |  Bin 3329 -> 0 bytes
 .../src/main/webapp/images/hbase.jpg            |  Bin 4575 -> 0 bytes
 .../src/main/webapp/images/hdfs.jpg             |  Bin 5232 -> 0 bytes
 .../src/main/webapp/images/hive.png             |  Bin 20483 -> 0 bytes
 .../src/main/webapp/images/hline.png            |  Bin 99 -> 0 bytes
 .../src/main/webapp/images/icon-collapse.png    |  Bin 18815 -> 0 bytes
 .../src/main/webapp/images/icon-expand.png      |  Bin 20092 -> 0 bytes
 .../src/main/webapp/images/knox.gif             |  Bin 2347 -> 0 bytes
 .../src/main/webapp/images/knox1.png            |  Bin 34126 -> 0 bytes
 .../src/main/webapp/images/loading.gif          |  Bin 1849 -> 0 bytes
 .../src/main/webapp/images/loading_game.gif     |  Bin 16098 -> 0 bytes
 .../src/main/webapp/images/logo-white.png       |  Bin 4538 -> 0 bytes
 .../src/main/webapp/images/logo.png             |  Bin 1168 -> 0 bytes
 .../src/main/webapp/images/router-grey.png      |  Bin 1533 -> 0 bytes
 .../src/main/webapp/images/search_glyph.png     |  Bin 420 -> 0 bytes
 .../src/main/webapp/images/sortingCollapse.png  |  Bin 13320 -> 0 bytes
 .../src/main/webapp/images/sortingExpand.png    |  Bin 13283 -> 0 bytes
 .../src/main/webapp/images/storm.png            |  Bin 6174 -> 0 bytes
 .../src/main/webapp/images/storm1.png           |  Bin 19620 -> 0 bytes
 .../src/main/webapp/images/task-grey.png        |  Bin 1187 -> 0 bytes
 .../src/main/webapp/images/timezone.png         |  Bin 353544 -> 0 bytes
 .../src/main/webapp/index.html                  |  108 -
 .../backbone-pageable/backbone-pageable.min.js  |    8 -
 .../webapp/libs/bower/backbone.fetch-cache.js   |  326 -
 .../src/main/webapp/libs/bower/d3/d3.tip.js     |  293 -
 .../webapp/libs/bower/dashboard/dashboard.js    |  393 -
 .../bower/font-awesome/css/font-awesome.css     | 1801 ----
 .../bower/font-awesome/css/font-awesome.min.css |    4 -
 .../bower/font-awesome/fonts/FontAwesome.otf    |  Bin 61896 -> 0 bytes
 .../font-awesome/fonts/fontawesome-webfont.eot  |  Bin 37405 -> 0 bytes
 .../font-awesome/fonts/fontawesome-webfont.svg  |  415 -
 .../font-awesome/fonts/fontawesome-webfont.ttf  |  Bin 79076 -> 0 bytes
 .../font-awesome/fonts/fontawesome-webfont.woff |  Bin 43572 -> 0 bytes
 .../fonts/fontawesome-webfont.woff2             |  Bin 56780 -> 0 bytes
 .../libs/bower/font-awesome/less/animated.less  |   34 -
 .../font-awesome/less/bordered-pulled.less      |   16 -
 .../libs/bower/font-awesome/less/core.less      |   13 -
 .../bower/font-awesome/less/fixed-width.less    |    6 -
 .../bower/font-awesome/less/font-awesome.less   |   17 -
 .../libs/bower/font-awesome/less/icons.less     |  596 --
 .../libs/bower/font-awesome/less/larger.less    |   13 -
 .../libs/bower/font-awesome/less/list.less      |   19 -
 .../libs/bower/font-awesome/less/mixins.less    |   27 -
 .../libs/bower/font-awesome/less/path.less      |   15 -
 .../font-awesome/less/rotated-flipped.less      |   20 -
 .../libs/bower/font-awesome/less/stacked.less   |   20 -
 .../libs/bower/font-awesome/less/variables.less |  606 --
 .../libs/bower/font-awesome/scss/_animated.scss |   34 -
 .../font-awesome/scss/_bordered-pulled.scss     |   16 -
 .../libs/bower/font-awesome/scss/_core.scss     |   13 -
 .../bower/font-awesome/scss/_fixed-width.scss   |    6 -
 .../libs/bower/font-awesome/scss/_icons.scss    |  596 --
 .../libs/bower/font-awesome/scss/_larger.scss   |   13 -
 .../libs/bower/font-awesome/scss/_list.scss     |   19 -
 .../libs/bower/font-awesome/scss/_mixins.scss   |   27 -
 .../libs/bower/font-awesome/scss/_path.scss     |   15 -
 .../font-awesome/scss/_rotated-flipped.scss     |   20 -
 .../libs/bower/font-awesome/scss/_stacked.scss  |   20 -
 .../bower/font-awesome/scss/_variables.scss     |  606 --
 .../bower/font-awesome/scss/font-awesome.scss   |   17 -
 .../jquery-ui/css/images/animated-overlay.gif   |  Bin 1738 -> 0 bytes
 .../ui-bg_diagonals-thick_18_b81900_40x40.png   |  Bin 418 -> 0 bytes
 .../ui-bg_diagonals-thick_20_666666_40x40.png   |  Bin 312 -> 0 bytes
 .../css/images/ui-bg_flat_0_aaaaaa_40x100.png   |  Bin 180 -> 0 bytes
 .../css/images/ui-bg_flat_10_000000_40x100.png  |  Bin 205 -> 0 bytes
 .../css/images/ui-bg_glass_100_f6f6f6_1x400.png |  Bin 262 -> 0 bytes
 .../css/images/ui-bg_glass_100_fdf5ce_1x400.png |  Bin 348 -> 0 bytes
 .../css/images/ui-bg_glass_65_ffffff_1x400.png  |  Bin 207 -> 0 bytes
 .../ui-bg_gloss-wave_35_f6a828_500x100.png      |  Bin 5815 -> 0 bytes
 .../ui-bg_highlight-soft_100_eeeeee_1x100.png   |  Bin 278 -> 0 bytes
 .../ui-bg_highlight-soft_75_ffe45c_1x100.png    |  Bin 328 -> 0 bytes
 .../css/images/ui-icons_222222_256x240.png      |  Bin 6922 -> 0 bytes
 .../css/images/ui-icons_228ef1_256x240.png      |  Bin 4549 -> 0 bytes
 .../css/images/ui-icons_454545_256x240.png      |  Bin 4369 -> 0 bytes
 .../css/images/ui-icons_888888_256x240.png      |  Bin 4369 -> 0 bytes
 .../css/images/ui-icons_ef8c08_256x240.png      |  Bin 4549 -> 0 bytes
 .../css/images/ui-icons_ffd27a_256x240.png      |  Bin 4549 -> 0 bytes
 .../css/images/ui-icons_ffffff_256x240.png      |  Bin 6299 -> 0 bytes
 .../bower/jquery-ui/css/jquery-ui-1.11.4.css    |  850 --
 .../jquery-ui/css/jquery-ui-1.11.4.min.css      |    7 -
 .../bower/jquery-ui/css/jquery-ui-bootstrap.css | 2549 -----
 .../libs/bower/jquery-ui/js/jquery-ui-1.11.4.js | 8772 ------------------
 .../bower/jquery-ui/js/jquery-ui-1.11.4.min.js  |   10 -
 .../src/main/webapp/libs/bower/loadCSS.js       |   73 -
 .../require-handlebars-plugin/Handlebars.js     | 2752 ------
 .../webapp/libs/bower/select2/select2x2.png     |  Bin 845 -> 0 bytes
 .../libs/bower/sparkline/jquery.sparkline.js    | 3054 ------
 .../Backgrid.ColumnManager.css                  |  114 -
 .../Backgrid.ColumnManager.js                   | 1045 ---
 .../daterangepicker/css/daterangepicker.css     |  415 -
 .../daterangepicker/js/daterangepicker.js       | 1560 ----
 .../libs/custom/timezone/WorldMapGenerator.js   | 3474 -------
 .../libs/custom/timezone/jstz-1.0.4.min.js      |    2 -
 .../webapp/libs/custom/visualsearch/.bower.json |   45 -
 .../custom/visualsearch/models/search_facets.js |   67 -
 .../custom/visualsearch/models/search_query.js  |   70 -
 .../visualsearch/templates/search_box.jst       |    8 -
 .../visualsearch/templates/search_facet.jst     |    9 -
 .../visualsearch/templates/search_input.jst     |    1 -
 .../custom/visualsearch/templates/templates.js  |    7 -
 .../visualsearch/utils/backbone_extensions.js   |   17 -
 .../libs/custom/visualsearch/utils/hotkeys.js   |   99 -
 .../libs/custom/visualsearch/utils/inflector.js |   21 -
 .../visualsearch/utils/jquery_extensions.js     |  197 -
 .../custom/visualsearch/utils/search_parser.js  |   87 -
 .../custom/visualsearch/views/search_box.js     |  458 -
 .../custom/visualsearch/views/search_facet.js   |  442 -
 .../custom/visualsearch/views/search_input.js   |  418 -
 .../libs/custom/visualsearch/visualsearch.js    | 1984 ----
 .../src/main/webapp/login.html                  |  154 -
 .../src/main/webapp/robots.txt                  |    3 -
 .../src/main/webapp/scripts/App.js              |   86 -
 .../src/main/webapp/scripts/Init.js             |  196 -
 .../src/main/webapp/scripts/Main.js             |   35 -
 .../src/main/webapp/scripts/RegionManager.js    |   83 -
 .../collection_bases/VAuditLogListBase.js       |   73 -
 .../collection_bases/VEventHistoryListBase.js   |   87 -
 .../scripts/collection_bases/VGroupListBase.js  |   82 -
 .../collection_bases/VLogLevelListBase.js       |   96 -
 .../scripts/collection_bases/VLogListBase.js    |  127 -
 .../collection_bases/VNameValueListBase.js      |   57 -
 .../scripts/collection_bases/VNodeListBase.js   |   74 -
 .../scripts/collections/BaseCollection.js       |  172 -
 .../scripts/collections/SchemaFieldList.js      |   29 -
 .../webapp/scripts/collections/VAuditLogList.js |   36 -
 .../scripts/collections/VEventHistoryList.js    |   33 -
 .../webapp/scripts/collections/VGroupList.js    |   36 -
 .../webapp/scripts/collections/VLogLevelList.js |   36 -
 .../main/webapp/scripts/collections/VLogList.js |   36 -
 .../scripts/collections/VNameValueList.js       |   36 -
 .../webapp/scripts/collections/VNodeList.js     |   36 -
 .../src/main/webapp/scripts/communicator.js     |   61 -
 .../webapp/scripts/controllers/Controller.js    |  240 -
 .../webapp/scripts/model_bases/VAuditLogBase.js |   61 -
 .../scripts/model_bases/VCommonModelBase.js     |   51 -
 .../scripts/model_bases/VEventHistoryBase.js    |   51 -
 .../scripts/model_bases/VGraphInfoBase.js       |   62 -
 .../webapp/scripts/model_bases/VGroupBase.js    |   51 -
 .../main/webapp/scripts/model_bases/VLogBase.js |   51 -
 .../webapp/scripts/model_bases/VLogLevelBase.js |   51 -
 .../scripts/model_bases/VNameValueBase.js       |   51 -
 .../webapp/scripts/model_bases/VNodeBase.js     |   51 -
 .../scripts/model_bases/VUserFilterBase.js      |   51 -
 .../src/main/webapp/scripts/models/BaseModel.js |  110 -
 .../src/main/webapp/scripts/models/VAppState.js |   44 -
 .../src/main/webapp/scripts/models/VAuditLog.js |   47 -
 .../main/webapp/scripts/models/VCommonModel.js  |   48 -
 .../main/webapp/scripts/models/VEventHistory.js |   48 -
 .../main/webapp/scripts/models/VGraphInfo.js    |   53 -
 .../src/main/webapp/scripts/models/VGroup.js    |   53 -
 .../src/main/webapp/scripts/models/VLog.js      |   66 -
 .../src/main/webapp/scripts/models/VLogLevel.js |   47 -
 .../main/webapp/scripts/models/VNameValue.js    |   47 -
 .../src/main/webapp/scripts/models/VNode.js     |   48 -
 .../main/webapp/scripts/models/VUserFilter.js   |   51 -
 .../main/webapp/scripts/modules/Overrides.js    |  234 -
 .../src/main/webapp/scripts/modules/Vent.js     |   26 -
 .../scripts/modules/globalize/message/en.js     |   79 -
 .../main/webapp/scripts/prelogin/Prelogin.js    |  130 -
 .../src/main/webapp/scripts/utils/Enums.js      |   32 -
 .../src/main/webapp/scripts/utils/Globals.js    |   91 -
 .../main/webapp/scripts/utils/LangSupport.js    |  151 -
 .../src/main/webapp/scripts/utils/Tour.js       |  461 -
 .../src/main/webapp/scripts/utils/Utils.js      | 1241 ---
 .../src/main/webapp/scripts/utils/ViewUtils.js  |  266 -
 .../webapp/scripts/utils/XATemplateHelpers.js   |  170 -
 .../scripts/views/audit/AuditAggregatedView.js  |  416 -
 .../scripts/views/audit/AuditTabLayoutView.js   |  429 -
 .../scripts/views/common/AdvanceSearchLayout.js |  146 -
 .../webapp/scripts/views/common/BreadCrumbs.js  |   83 -
 .../scripts/views/common/CustomBackgrid.js      |  284 -
 .../scripts/views/common/DatePickerLayout.js    |  228 -
 .../webapp/scripts/views/common/ErrorView.js    |  100 -
 .../scripts/views/common/EventHistoryLayout.js  |  486 -
 .../main/webapp/scripts/views/common/Footer.js  |   80 -
 .../main/webapp/scripts/views/common/Header.js  |  481 -
 .../webapp/scripts/views/common/JBDialog.js     |  211 -
 .../scripts/views/common/LogSnapShotLayout.js   |  141 -
 .../webapp/scripts/views/common/ProfileBar.js   |  105 -
 .../main/webapp/scripts/views/common/Spinner.js |   85 -
 .../webapp/scripts/views/common/TableLayout.js  |  405 -
 .../webapp/scripts/views/common/TimerView.js    |  126 -
 .../main/webapp/scripts/views/common/TopNav.js  |   93 -
 .../dashboard/BubbleGraphTableLayoutView.js     |  716 --
 .../views/dashboard/ComponentListView.js        |  319 -
 .../scripts/views/dashboard/ComponentsView.js   |   98 -
 .../scripts/views/dashboard/DashboardView.js    |  184 -
 .../views/dashboard/GridTableLayoutView.js      |  219 -
 .../scripts/views/dashboard/HostListView.js     |  356 -
 .../webapp/scripts/views/dashboard/HostsView.js |   98 -
 .../scripts/views/dashboard/LogDetailView.js    |  249 -
 .../scripts/views/dashboard/LogLevelBoxView.js  |  155 -
 .../scripts/views/dashboard/LogLevelView.js     |  118 -
 .../scripts/views/dashboard/MainLayoutView.js   |  670 --
 .../views/dialog/ApplySearchFilterView.js       |  214 -
 .../scripts/views/dialog/DetailLogFileView.js   |  167 -
 .../dialog/GlobalExclusionCompositeView.js      |  141 -
 .../views/dialog/GlobalExclusionItemView.js     |   84 -
 .../views/dialog/GridGraphSettingView.js        |  476 -
 .../views/dialog/SaveSearchFilterView.js        |  120 -
 .../scripts/views/dialog/TimeZoneChangeView.js  |  101 -
 .../views/filter/CreateLogfeederFilterView.js   |  383 -
 .../scripts/views/graphs/GraphLayoutView.js     |  559 --
 .../scripts/views/graphs/GridGraphLayoutView.js |  594 --
 .../scripts/views/tabs/ComparisonLayoutView.js  |   93 -
 .../webapp/scripts/views/tabs/ComparisonView.js |  242 -
 .../views/tabs/EventHistoryLayoutView.js        |  506 -
 .../scripts/views/tabs/ExportLogFileView.js     |   50 -
 .../views/tabs/HierarchyTabLayoutView.js        |  429 -
 .../scripts/views/tabs/HostInfoTabLayoutView.js |  178 -
 .../webapp/scripts/views/tabs/LogFileView.js    |  864 --
 .../main/webapp/scripts/views/tabs/TreeView.js  |  365 -
 .../scripts/views/tabs/VisualSearchView.js      |  202 -
 .../troubleshoot/TroubleShootLayoutView.js      |  553 --
 .../src/main/webapp/static/schema_fields.json   |   90 -
 .../src/main/webapp/styles/animate.css          | 3272 -------
 .../src/main/webapp/styles/app-font.css         |   64 -
 .../src/main/webapp/styles/bootstrap.css        | 6422 -------------
 .../src/main/webapp/styles/bootstrap.min.css    | 6422 -------------
 .../main/webapp/styles/custom/visualsearch.css  |  369 -
 .../src/main/webapp/styles/style.css            | 2964 ------
 .../src/main/webapp/styles/style_v2.css         | 2596 ------
 .../audit/AuditAggregatedView_tmpl.html         |   54 -
 .../audit/AuditTabLayoutView_tmpl.html          |  100 -
 .../common/AdvanceSearchLayout_tmpl.html        |   30 -
 .../templates/common/DatePickerLayout_tmpl.html |   29 -
 .../webapp/templates/common/ErrorView_tmpl.html |   28 -
 .../common/EventHistoryItemView_tmpl.html       |   32 -
 .../common/EventHistoryLayout_tmpl.html         |   44 -
 .../webapp/templates/common/Footer_tmpl.html    |   42 -
 .../webapp/templates/common/Header_tmpl.html    |   98 -
 .../common/LogSnapShotLayout_tmpl.html          |   23 -
 .../templates/common/TableLayout_tmpl.html      |   37 -
 .../webapp/templates/common/TimerView_tmpl.html |   25 -
 .../webapp/templates/common/TopNav_tmpl.html    |   52 -
 .../webapp/templates/common/breadcrumbs.html    |   46 -
 .../webapp/templates/common/formInputItem.html  |   54 -
 .../templates/common/formInputItemList.html     |   42 -
 .../webapp/templates/common/loading_tmpl.html   |   45 -
 .../BubbleGraphTableLayoutView_tmpl.html        |   79 -
 .../dashboard/ComponentListView_tmpl.html       |   35 -
 .../dashboard/ComponentsView_tmpl.html          |   57 -
 .../templates/dashboard/DashboardView_tmpl.html |  122 -
 .../dashboard/GridTableLayoutView_tmpl.html     |   28 -
 .../templates/dashboard/HostListView_tmpl.html  |   48 -
 .../templates/dashboard/HostsView_tmpl.html     |   56 -
 .../templates/dashboard/LogDetailView_tmpl.html |   75 -
 .../dashboard/LogLevelBoxView_tmpl.html         |   49 -
 .../templates/dashboard/LogLevelView_tmpl.html  |  110 -
 .../dashboard/MainLayoutView_tmpl.html          |  111 -
 .../dialog/ApplySearchFilterView_tmpl.html      |   30 -
 .../dialog/DetailLogFileView_tmpl.html          |   22 -
 .../GlobalExclusionCompositeView_tmpl.html      |   32 -
 .../dialog/GlobalExclusionItemView_tmpl.html    |   26 -
 .../dialog/GridGraphSettingView_tmpl.html       |  284 -
 .../dialog/SaveSearchFilterView_tmpl.html       |   70 -
 .../dialog/TimeZoneChangeView_tmpl.html         |  475 -
 .../filter/CreateLogfeederFilter_tmpl.html      |   53 -
 .../templates/graphs/GraphLayoutView_tmpl.html  |   50 -
 .../graphs/GridGraphLayoutView_tmpl.html        |   28 -
 .../src/main/webapp/templates/graphs/backup.js  |  586 --
 .../main/webapp/templates/helpers/Helpers.js    |  520 --
 .../tabs/ComparisonLayoutView_tmpl.html         |   20 -
 .../templates/tabs/ComparisonView_tmpl.html     |   56 -
 .../tabs/EventHistoryLayoutView_tmpl.html       |   45 -
 .../templates/tabs/ExportLogFileView_tmpl.html  |   46 -
 .../tabs/HierarchyTabLayoutView_tmpl.html       |  124 -
 .../tabs/HostInfoTabLayoutView_tmpl.html        |   46 -
 .../webapp/templates/tabs/LogFileView_tmpl.html |  122 -
 .../webapp/templates/tabs/TreeView_tmpl.html    |   54 -
 .../templates/tabs/VisualSearchView_tmpl.html   |   20 -
 .../TroubleShootLayoutView_tmpl.html            |  150 -
 .../main/webapp/themejs/1.3.0/bootstrap.min.js  |   19 -
 .../ambari-logsearch-web/src/polyfills.ts       |   86 +
 .../ambari-logsearch-web/src/styles.less        |   17 +
 .../ambari-logsearch-web/src/test.ts            |   50 +
 .../ambari-logsearch-web/src/tsconfig.app.json  |   13 +
 .../ambari-logsearch-web/src/tsconfig.spec.json |   20 +
 .../ambari-logsearch-web/src/typings.d.ts       |   23 +
 .../src/vendor/css/bootstrap-logsearch.min.css  |   18 +
 .../vendor/css/fonts/Roboto-Regular-webfont.eot |  Bin 0 -> 79547 bytes
 .../vendor/css/fonts/Roboto-Regular-webfont.svg | 7606 +++++++++++++++
 .../vendor/css/fonts/Roboto-Regular-webfont.ttf |  Bin 0 -> 234464 bytes
 .../css/fonts/Roboto-Regular-webfont.woff       |  Bin 0 -> 105700 bytes
 .../src/vendor/js/WorldMapGenerator.min.js      |   11 +
 .../src/vendor/js/bootstrap-logsearch.min.js    |   19 +
 .../ambari-logsearch-web/tsconfig.json          |   31 +
 .../ambari-logsearch-web/tslint.json            |  116 +
 ambari-logsearch/ambari-logsearch-web/yarn.lock | 5766 ++++++++++++
 ambari-logsearch/docker/bin/start.sh            |    1 -
 ambari-logsearch/docker/logsearch-docker.sh     |    4 +-
 .../LOGSEARCH/0.5.0/package/scripts/params.py   |    2 +-
 648 files changed, 23709 insertions(+), 105810 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/02360dd5/ambari-logsearch/ambari-logsearch-server/build.xml
----------------------------------------------------------------------
diff --git a/ambari-logsearch/ambari-logsearch-server/build.xml b/ambari-logsearch/ambari-logsearch-server/build.xml
index aadacd7..5c50485 100644
--- a/ambari-logsearch/ambari-logsearch-server/build.xml
+++ b/ambari-logsearch/ambari-logsearch-server/build.xml
@@ -32,6 +32,9 @@
     <copy todir="target/package/libs" includeEmptyDirs="no">
       <fileset dir="target/libs"/>
     </copy>
+    <copy todir="target/classes/static" includeEmptyDirs="no">
+      <fileset dir="target/dist"/>
+    </copy>
     <copy todir="target/package/classes" includeEmptyDirs="no">
       <fileset dir="target/classes"/>
     </copy>

http://git-wip-us.apache.org/repos/asf/ambari/blob/02360dd5/ambari-logsearch/ambari-logsearch-server/pom.xml
----------------------------------------------------------------------
diff --git a/ambari-logsearch/ambari-logsearch-server/pom.xml b/ambari-logsearch/ambari-logsearch-server/pom.xml
index e60cc14..e90c58d 100755
--- a/ambari-logsearch/ambari-logsearch-server/pom.xml
+++ b/ambari-logsearch/ambari-logsearch-server/pom.xml
@@ -77,6 +77,9 @@
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-maven-plugin</artifactId>
             <version>${spring-boot.version}</version>
+            <configuration>
+              <classifier>exec</classifier>
+            </configuration>
             <executions>
               <execution>
                 <goals>
@@ -102,8 +105,8 @@
                       <groupId>org.apache.ambari</groupId>
                       <artifactId>ambari-logsearch-web</artifactId>
                       <version>${project.version}</version>
-                      <outputDirectory>${project.build.outputDirectory}/</outputDirectory>
-                      <includes>static/**</includes>
+                      <outputDirectory>${project.build.directory}/</outputDirectory>
+                      <includes>dist/**</includes>
                     </artifactItem>
                   </artifactItems>
                 </configuration>

http://git-wip-us.apache.org/repos/asf/ambari/blob/02360dd5/ambari-logsearch/ambari-logsearch-server/src/main/java/org/apache/ambari/logsearch/auth/filter/AbstractJWTFilter.java
----------------------------------------------------------------------
diff --git a/ambari-logsearch/ambari-logsearch-server/src/main/java/org/apache/ambari/logsearch/auth/filter/AbstractJWTFilter.java b/ambari-logsearch/ambari-logsearch-server/src/main/java/org/apache/ambari/logsearch/auth/filter/AbstractJWTFilter.java
new file mode 100644
index 0000000..80fbf6b
--- /dev/null
+++ b/ambari-logsearch/ambari-logsearch-server/src/main/java/org/apache/ambari/logsearch/auth/filter/AbstractJWTFilter.java
@@ -0,0 +1,193 @@
+/*
+ * 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.
+ */
+package org.apache.ambari.logsearch.auth.filter;
+
+import io.jsonwebtoken.Claims;
+import io.jsonwebtoken.ExpiredJwtException;
+import io.jsonwebtoken.Jwts;
+import io.jsonwebtoken.MalformedJwtException;
+import io.jsonwebtoken.SignatureException;
+import org.apache.ambari.logsearch.auth.model.JWTAuthenticationToken;
+import org.apache.commons.lang.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.security.authentication.AnonymousAuthenticationToken;
+import org.springframework.security.authentication.BadCredentialsException;
+import org.springframework.security.core.Authentication;
+import org.springframework.security.core.AuthenticationException;
+import org.springframework.security.core.GrantedAuthority;
+import org.springframework.security.core.context.SecurityContextHolder;
+import org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter;
+import org.springframework.security.web.util.matcher.RequestMatcher;
+
+import javax.servlet.FilterChain;
+import javax.servlet.ServletException;
+import javax.servlet.ServletRequest;
+import javax.servlet.ServletResponse;
+import javax.servlet.http.Cookie;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.io.UnsupportedEncodingException;
+import java.security.cert.CertificateException;
+import java.security.cert.CertificateFactory;
+import java.security.cert.X509Certificate;
+import java.security.interfaces.RSAPublicKey;
+import java.util.Collection;
+import java.util.List;
+
+public abstract class AbstractJWTFilter extends AbstractAuthenticationProcessingFilter {
+
+  private static final Logger LOG = LoggerFactory.getLogger(AbstractJWTFilter.class);
+
+  private static final String PEM_HEADER = "-----BEGIN CERTIFICATE-----\n";
+  private static final String PEM_FOOTER = "\n-----END CERTIFICATE-----";
+
+  protected AbstractJWTFilter(RequestMatcher requestMatcher) {
+    super(requestMatcher);
+  }
+
+  @Override
+  public Authentication attemptAuthentication(HttpServletRequest request, HttpServletResponse response) throws AuthenticationException, IOException, ServletException {
+    if (StringUtils.isEmpty(getProvidedUrl())) {
+      throw new BadCredentialsException("Authentication provider URL must not be null or empty.");
+    }
+    if (StringUtils.isEmpty(getPublicKey())) {
+      throw new BadCredentialsException("Public key for signature validation must be provisioned.");
+    }
+
+    try {
+      Claims claims = Jwts
+        .parser()
+        .setSigningKey(parseRSAPublicKey(getPublicKey()))
+        .parseClaimsJws(getJWTFromCookie(request))
+        .getBody();
+
+      String userName  = claims.getSubject();
+      LOG.info("USERNAME: " + userName);
+      LOG.info("URL = " + request.getRequestURL());
+      if (StringUtils.isNotEmpty(claims.getAudience()) && !getAudiences().contains(claims.getAudience())) {
+        throw new IllegalArgumentException(String.format("Audience validation failed. (Not found: %s)", claims.getAudience()));
+      }
+      Authentication authentication = new JWTAuthenticationToken(userName, getPublicKey(), getAuthorities());
+      authentication.setAuthenticated(true);
+      SecurityContextHolder.getContext().setAuthentication(authentication);
+      return authentication;
+    } catch (ExpiredJwtException | MalformedJwtException | SignatureException | IllegalArgumentException e) {
+      LOG.info("URL = " + request.getRequestURL());
+      LOG.warn("Error during JWT authentication: ", e.getMessage());
+      throw new BadCredentialsException(e.getMessage(), e);
+    }
+  }
+
+  @Override
+  public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
+    Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
+    if (!isAuthJwtEnabled() || isAuthenticated(authentication)) {
+      chain.doFilter(req, res);
+      return;
+    }
+    super.doFilter(req, res, chain);
+  }
+
+  @Override
+  protected void successfulAuthentication(HttpServletRequest request, HttpServletResponse response, FilterChain chain, Authentication authResult) throws IOException, ServletException {
+    super.successfulAuthentication(request, response, chain, authResult);
+    response.sendRedirect(request.getRequestURL().toString() + getOriginalQueryString(request));
+  }
+
+  @Override
+  protected void unsuccessfulAuthentication(HttpServletRequest request, HttpServletResponse response, AuthenticationException failed) throws IOException, ServletException {
+    super.unsuccessfulAuthentication(request, response, failed);
+    String loginUrl = constructLoginURL(request);
+    response.sendRedirect(loginUrl);
+  }
+
+  private String getJWTFromCookie(HttpServletRequest req) {
+    String serializedJWT = null;
+    Cookie[] cookies = req.getCookies();
+    if (cookies != null) {
+      for (Cookie cookie : cookies) {
+        if (getCookieName().equals(cookie.getName())) {
+          LOG.info(getCookieName() + " cookie has been found and is being processed");
+          serializedJWT = cookie.getValue();
+          break;
+        }
+      }
+    }
+    return serializedJWT;
+  }
+
+  private RSAPublicKey parseRSAPublicKey(String pem) throws ServletException {
+    String fullPem = PEM_HEADER + pem + PEM_FOOTER;
+    try {
+      CertificateFactory fact = CertificateFactory.getInstance("X.509");
+      ByteArrayInputStream is = new ByteArrayInputStream(fullPem.getBytes("UTF8"));
+
+      X509Certificate cer = (X509Certificate) fact.generateCertificate(is);
+      return (RSAPublicKey) cer.getPublicKey();
+    } catch (CertificateException ce) {
+      String message;
+      if (pem.startsWith(PEM_HEADER)) {
+        message = "CertificateException - be sure not to include PEM header "
+          + "and footer in the PEM configuration element.";
+      } else {
+        message = "CertificateException - PEM may be corrupt";
+      }
+      throw new ServletException(message, ce);
+    } catch (UnsupportedEncodingException uee) {
+      throw new ServletException(uee);
+    }
+  }
+
+  private String constructLoginURL(HttpServletRequest request) {
+    String delimiter = "?";
+    if (getProvidedUrl().contains("?")) {
+      delimiter = "&";
+    }
+    return getProvidedUrl() + delimiter
+      + getOriginalUrlQueryParam() + "="
+      + request.getRequestURL().toString() + getOriginalQueryString(request);
+  }
+
+  private String getOriginalQueryString(HttpServletRequest request) {
+    String originalQueryString = request.getQueryString();
+    return (originalQueryString == null) ? "" : "?" + originalQueryString;
+  }
+
+  private boolean isAuthenticated(Authentication authentication) {
+    return authentication != null && !(authentication instanceof AnonymousAuthenticationToken) && authentication.isAuthenticated();
+  }
+
+  protected abstract String getPublicKey();
+
+  protected abstract String getProvidedUrl();
+
+  protected abstract boolean isAuthJwtEnabled();
+
+  protected abstract String getCookieName();
+
+  protected abstract String getOriginalUrlQueryParam();
+
+  protected abstract List<String> getAudiences();
+
+  protected abstract Collection<? extends GrantedAuthority> getAuthorities();
+
+}

http://git-wip-us.apache.org/repos/asf/ambari/blob/02360dd5/ambari-logsearch/ambari-logsearch-server/src/main/java/org/apache/ambari/logsearch/auth/model/JWTAuthenticationToken.java
----------------------------------------------------------------------
diff --git a/ambari-logsearch/ambari-logsearch-server/src/main/java/org/apache/ambari/logsearch/auth/model/JWTAuthenticationToken.java b/ambari-logsearch/ambari-logsearch-server/src/main/java/org/apache/ambari/logsearch/auth/model/JWTAuthenticationToken.java
new file mode 100644
index 0000000..5fb9f05
--- /dev/null
+++ b/ambari-logsearch/ambari-logsearch-server/src/main/java/org/apache/ambari/logsearch/auth/model/JWTAuthenticationToken.java
@@ -0,0 +1,47 @@
+/*
+ * 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.
+ */
+package org.apache.ambari.logsearch.auth.model;
+
+import org.springframework.security.authentication.AbstractAuthenticationToken;
+import org.springframework.security.core.GrantedAuthority;
+
+import java.util.Collection;
+
+public class JWTAuthenticationToken extends AbstractAuthenticationToken {
+
+  private String credential;
+
+  private String principal;
+
+  public JWTAuthenticationToken(String principal, String credential, Collection<? extends GrantedAuthority> authorities) {
+    super(authorities);
+    this.principal = principal;
+    this.credential = credential;
+  }
+
+  @Override
+  public Object getCredentials() {
+    return credential;
+  }
+
+  @Override
+  public Object getPrincipal() {
+    return principal;
+  }
+}

http://git-wip-us.apache.org/repos/asf/ambari/blob/02360dd5/ambari-logsearch/ambari-logsearch-server/src/main/java/org/apache/ambari/logsearch/conf/SecurityConfig.java
----------------------------------------------------------------------
diff --git a/ambari-logsearch/ambari-logsearch-server/src/main/java/org/apache/ambari/logsearch/conf/SecurityConfig.java b/ambari-logsearch/ambari-logsearch-server/src/main/java/org/apache/ambari/logsearch/conf/SecurityConfig.java
index 038ba5c..5ba0ac0 100644
--- a/ambari-logsearch/ambari-logsearch-server/src/main/java/org/apache/ambari/logsearch/conf/SecurityConfig.java
+++ b/ambari-logsearch/ambari-logsearch-server/src/main/java/org/apache/ambari/logsearch/conf/SecurityConfig.java
@@ -6,9 +6,9 @@
  * 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
@@ -102,9 +102,6 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter {
         .antMatchers("/**").authenticated()
       .and()
       .authenticationProvider(logsearchAuthenticationProvider())
-        .formLogin()
-        .loginPage("/login.html")
-      .and()
       .httpBasic()
         .authenticationEntryPoint(logsearchAuthenticationEntryPoint())
       .and()
@@ -118,7 +115,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter {
       .addFilterBefore(logsearchCorsFilter(), LogsearchSecurityContextFormationFilter.class)
       .addFilterBefore(logsearchJwtFilter(), LogsearchSecurityContextFormationFilter.class)
       .logout()
-        .logoutUrl("/logout.html")
+        .logoutUrl("/logout")
         .deleteCookies(LOGSEARCH_SESSION_ID)
         .logoutSuccessHandler(new LogsearchLogoutSuccessHandler());
   }
@@ -154,7 +151,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter {
 
   @Bean
   public LogsearchAuthenticationEntryPoint logsearchAuthenticationEntryPoint() {
-    LogsearchAuthenticationEntryPoint entryPoint = new LogsearchAuthenticationEntryPoint("/login.html");
+    LogsearchAuthenticationEntryPoint entryPoint = new LogsearchAuthenticationEntryPoint("/login");
     entryPoint.setForceHttps(false);
     return entryPoint;
   }
@@ -182,7 +179,8 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter {
   public LogsearchEventHistoryStateFilter logsearchEventHistoryFilter() {
     return new LogsearchEventHistoryStateFilter(eventHistoryRequestMatcher(), solrEventHistoryState, solrEventHistoryPropsConfig);
   }
-  
+
+  @Bean
   public LogSearchConfigStateFilter logSearchConfigStateFilter() {
     return new LogSearchConfigStateFilter(logsearchConfigRequestMatcher(), logSearchConfigState);
   }
@@ -193,15 +191,23 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter {
     matchers.add(new AntPathRequestMatcher("/docs/**"));
     matchers.add(new AntPathRequestMatcher("/swagger-ui/**"));
     matchers.add(new AntPathRequestMatcher("/swagger.html"));
-    matchers.add(new AntPathRequestMatcher("/login.html"));
-    matchers.add(new AntPathRequestMatcher("/logout.html"));
-    matchers.add(new AntPathRequestMatcher("/styles/**"));
-    matchers.add(new AntPathRequestMatcher("/fonts/**"));
-    matchers.add(new AntPathRequestMatcher("/scripts/**"));
-    matchers.add(new AntPathRequestMatcher("/libs/**"));
-    matchers.add(new AntPathRequestMatcher("/templates/**"));
-    matchers.add(new AntPathRequestMatcher("/images/**"));
+    matchers.add(new AntPathRequestMatcher("/"));
+    matchers.add(new AntPathRequestMatcher("/login"));
+    matchers.add(new AntPathRequestMatcher("/logout"));
+    matchers.add(new AntPathRequestMatcher("/resources/**"));
+    matchers.add(new AntPathRequestMatcher("/index.html"));
     matchers.add(new AntPathRequestMatcher("/favicon.ico"));
+    matchers.add(new AntPathRequestMatcher("/styles*"));
+    matchers.add(new AntPathRequestMatcher("/scripts*"));
+    matchers.add(new AntPathRequestMatcher("/assets/**"));
+    matchers.add(new AntPathRequestMatcher("/vendor*"));
+    matchers.add(new AntPathRequestMatcher("/main*"));
+    matchers.add(new AntPathRequestMatcher("/inline*"));
+    matchers.add(new AntPathRequestMatcher("/polyfills*"));
+    matchers.add(new AntPathRequestMatcher("/glyphicons*"));
+    matchers.add(new AntPathRequestMatcher("/fontawsome*"));
+    matchers.add(new AntPathRequestMatcher("/Roboto*"));
+    matchers.add(new AntPathRequestMatcher("/templates/**"));
     matchers.add(new AntPathRequestMatcher("/api/v1/info/**"));
     matchers.add(new AntPathRequestMatcher("/api/v1/public/**"));
     matchers.add(new AntPathRequestMatcher("/api/v1/swagger.json"));

http://git-wip-us.apache.org/repos/asf/ambari/blob/02360dd5/ambari-logsearch/ambari-logsearch-server/src/main/java/org/apache/ambari/logsearch/web/authenticate/LogsearchLogoutSuccessHandler.java
----------------------------------------------------------------------
diff --git a/ambari-logsearch/ambari-logsearch-server/src/main/java/org/apache/ambari/logsearch/web/authenticate/LogsearchLogoutSuccessHandler.java b/ambari-logsearch/ambari-logsearch-server/src/main/java/org/apache/ambari/logsearch/web/authenticate/LogsearchLogoutSuccessHandler.java
index c20e383..2439828 100644
--- a/ambari-logsearch/ambari-logsearch-server/src/main/java/org/apache/ambari/logsearch/web/authenticate/LogsearchLogoutSuccessHandler.java
+++ b/ambari-logsearch/ambari-logsearch-server/src/main/java/org/apache/ambari/logsearch/web/authenticate/LogsearchLogoutSuccessHandler.java
@@ -36,6 +36,5 @@ public class LogsearchLogoutSuccessHandler extends SimpleUrlLogoutSuccessHandler
     public void onLogoutSuccess(HttpServletRequest request, HttpServletResponse response, Authentication authentication)
       throws IOException, ServletException {
       logger.debug("LogsearchLogoutSuccessHandler ::: onLogoutSuccess");
-      response.sendRedirect("/index.html");
   }
 }

http://git-wip-us.apache.org/repos/asf/ambari/blob/02360dd5/ambari-logsearch/ambari-logsearch-server/src/main/java/org/apache/ambari/logsearch/web/filters/LogsearchJWTFilter.java
----------------------------------------------------------------------
diff --git a/ambari-logsearch/ambari-logsearch-server/src/main/java/org/apache/ambari/logsearch/web/filters/LogsearchJWTFilter.java b/ambari-logsearch/ambari-logsearch-server/src/main/java/org/apache/ambari/logsearch/web/filters/LogsearchJWTFilter.java
index 1bc7231..164f646 100644
--- a/ambari-logsearch/ambari-logsearch-server/src/main/java/org/apache/ambari/logsearch/web/filters/LogsearchJWTFilter.java
+++ b/ambari-logsearch/ambari-logsearch-server/src/main/java/org/apache/ambari/logsearch/web/filters/LogsearchJWTFilter.java
@@ -18,46 +18,16 @@
  */
 package org.apache.ambari.logsearch.web.filters;
 
-import io.jsonwebtoken.Claims;
-import io.jsonwebtoken.ExpiredJwtException;
-import io.jsonwebtoken.Jwts;
-import io.jsonwebtoken.MalformedJwtException;
-import io.jsonwebtoken.SignatureException;
+import org.apache.ambari.logsearch.auth.filter.AbstractJWTFilter;
 import org.apache.ambari.logsearch.conf.AuthPropsConfig;
-import org.apache.ambari.logsearch.web.model.JWTAuthenticationToken;
-import org.apache.commons.lang.StringUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.security.authentication.AnonymousAuthenticationToken;
-import org.springframework.security.authentication.BadCredentialsException;
-import org.springframework.security.core.Authentication;
-import org.springframework.security.core.AuthenticationException;
-import org.springframework.security.core.context.SecurityContextHolder;
-import org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter;
+import org.springframework.security.core.GrantedAuthority;
 import org.springframework.security.web.util.matcher.NegatedRequestMatcher;
 import org.springframework.security.web.util.matcher.RequestMatcher;
 
-import javax.servlet.FilterChain;
-import javax.servlet.ServletException;
-import javax.servlet.ServletRequest;
-import javax.servlet.ServletResponse;
-import javax.servlet.http.Cookie;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.io.UnsupportedEncodingException;
-import java.security.cert.CertificateException;
-import java.security.cert.CertificateFactory;
-import java.security.cert.X509Certificate;
-import java.security.interfaces.RSAPublicKey;
+import java.util.Collection;
+import java.util.List;
 
-public class LogsearchJWTFilter extends AbstractAuthenticationProcessingFilter {
-
-  private static final Logger LOG = LoggerFactory.getLogger(LogsearchJWTFilter.class);
-
-  private static final String PEM_HEADER = "-----BEGIN CERTIFICATE-----\n";
-  private static final String PEM_FOOTER = "\n-----END CERTIFICATE-----";
+public class LogsearchJWTFilter extends AbstractJWTFilter {
 
   private AuthPropsConfig authPropsConfig;
 
@@ -67,115 +37,39 @@ public class LogsearchJWTFilter extends AbstractAuthenticationProcessingFilter {
   }
 
   @Override
-  public Authentication attemptAuthentication(HttpServletRequest request, HttpServletResponse response) throws AuthenticationException, IOException, ServletException {
-    if (StringUtils.isEmpty(authPropsConfig.getProvidedUrl())) {
-      throw new BadCredentialsException("Authentication provider URL must not be null or empty.");
-    }
-    if (StringUtils.isEmpty(authPropsConfig.getPublicKey())) {
-      throw new BadCredentialsException("Public key for signature validation must be provisioned.");
-    }
-
-    try {
-      Claims claims = Jwts
-        .parser()
-        .setSigningKey(parseRSAPublicKey(authPropsConfig.getPublicKey()))
-        .parseClaimsJws(getJWTFromCookie(request))
-        .getBody();
-
-      String userName  = claims.getSubject();
-      LOG.info("USERNAME: " + userName);
-      LOG.info("URL = " + request.getRequestURL());
-      if (StringUtils.isNotEmpty(claims.getAudience()) && !authPropsConfig.getAudiences().contains(claims.getAudience())) {
-        throw new IllegalArgumentException(String.format("Audience validation failed. (Not found: %s)", claims.getAudience()));
-      }
-      Authentication authentication = new JWTAuthenticationToken(userName, authPropsConfig.getPublicKey());
-      authentication.setAuthenticated(true);
-      SecurityContextHolder.getContext().setAuthentication(authentication);
-      return authentication;
-    } catch (ExpiredJwtException | MalformedJwtException | SignatureException | IllegalArgumentException e) {
-      LOG.info("URL = " + request.getRequestURL());
-      LOG.warn("Error during JWT authentication: ", e.getMessage());
-      throw new BadCredentialsException(e.getMessage(), e);
-    }
+  protected String getPublicKey() {
+    return authPropsConfig.getPublicKey();
   }
 
   @Override
-  public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
-    Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
-    if (!authPropsConfig.isAuthJwtEnabled() || isAuthenticated(authentication)) {
-      chain.doFilter(req, res);
-      return;
-    }
-    super.doFilter(req, res, chain);
+  protected String getProvidedUrl() {
+    return authPropsConfig.getProvidedUrl();
   }
 
   @Override
-  protected void successfulAuthentication(HttpServletRequest request, HttpServletResponse response, FilterChain chain, Authentication authResult) throws IOException, ServletException {
-    super.successfulAuthentication(request, response, chain, authResult);
-    response.sendRedirect(request.getRequestURL().toString() + getOriginalQueryString(request));
+  protected boolean isAuthJwtEnabled() {
+    return authPropsConfig.isAuthJwtEnabled();
   }
 
   @Override
-  protected void unsuccessfulAuthentication(HttpServletRequest request, HttpServletResponse response, AuthenticationException failed) throws IOException, ServletException {
-    super.unsuccessfulAuthentication(request, response, failed);
-    String loginUrl = constructLoginURL(request);
-    response.sendRedirect(loginUrl);
-  }
-
-  private String getJWTFromCookie(HttpServletRequest req) {
-    String serializedJWT = null;
-    Cookie[] cookies = req.getCookies();
-    if (cookies != null) {
-      for (Cookie cookie : cookies) {
-        if (authPropsConfig.getCookieName().equals(cookie.getName())) {
-          LOG.info(authPropsConfig.getCookieName() + " cookie has been found and is being processed");
-          serializedJWT = cookie.getValue();
-          break;
-        }
-      }
-    }
-    return serializedJWT;
+  protected String getCookieName() {
+    return authPropsConfig.getCookieName();
   }
 
-  private RSAPublicKey parseRSAPublicKey(String pem) throws ServletException {
-    String fullPem = PEM_HEADER + pem + PEM_FOOTER;
-    try {
-      CertificateFactory fact = CertificateFactory.getInstance("X.509");
-      ByteArrayInputStream is = new ByteArrayInputStream(fullPem.getBytes("UTF8"));
-
-      X509Certificate cer = (X509Certificate) fact.generateCertificate(is);
-      return (RSAPublicKey) cer.getPublicKey();
-    } catch (CertificateException ce) {
-      String message;
-      if (pem.startsWith(PEM_HEADER)) {
-        message = "CertificateException - be sure not to include PEM header "
-          + "and footer in the PEM configuration element.";
-      } else {
-        message = "CertificateException - PEM may be corrupt";
-      }
-      throw new ServletException(message, ce);
-    } catch (UnsupportedEncodingException uee) {
-      throw new ServletException(uee);
-    }
+  @Override
+  protected String getOriginalUrlQueryParam() {
+    return authPropsConfig.getOriginalUrlQueryParam();
   }
 
-  private String constructLoginURL(HttpServletRequest request) {
-    String delimiter = "?";
-    if (authPropsConfig.getProvidedUrl().contains("?")) {
-      delimiter = "&";
-    }
-    return authPropsConfig.getProvidedUrl() + delimiter
-      + authPropsConfig.getOriginalUrlQueryParam() + "="
-      + request.getRequestURL().toString() + getOriginalQueryString(request);
+  @Override
+  protected List<String> getAudiences() {
+    return authPropsConfig.getAudiences();
   }
 
-  private String getOriginalQueryString(HttpServletRequest request) {
-    String originalQueryString = request.getQueryString();
-    return (originalQueryString == null) ? "" : "?" + originalQueryString;
+  @Override
+  protected Collection<? extends GrantedAuthority> getAuthorities() {
+    return null; // TODO
   }
 
-  private boolean isAuthenticated(Authentication authentication) {
-    return authentication != null && !(authentication instanceof AnonymousAuthenticationToken) && authentication.isAuthenticated();
-  }
 
 }

http://git-wip-us.apache.org/repos/asf/ambari/blob/02360dd5/ambari-logsearch/ambari-logsearch-server/src/main/java/org/apache/ambari/logsearch/web/model/JWTAuthenticationToken.java
----------------------------------------------------------------------
diff --git a/ambari-logsearch/ambari-logsearch-server/src/main/java/org/apache/ambari/logsearch/web/model/JWTAuthenticationToken.java b/ambari-logsearch/ambari-logsearch-server/src/main/java/org/apache/ambari/logsearch/web/model/JWTAuthenticationToken.java
deleted file mode 100644
index dfac191..0000000
--- a/ambari-logsearch/ambari-logsearch-server/src/main/java/org/apache/ambari/logsearch/web/model/JWTAuthenticationToken.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * 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.
- */
-package org.apache.ambari.logsearch.web.model;
-
-import org.springframework.security.authentication.AbstractAuthenticationToken;
-import org.springframework.security.core.GrantedAuthority;
-
-import java.util.Collection;
-
-public class JWTAuthenticationToken extends AbstractAuthenticationToken {
-
-  private String credential;
-
-  private String principal;
-
-  public JWTAuthenticationToken(String principal, String credential) {
-    super((Collection<? extends GrantedAuthority>)null);
-    this.principal = principal;
-    this.credential = credential;
-  }
-
-  public JWTAuthenticationToken(String principal, String credential, Collection<? extends GrantedAuthority> authorities) {
-    super(authorities);
-    this.principal = principal;
-    this.credential = credential;
-  }
-
-  @Override
-  public Object getCredentials() {
-    return credential;
-  }
-
-  @Override
-  public Object getPrincipal() {
-    return principal;
-  }
-}

http://git-wip-us.apache.org/repos/asf/ambari/blob/02360dd5/ambari-logsearch/ambari-logsearch-web-new/.angular-cli.json
----------------------------------------------------------------------
diff --git a/ambari-logsearch/ambari-logsearch-web-new/.angular-cli.json b/ambari-logsearch/ambari-logsearch-web-new/.angular-cli.json
deleted file mode 100644
index cc74739..0000000
--- a/ambari-logsearch/ambari-logsearch-web-new/.angular-cli.json
+++ /dev/null
@@ -1,64 +0,0 @@
-{
-  "$schema": "./node_modules/@angular/cli/lib/config/schema.json",
-  "project": {
-    "name": "ambari-logsearch-web-new"
-  },
-  "apps": [
-    {
-      "root": "src",
-      "outDir": "dist",
-      "assets": [
-        "assets",
-        "favicon.ico"
-      ],
-      "index": "index.html",
-      "main": "main.ts",
-      "polyfills": "polyfills.ts",
-      "test": "test.ts",
-      "tsconfig": "tsconfig.app.json",
-      "testTsconfig": "tsconfig.spec.json",
-      "prefix": "app",
-      "styles": [
-        "styles.less",
-        "../node_modules/bootstrap/dist/css/bootstrap.min.css",
-        "../node_modules/font-awesome/css/font-awesome.min.css",
-        "../src/vendor/css/bootstrap-logsearch.min.css"
-      ],
-      "scripts": [
-        "../node_modules/jquery/dist/jquery.min.js",
-        "../node_modules/bootstrap/dist/js/bootstrap.min.js",
-        "../src/vendor/js/bootstrap-logsearch.min.js"
-      ],
-      "environmentSource": "environments/environment.ts",
-      "environments": {
-        "dev": "environments/environment.ts",
-        "prod": "environments/environment.prod.ts"
-      }
-    }
-  ],
-  "e2e": {
-    "protractor": {
-      "config": "./protractor.conf.js"
-    }
-  },
-  "lint": [
-    {
-      "project": "src/tsconfig.app.json"
-    },
-    {
-      "project": "src/tsconfig.spec.json"
-    },
-    {
-      "project": "e2e/tsconfig.e2e.json"
-    }
-  ],
-  "test": {
-    "karma": {
-      "config": "./karma.conf.js"
-    }
-  },
-  "defaults": {
-    "styleExt": "less",
-    "component": {}
-  }
-}

http://git-wip-us.apache.org/repos/asf/ambari/blob/02360dd5/ambari-logsearch/ambari-logsearch-web-new/.editorconfig
----------------------------------------------------------------------
diff --git a/ambari-logsearch/ambari-logsearch-web-new/.editorconfig b/ambari-logsearch/ambari-logsearch-web-new/.editorconfig
deleted file mode 100644
index 6e87a00..0000000
--- a/ambari-logsearch/ambari-logsearch-web-new/.editorconfig
+++ /dev/null
@@ -1,13 +0,0 @@
-# Editor configuration, see http://editorconfig.org
-root = true
-
-[*]
-charset = utf-8
-indent_style = space
-indent_size = 2
-insert_final_newline = true
-trim_trailing_whitespace = true
-
-[*.md]
-max_line_length = off
-trim_trailing_whitespace = false

http://git-wip-us.apache.org/repos/asf/ambari/blob/02360dd5/ambari-logsearch/ambari-logsearch-web-new/.gitignore
----------------------------------------------------------------------
diff --git a/ambari-logsearch/ambari-logsearch-web-new/.gitignore b/ambari-logsearch/ambari-logsearch-web-new/.gitignore
deleted file mode 100644
index 54bfd20..0000000
--- a/ambari-logsearch/ambari-logsearch-web-new/.gitignore
+++ /dev/null
@@ -1,42 +0,0 @@
-# See http://help.github.com/ignore-files/ for more about ignoring files.
-
-# compiled output
-/dist
-/tmp
-/out-tsc
-
-# dependencies
-/node_modules
-
-# IDEs and editors
-/.idea
-.project
-.classpath
-.c9/
-*.launch
-.settings/
-*.sublime-workspace
-
-# IDE - VSCode
-.vscode/*
-!.vscode/settings.json
-!.vscode/tasks.json
-!.vscode/launch.json
-!.vscode/extensions.json
-
-# misc
-/.sass-cache
-/connect.lock
-/coverage
-/libpeerconnection.log
-npm-debug.log
-testem.log
-/typings
-
-# e2e
-/e2e/*.js
-/e2e/*.map
-
-# System Files
-.DS_Store
-Thumbs.db

http://git-wip-us.apache.org/repos/asf/ambari/blob/02360dd5/ambari-logsearch/ambari-logsearch-web-new/README.md
----------------------------------------------------------------------
diff --git a/ambari-logsearch/ambari-logsearch-web-new/README.md b/ambari-logsearch/ambari-logsearch-web-new/README.md
deleted file mode 100644
index 2fb07fb..0000000
--- a/ambari-logsearch/ambari-logsearch-web-new/README.md
+++ /dev/null
@@ -1,28 +0,0 @@
-# AmbariLogsearchWebNew
-
-This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 1.0.0.
-
-## Development server
-
-Run `ng serve` for a dev server. Navigate to `http://localhost:4200/`. The app will automatically reload if you change any of the source files.
-
-## Code scaffolding
-
-Run `ng generate component component-name` to generate a new component. You can also use `ng generate directive/pipe/service/class/module`.
-
-## Build
-
-Run `ng build` to build the project. The build artifacts will be stored in the `dist/` directory. Use the `-prod` flag for a production build.
-
-## Running unit tests
-
-Run `ng test` to execute the unit tests via [Karma](https://karma-runner.github.io).
-
-## Running end-to-end tests
-
-Run `ng e2e` to execute the end-to-end tests via [Protractor](http://www.protractortest.org/).
-Before running the tests make sure you are serving the app via `ng serve`.
-
-## Further help
-
-To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI README](https://github.com/angular/angular-cli/blob/master/README.md).

http://git-wip-us.apache.org/repos/asf/ambari/blob/02360dd5/ambari-logsearch/ambari-logsearch-web-new/e2e/app.e2e-spec.ts
----------------------------------------------------------------------
diff --git a/ambari-logsearch/ambari-logsearch-web-new/e2e/app.e2e-spec.ts b/ambari-logsearch/ambari-logsearch-web-new/e2e/app.e2e-spec.ts
deleted file mode 100644
index ebfdcb9..0000000
--- a/ambari-logsearch/ambari-logsearch-web-new/e2e/app.e2e-spec.ts
+++ /dev/null
@@ -1,32 +0,0 @@
-/**
- * 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.
- */
-
-import {AmbariLogsearchWebNewPage} from './app.po';
-
-describe('ambari-logsearch-web-new App', () => {
-  let page: AmbariLogsearchWebNewPage;
-
-  beforeEach(() => {
-    page = new AmbariLogsearchWebNewPage();
-  });
-
-  it('should display title', () => {
-    page.navigateTo();
-    expect(page.getParagraphText()).toEqual('Ambari Log Search');
-  });
-});

http://git-wip-us.apache.org/repos/asf/ambari/blob/02360dd5/ambari-logsearch/ambari-logsearch-web-new/e2e/app.po.ts
----------------------------------------------------------------------
diff --git a/ambari-logsearch/ambari-logsearch-web-new/e2e/app.po.ts b/ambari-logsearch/ambari-logsearch-web-new/e2e/app.po.ts
deleted file mode 100644
index c446bfb..0000000
--- a/ambari-logsearch/ambari-logsearch-web-new/e2e/app.po.ts
+++ /dev/null
@@ -1,29 +0,0 @@
-/**
- * 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.
- */
-
-import { browser, element, by } from 'protractor';
-
-export class AmbariLogsearchWebNewPage {
-  navigateTo() {
-    return browser.get('/');
-  }
-
-  getParagraphText() {
-    return element(by.css('app-root h1')).getText();
-  }
-}

http://git-wip-us.apache.org/repos/asf/ambari/blob/02360dd5/ambari-logsearch/ambari-logsearch-web-new/e2e/tsconfig.e2e.json
----------------------------------------------------------------------
diff --git a/ambari-logsearch/ambari-logsearch-web-new/e2e/tsconfig.e2e.json b/ambari-logsearch/ambari-logsearch-web-new/e2e/tsconfig.e2e.json
deleted file mode 100644
index ac7a373..0000000
--- a/ambari-logsearch/ambari-logsearch-web-new/e2e/tsconfig.e2e.json
+++ /dev/null
@@ -1,12 +0,0 @@
-{
-  "extends": "../tsconfig.json",
-  "compilerOptions": {
-    "outDir": "../out-tsc/e2e",
-    "module": "commonjs",
-    "target": "es5",
-    "types":[
-      "jasmine",
-      "node"
-    ]
-  }
-}

http://git-wip-us.apache.org/repos/asf/ambari/blob/02360dd5/ambari-logsearch/ambari-logsearch-web-new/karma.conf.js
----------------------------------------------------------------------
diff --git a/ambari-logsearch/ambari-logsearch-web-new/karma.conf.js b/ambari-logsearch/ambari-logsearch-web-new/karma.conf.js
deleted file mode 100644
index 0512808..0000000
--- a/ambari-logsearch/ambari-logsearch-web-new/karma.conf.js
+++ /dev/null
@@ -1,62 +0,0 @@
-/**
- * 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.
- */
-
-// Karma configuration file, see link for more information
-// https://karma-runner.github.io/0.13/config/configuration-file.html
-
-module.exports = function (config) {
-  config.set({
-    basePath: '',
-    frameworks: ['jasmine', '@angular/cli'],
-    plugins: [
-      require('karma-jasmine'),
-      require('karma-chrome-launcher'),
-      require('karma-jasmine-html-reporter'),
-      require('karma-coverage-istanbul-reporter'),
-      require('@angular/cli/plugins/karma')
-    ],
-    client:{
-      clearContext: false // leave Jasmine Spec Runner output visible in browser
-    },
-    files: [
-      { pattern: './src/test.ts', watched: false }
-    ],
-    preprocessors: {
-      './src/test.ts': ['@angular/cli']
-    },
-    mime: {
-      'text/x-typescript': ['ts','tsx']
-    },
-    coverageIstanbulReporter: {
-      reports: [ 'html', 'lcovonly' ],
-      fixWebpackSourcePaths: true
-    },
-    angularCli: {
-      environment: 'dev'
-    },
-    reporters: config.angularCli && config.angularCli.codeCoverage
-              ? ['progress', 'coverage-istanbul']
-              : ['progress', 'kjhtml'],
-    port: 9876,
-    colors: true,
-    logLevel: config.LOG_INFO,
-    autoWatch: true,
-    browsers: ['Chrome'],
-    singleRun: false
-  });
-};

http://git-wip-us.apache.org/repos/asf/ambari/blob/02360dd5/ambari-logsearch/ambari-logsearch-web-new/package.json
----------------------------------------------------------------------
diff --git a/ambari-logsearch/ambari-logsearch-web-new/package.json b/ambari-logsearch/ambari-logsearch-web-new/package.json
deleted file mode 100644
index 96733eb..0000000
--- a/ambari-logsearch/ambari-logsearch-web-new/package.json
+++ /dev/null
@@ -1,64 +0,0 @@
-{
-  "name": "ambari-logsearch-web",
-  "version": "3.0.0",
-  "license": "Apache 2.0",
-  "scripts": {
-    "ng": "ng",
-    "start": "ng serve",
-    "build": "ng build",
-    "build-prod": "ng build -prod",
-    "test": "ng test",
-    "lint": "ng lint",
-    "e2e": "ng e2e"
-  },
-  "dependencies": {
-    "@angular/common": "^4.0.0",
-    "@angular/compiler": "^4.0.0",
-    "@angular/core": "^4.0.0",
-    "@angular/forms": "^4.0.0",
-    "@angular/http": "^4.0.0",
-    "@angular/platform-browser": "^4.0.0",
-    "@angular/platform-browser-dynamic": "^4.0.0",
-    "@angular/router": "^4.0.0",
-    "@ngrx/core": "^1.2.0",
-    "@ngrx/store": "^2.2.2",
-    "@ngx-translate/core": "^6.0.1",
-    "@ngx-translate/http-loader": "^0.0.3",
-    "angular-moment-timezone": "^0.2.1",
-    "angular2-moment": "^1.4.0",
-    "bootstrap": "^3.3.7",
-    "core-js": "^2.4.1",
-    "d3": "^4.10.0",
-    "font-awesome": "^4.7.0",
-    "jquery": "^1.12.4",
-    "moment": "^2.18.1",
-    "moment-timezone": "^0.5.13",
-    "ngx-bootstrap": "^1.6.6",
-    "rxjs": "^5.1.0",
-    "zone.js": "^0.8.4"
-  },
-  "devDependencies": {
-    "@angular/cli": "1.0.0",
-    "@angular/compiler-cli": "^4.0.0",
-    "@types/d3": "^4.10.0",
-    "@types/jasmine": "2.5.38",
-    "@types/jquery": "^1.10.33",
-    "@types/moment": "^2.13.0",
-    "@types/moment-timezone": "^0.2.34",
-    "@types/node": "~6.0.60",
-    "angular-in-memory-web-api": "^0.3.1",
-    "codelyzer": "~2.0.0",
-    "jasmine-core": "~2.5.2",
-    "jasmine-spec-reporter": "~3.2.0",
-    "karma": "~1.4.1",
-    "karma-chrome-launcher": "~2.0.0",
-    "karma-cli": "~1.0.1",
-    "karma-coverage-istanbul-reporter": "^0.2.0",
-    "karma-jasmine": "~1.1.0",
-    "karma-jasmine-html-reporter": "^0.2.2",
-    "protractor": "~5.1.0",
-    "ts-node": "~2.0.0",
-    "tslint": "~4.5.0",
-    "typescript": "~2.2.0"
-  }
-}


Mime
View raw message