aboutsummaryrefslogtreecommitdiffstats
path: root/sdnr/wt/odlux/framework/src/services
diff options
context:
space:
mode:
Diffstat (limited to 'sdnr/wt/odlux/framework/src/services')
-rw-r--r--sdnr/wt/odlux/framework/src/services/authenticationService.ts8
-rw-r--r--sdnr/wt/odlux/framework/src/services/broadcastService.ts2
-rw-r--r--sdnr/wt/odlux/framework/src/services/forceLogoutService.ts57
-rw-r--r--sdnr/wt/odlux/framework/src/services/restService.ts15
-rw-r--r--sdnr/wt/odlux/framework/src/services/userSessionService.ts2
5 files changed, 22 insertions, 62 deletions
diff --git a/sdnr/wt/odlux/framework/src/services/authenticationService.ts b/sdnr/wt/odlux/framework/src/services/authenticationService.ts
index a7691bf6f..39f407e40 100644
--- a/sdnr/wt/odlux/framework/src/services/authenticationService.ts
+++ b/sdnr/wt/odlux/framework/src/services/authenticationService.ts
@@ -18,7 +18,7 @@
import { AuthPolicy, AuthToken } from "../models/authentication";
import { ExternalLoginProvider } from "../models/externalLoginProvider";
-import { requestRest, formEncode } from "./restService";
+import { requestRest, formEncode, requestRestExt } from "./restService";
type AuthTokenResponse = {
access_token: string;
@@ -85,6 +85,12 @@ class AuthenticationService {
public async getAccessPolicies(){
return await requestRest<AuthPolicy[]>(`oauth/policies`, { method: "GET" }, true);
}
+
+ public async getServerReadyState(){
+
+ const result = await fetch("/ready", {method: "GET"});
+ return result.status == (200 || 304) ? true : false;
+ }
}
export const authenticationService = new AuthenticationService();
diff --git a/sdnr/wt/odlux/framework/src/services/broadcastService.ts b/sdnr/wt/odlux/framework/src/services/broadcastService.ts
index 85ae3e65c..f2c3ebc57 100644
--- a/sdnr/wt/odlux/framework/src/services/broadcastService.ts
+++ b/sdnr/wt/odlux/framework/src/services/broadcastService.ts
@@ -33,7 +33,7 @@ export type SettingsMessage={key: SettingsType, enableNotifications: boolean, us
let channels: Broadcaster[] = [];
let store : ApplicationStore | null = null;
-export const subscribe = (channel: BroadcastChannel, channelName: string) => {
+export const saveChannel = (channel: BroadcastChannel, channelName: string) => {
channels.push({channel: channel, key: channelName});
}
diff --git a/sdnr/wt/odlux/framework/src/services/forceLogoutService.ts b/sdnr/wt/odlux/framework/src/services/forceLogoutService.ts
deleted file mode 100644
index a57739025..000000000
--- a/sdnr/wt/odlux/framework/src/services/forceLogoutService.ts
+++ /dev/null
@@ -1,57 +0,0 @@
-/**
- * ============LICENSE_START========================================================================
- * ONAP : ccsdk feature sdnr wt odlux
- * =================================================================================================
- * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved.
- * =================================================================================================
- * Licensed 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.
- * ============LICENSE_END==========================================================================
- */
-
-import { ApplicationStore } from "../store/applicationStore";
-import { UpdateUser } from "../actions/authentication";
-import { ReplaceAction } from "../actions/navigationActions";
-
-const maxMinutesTillLogout = 15;
-let applicationStore: ApplicationStore | null;
-let tickTimer = 15;
-
-
-export const startForceLogoutService = (store: ApplicationStore) => {
- applicationStore = store;
- if (process.env.NODE_ENV === "development") {
- console.warn("logout timer not started in development mode");
- } else {
- createForceLogoutInterval();
- }
-
-};
-
-const createForceLogoutInterval = () => {
- console.log("logout timer running...");
-
- return setInterval(function () {
- if (applicationStore && applicationStore.state.framework.authenticationState.user) {
- tickTimer--;
-
- if (tickTimer === 0) {
- console.log("got logged out by timer")
- if (applicationStore) {
- applicationStore.dispatch(new UpdateUser(undefined));
- applicationStore.dispatch(new ReplaceAction("/login"));
- }
- }
- }
-
- }, 1 * 60000)
-}
-
-document.addEventListener("mousemove", function () { tickTimer = maxMinutesTillLogout; }, false) \ No newline at end of file
diff --git a/sdnr/wt/odlux/framework/src/services/restService.ts b/sdnr/wt/odlux/framework/src/services/restService.ts
index b21e3ec75..d727e4c9e 100644
--- a/sdnr/wt/odlux/framework/src/services/restService.ts
+++ b/sdnr/wt/odlux/framework/src/services/restService.ts
@@ -19,6 +19,7 @@
import { ApplicationStore } from "../store/applicationStore";
import { ReplaceAction } from "../actions/navigationActions";
+import { AddErrorInfoAction } from "../actions/errorActions";
const baseUri = `${ window.location.origin }`;
const absUrlPattern = /^https?:\/\//;
@@ -118,12 +119,22 @@ export async function requestRestExt<TData>(path: string = '', init: RequestInit
//'Authorization': 'Basic YWRtaW46YWRtaW4='
});
}
+
const fetchResult = await fetch(uri, init);
- if (fetchResult.status === 401 || fetchResult.status === 403) {
- applicationStore && applicationStore.dispatch(new ReplaceAction(`/login?returnTo=${applicationStore.state.framework.navigationState.pathname}`));
+
+ if(fetchResult.status === 403){
+ applicationStore && applicationStore.dispatch(new AddErrorInfoAction({title: "Forbidden", message:"Status: [403], access denied."}));
return {
...result,
status: 403,
+ message: "Forbidden."
+ };
+ }
+ else if (fetchResult.status === 401) {
+ applicationStore && applicationStore.dispatch(new ReplaceAction(`/login?returnTo=${applicationStore.state.framework.navigationState.pathname}`));
+ return {
+ ...result,
+ status: 401,
message: "Authentication requested by server."
};
}
diff --git a/sdnr/wt/odlux/framework/src/services/userSessionService.ts b/sdnr/wt/odlux/framework/src/services/userSessionService.ts
index 0d5936a7e..8d899c4d6 100644
--- a/sdnr/wt/odlux/framework/src/services/userSessionService.ts
+++ b/sdnr/wt/odlux/framework/src/services/userSessionService.ts
@@ -24,7 +24,7 @@ import { User } from "../models/authentication";
let currentUser: User | null;
let applicationStore: ApplicationStore | null = null;
-let timer : NodeJS.Timeout | null = null;
+let timer : null | ReturnType<typeof setTimeout> = null;
export const startUserSessionService = (store: ApplicationStore) =>{
applicationStore=store;