diff --git a/src/app/common/globals.ts b/src/app/common/globals.ts
index ee238c8..29c76f6 100644
--- a/src/app/common/globals.ts
+++ b/src/app/common/globals.ts
@@ -19,6 +19,8 @@
     static STATUSES = 'STATUSES';
     static GRID_TERRITORIES = 'TERRITORIES';
     static ACCESS_TOKEN = 'ACCESS_TOKEN';
+    static FORWARD_URL = 'FORWARD_URL';
+    static URL_PARAMS = 'URL_PARAMS';
     static BRANCHES = class Branches {
         static const power = 'S';
         static const gas = 'G';
diff --git a/src/app/pages/login/login.component.spec.ts b/src/app/pages/login/login.component.spec.ts
index 673d4ef..d3d9f7d 100644
--- a/src/app/pages/login/login.component.spec.ts
+++ b/src/app/pages/login/login.component.spec.ts
@@ -11,7 +11,7 @@
 */
 /* tslint:disable:no-unused-variable */
 import { async, ComponentFixture, TestBed } from '@angular/core/testing';
-import { Router } from '@angular/router';
+import { Router, ActivatedRoute } from '@angular/router';
 import { By } from '@angular/platform-browser';
 import { DebugElement } from '@angular/core';
 import { AbstractMockObservableService } from '../../common/abstract-mock-observable.service';
@@ -31,6 +31,7 @@
 import { SessionContext } from '../../common/session-context';
 import { JwtHelper } from 'angular2-jwt';
 import { JWT_TOKEN_HUGO } from '../../testing/jwt-token';
+import { ActivatedRouteStub } from '../../testing';
 
 class FakeRouter {
   navigate(commands: any[]) {
@@ -43,6 +44,7 @@
   let component: LoginComponent;
   let fixture: ComponentFixture<LoginComponent>;
   let spy: jasmine.Spy;
+  let activatedStub: ActivatedRouteStub;
 
   const correctUser: User = {
     id: 44, username: 'carlo', password: 'serverPwd'
@@ -91,16 +93,18 @@
     mockDataService = new MockDataService();
     sessionContext = new SessionContext();
     router = new FakeRouter() as any as Router;
+    activatedStub = new ActivatedRouteStub();
 
     TestBed.configureTestingModule({
       declarations: [LoginComponent,
         MockComponent({ selector: 'app-version-info' })
       ],
       providers: [
-      { provide: AuthenticationService, useValue: mockAuthService },
-      { provide: Router, useValue: router },
-      { provide: SessionContext, useValue: sessionContext },
-      { provide: BaseDataService, useValue: mockDataService }]
+        { provide: AuthenticationService, useValue: mockAuthService },
+        { provide: Router, useValue: router },
+        { provide: ActivatedRoute, useValue: activatedStub },
+        { provide: SessionContext, useValue: sessionContext },
+        { provide: BaseDataService, useValue: mockDataService }]
     })
       .compileComponents();
   }));
diff --git a/src/app/pages/login/login.component.ts b/src/app/pages/login/login.component.ts
index 997b5dc..5b8a076 100644
--- a/src/app/pages/login/login.component.ts
+++ b/src/app/pages/login/login.component.ts
@@ -10,7 +10,7 @@
 ******************************************************************************
 */
 import { Component, OnInit, ViewChildren, AfterViewInit } from '@angular/core';
-import { Router } from '@angular/router';
+import { Router, ActivatedRoute, Params, ParamMap } from '@angular/router';
 import { AuthenticationService } from '../../services/authentication.service';
 import { BaseDataService } from '../../services/base-data.service';
 import { SessionContext } from '../../common/session-context';
@@ -27,14 +27,18 @@
 export class LoginComponent implements OnInit, AfterViewInit {
   @ViewChildren('username') usernameInput;
 
+  private urlParamsMap: ParamMap;
+
   constructor(
     private router: Router,
     private authService: AuthenticationService,
     private baseDataService: BaseDataService,
-    public sessionContext: SessionContext
+    public sessionContext: SessionContext,
+    private activatedRoute: ActivatedRoute
   ) { }
 
   ngOnInit() {
+    this.urlParamsMap = this.activatedRoute.snapshot.queryParamMap;
     localStorage.removeItem('authenticatedUserId');
   }
 
@@ -44,10 +48,32 @@
 
 
   private pastLogin() {
+    this.processDirectLinkToGridMeasureDetail();
     this.initBaseData();
     this.goToOverview();
   }
 
+  private processDirectLinkToGridMeasureDetail() {
+    if (!this.urlParamsMap) {
+      return;
+    }
+    const fwdUrl = this.urlParamsMap.get('fwdUrl');
+    const fwdId = this.urlParamsMap.get('fwdId');
+    if (!fwdUrl) {
+      return;
+    }
+
+    const linkToOpen = fwdUrl + '?accessToken=' + this.sessionContext.getAccessToken() + '&fwdId=' + fwdId;
+    this.urlParamsMap = undefined;
+
+    this.authService.checkAuth().subscribe(res => {
+      window.open(linkToOpen, '_blank');
+    },
+      error => {
+        console.log(error);
+      });
+  }
+
   private initBaseData() {
   }
 
@@ -66,10 +92,10 @@
     creds.password = pw;
     this.authService.login(creds)
       .subscribe(jwtToken => this.onLoggedInSuccessfully(jwtToken),
-      error => {
-        console.log(error);
-        this.setError(true);
-      });
+        error => {
+          console.log(error);
+          this.setError(true);
+        });
   }
 
   private onLoggedInSuccessfully(jwtToken: any) {
