From 7ba1c9f07df1a59ba68851b3c3c6eea26535d388 Mon Sep 17 00:00:00 2001 From: Muthukrishnanmatriot <76949556+muthukrishnanmatriot@users.noreply.github.com> Date: Mon, 20 Sep 2021 15:13:03 +0530 Subject: [PATCH] TMSS-937 - updated the code for Keycloak authenticate --- .../tmss_webapp/src/authenticate/auth.js | 23 +++++++++++-------- .../tmss_webapp/src/authenticate/login.js | 6 +---- .../tmss_webapp/src/services/auth.service.js | 5 +--- .../tmss_webapp/src/utils/ui.constants.js | 2 +- 4 files changed, 16 insertions(+), 20 deletions(-) diff --git a/SAS/TMSS/frontend/tmss_webapp/src/authenticate/auth.js b/SAS/TMSS/frontend/tmss_webapp/src/authenticate/auth.js index 6d7706e0307..d8f7191c119 100644 --- a/SAS/TMSS/frontend/tmss_webapp/src/authenticate/auth.js +++ b/SAS/TMSS/frontend/tmss_webapp/src/authenticate/auth.js @@ -14,16 +14,19 @@ const Auth = { user = JSON.parse(user); return Auth.getUserPermission(user); }else { - user = sessionStorage.getItem("user"); - console.log('Keycloak:',user); - if (user) { - user = JSON.parse(user); - const res = await AuthService.keycloakAuthenticate(); - if(res && res.is_authenticated){ - localStorage.setItem("loginType", 'Keycloak'); - return Auth.getUserPermission(user); - } - } + const res = await AuthService.keycloakAuthenticate(); + if(res && res.is_authenticated){ + localStorage.setItem("loginType", 'Keycloak'); + const cookies = document.cookie.split(';').reduce((prev, current) => { + const [name, value] = current.split(/\s?(.*?)=(.*)/).splice(1, 2); + prev[name] = value; + return prev; + }, {}); + const userDetails = {'name':res.username, 'token': cookies.csrftoken}; + axios.defaults.headers.common['Authorization'] = `Token ${cookies.csrftoken}`; + localStorage.setItem("user", JSON.stringify(userDetails)); + return Auth.getUserPermission(userDetails); + } } await PermissionStackUtil.getPermissions(false); return false; diff --git a/SAS/TMSS/frontend/tmss_webapp/src/authenticate/login.js b/SAS/TMSS/frontend/tmss_webapp/src/authenticate/login.js index 749f7b107b6..485799259d3 100644 --- a/SAS/TMSS/frontend/tmss_webapp/src/authenticate/login.js +++ b/SAS/TMSS/frontend/tmss_webapp/src/authenticate/login.js @@ -79,15 +79,11 @@ export class Login extends Component { * @param {*} */ async doKeyCloakLogin(e) { - /** For testing */ - //sessionStorage.setItem("user", JSON.stringify({name:'test',"token":"eaa9a75f31339955cfaca1f7c94b01b1dd327d04"},)); - /** End */ - this.setState({redirect: UIConstants.KEYCLOAK_AUTH_URL}); } /** - * redirect to forget password page + * Redirect to forget password page */ async forgetPassword() { this.setState({redirect: UIConstants.FORGET_PASSWORD_URL}); diff --git a/SAS/TMSS/frontend/tmss_webapp/src/services/auth.service.js b/SAS/TMSS/frontend/tmss_webapp/src/services/auth.service.js index 1f8c1a34bf3..2a00a00c197 100644 --- a/SAS/TMSS/frontend/tmss_webapp/src/services/auth.service.js +++ b/SAS/TMSS/frontend/tmss_webapp/src/services/auth.service.js @@ -17,9 +17,7 @@ const AuthService = { keycloakAuthenticate: async() => { try { delete axios.defaults.headers.common['Authorization']; - const response = await axios.post(UIConstants.KEYCLOAK_AUTHENTICATE_URL); - console.log('keycloakAuthenticate =>',response) - //axios.defaults.headers.common['Authorization'] = `Token ${response.data.token}`; + const response = await axios.get(UIConstants.KEYCLOAK_AUTHENTICATE_URL); return response.data; } catch(error) { console.error('Error [keycloakAuthenticate]',error); @@ -34,7 +32,6 @@ const AuthService = { } else { console.log('deAuthenticate url:', UIConstants.KEYCLOAK_LOGOUT_URL); await axios.post(UIConstants.KEYCLOAK_LOGOUT_URL); - sessionStorage.removeItem("user"); } localStorage.removeItem("loginType"); } catch(error) { diff --git a/SAS/TMSS/frontend/tmss_webapp/src/utils/ui.constants.js b/SAS/TMSS/frontend/tmss_webapp/src/utils/ui.constants.js index 3d29b216cf4..7fb6bfcbc82 100644 --- a/SAS/TMSS/frontend/tmss_webapp/src/utils/ui.constants.js +++ b/SAS/TMSS/frontend/tmss_webapp/src/utils/ui.constants.js @@ -1,5 +1,5 @@ const UIConstants = { - KEYCLOAK_AUTH_URL: '/oidc/authenticate', + KEYCLOAK_AUTH_URL: '/oidc/authenticate/', KEYCLOAK_LOGOUT_URL: '/oidc/logout/', KEYCLOAK_AUTHENTICATE_URL: '/api/authentication_state/', FORGET_PASSWORD_URL: '/api/forgetpass/', -- GitLab