Showing Login Errors
diff --git a/applications/subscriberPortal/README.md b/applications/subscriberPortal/README.md
index 7144646..f414994 100644
--- a/applications/subscriberPortal/README.md
+++ b/applications/subscriberPortal/README.md
@@ -28,7 +28,9 @@
 
 _All commands in this section refers to `applications/subscriberPortal`_
 
-_Note that NodeJs is required to run this demo_To open this demo:
+_Note that NodeJs and Bower are required to run this demo_
+
+To open this demo:
 
  - open `env/default.js` and replace `host` with the URL of your XOS installation.
  - from the portal root execute `npm start`
diff --git a/applications/subscriberPortal/bs-config.js b/applications/subscriberPortal/bs-config.js
index 4acb4c6..f608075 100644
--- a/applications/subscriberPortal/bs-config.js
+++ b/applications/subscriberPortal/bs-config.js
@@ -51,8 +51,10 @@
         req.url.indexOf('/xoslib/') !== -1 ||
         req.url.indexOf('/hpcapi/') !== -1
       ){
+        console.log(req.headers)
         if(req.headers['X-CSRFToken']){
           req.headers['x-csrftoken'] = req.headers['x-csrftoken'];
+          req.headers.cookie = `xoscsrftoken=${req.headers['x-csrftoken']}; xossessionid=${req.headers['sessionid']}`;
         }
         proxy.web(req, res);
       }
diff --git a/applications/subscriberPortal/src/app/fw/services/rest.js b/applications/subscriberPortal/src/app/fw/services/rest.js
index db35617..e5ea7e0 100644
--- a/applications/subscriberPortal/src/app/fw/services/rest.js
+++ b/applications/subscriberPortal/src/app/fw/services/rest.js
@@ -22,6 +22,7 @@
     return {
       request: function(request){
         request.headers['X-CSRFToken'] = $cookies.get('xoscsrftoken');
+        request.headers['sessionId'] = $cookies.get('sessionid');
         return request;
       }
     };
@@ -38,11 +39,13 @@
         $cookies.put('sessionid', res.data.xossessionid);
         user = JSON.parse(res.data.user);
         return $http.get(cordConfig.url + '/xos/tenantrootprivileges?user=' + user.id);
-      }).then(function(subscriber){
-          console.log(subscriber);
-          deferred.resolve(user);
+      })
+      .then(function(subscriber){
+        console.log(subscriber);
+        deferred.resolve(user);
       })
       .catch(function(e){
+        deferred.reject(e);
         throw new Error(e);
       });
 
diff --git a/applications/subscriberPortal/src/app/view/common/common.css b/applications/subscriberPortal/src/app/view/common/common.css
index 5ae154b..800fe24 100644
--- a/applications/subscriberPortal/src/app/view/common/common.css
+++ b/applications/subscriberPortal/src/app/view/common/common.css
@@ -34,7 +34,7 @@
 
 h1, h2, h3, h4, h5, h6,
 p, a, li, th, td,
-select, input, option, label {
+select, input, option, label, div {
     font-family: sans-serif, "Droid Sans", "Lucida Grande", Arial, Helvetica;
     color: #3C3C3C;
 }
diff --git a/applications/subscriberPortal/src/app/view/login/login.css b/applications/subscriberPortal/src/app/view/login/login.css
index f7d5f67..b4275c5 100644
--- a/applications/subscriberPortal/src/app/view/login/login.css
+++ b/applications/subscriberPortal/src/app/view/login/login.css
@@ -73,6 +73,20 @@
     border-radius: 1px;
     position: absolute;
 }
+
+#login-form .login-error{
+    background: red;
+    border: 2px solid darkred;
+    color: white;
+    position: absolute;
+    height: 40px;
+    width: 230px;
+    padding: 0 5px;
+    border-radius: 1px;
+    top: 70px;
+    font-size: 10px;
+}
+
 #login-form input[type="text"] {
     top: -90px;
 }
diff --git a/applications/subscriberPortal/src/app/view/login/login.html b/applications/subscriberPortal/src/app/view/login/login.html
index 19c5940..6359cce 100644
--- a/applications/subscriberPortal/src/app/view/login/login.html
+++ b/applications/subscriberPortal/src/app/view/login/login.html
@@ -4,10 +4,14 @@
         <div id="login-form">
             <div class="outline"></div>
             <h2>Subscriber Portal</h2>
-            <form>
+            <form ng-submit="login()">
                 <input ng-model="email" type="text" placeholder="email" required>
                 <input ng-model="password" type="password" placeholder="password" required>
                 <input ng-click="login()" type="button" value="Log In">
+                <div class="login-error" ng-show="error">
+                    Sorry, your login failed.
+                    Please try again.
+                </div>
             </form>
         </div>
     </div>
diff --git a/applications/subscriberPortal/src/app/view/login/login.js b/applications/subscriberPortal/src/app/view/login/login.js
index c902480..77ef724 100644
--- a/applications/subscriberPortal/src/app/view/login/login.js
+++ b/applications/subscriberPortal/src/app/view/login/login.js
@@ -29,6 +29,9 @@
           User.login($scope.email, $scope.password)
           .then(function(user){
             $location.url('/home');
+          })
+          .catch(function(e){
+            $scope.error = true;
           });
 
           $scope.shared.login = $scope.email;
diff --git a/views/ngXosLib/xosHelpers/src/services/csrfToken.interceptor.js b/views/ngXosLib/xosHelpers/src/services/csrfToken.interceptor.js
index 283e90d..025813c 100644
--- a/views/ngXosLib/xosHelpers/src/services/csrfToken.interceptor.js
+++ b/views/ngXosLib/xosHelpers/src/services/csrfToken.interceptor.js
@@ -1,18 +1,18 @@
 (function() {
-    'use strict';
+  'use strict';
 
-    angular
-        .module('xos.helpers')
-        .factory('SetCSRFToken', setCSRFToken);
+  angular
+    .module('xos.helpers')
+    .factory('SetCSRFToken', setCSRFToken);
 
-    function setCSRFToken($cookies) {
-      return {
-        request: function(request){
-          if(request.method !== 'GET'){
-            request.headers['X-CSRFToken'] = $cookies.get('xoscsrftoken');
-          }
-          return request;
+  function setCSRFToken($cookies) {
+    return {
+      request: function(request){
+        if(request.method !== 'GET'){
+          request.headers['X-CSRFToken'] = $cookies.get('xoscsrftoken');
         }
-      };
-    }
+        return request;
+      }
+    };
+  }
 })();