{"id":2701,"date":"2011-09-16T11:31:12","date_gmt":"2011-09-16T15:31:12","guid":{"rendered":"http:\/\/onlineappsdba.com\/index.php\/2011\/09\/16\/global-logout-implementation\/"},"modified":"2011-09-16T14:39:27","modified_gmt":"2011-09-16T18:39:27","slug":"global-logout-implementation","status":"publish","type":"post","link":"https:\/\/onlineappsdba.com\/index.php\/2011\/09\/16\/global-logout-implementation\/","title":{"rendered":"Global logout Implementation"},"content":{"rendered":"<p><font face=\"Calibri\">In this post I am going to talk about overall global logout implementation.<\/font><strong><font face=\"Calibri\">\u00a0<\/font><\/strong><\/p>\n<p><font face=\"Calibri\"><strong>Problem description:<\/strong><\/font><font face=\"Calibri\"><strong>\u00a0<\/strong><\/font><\/p>\n<p><font face=\"Calibri\"><strong>For Example:<\/strong><\/font><\/p>\n<p><font face=\"Calibri\">1.<\/font>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <font face=\"Calibri\">Login into portal with user \u201cA\u201d. <\/font><\/p>\n<p><font face=\"Calibri\">2.<\/font>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <font face=\"Calibri\">Click the app link for example &#8220;X&#8221;, and application will open in new browser with user \u201cA\u201d.<\/font><\/p>\n<p><font face=\"Calibri\">3.<\/font>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <font face=\"Calibri\">Logout from portal, and login again in same session with different user \u201cB\u201d.<\/font><\/p>\n<p><font face=\"Calibri\">4.<\/font>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <font face=\"Calibri\">Again click the app link but now application not opening with user \u201cB\u201d its opening with user \u201cA\u201d.<\/font><font face=\"Calibri\">\u00a0<\/font><\/p>\n<p><font face=\"Calibri\">Regarding this issue we have implemented the chain call method, its mean calling all application logout page\u2019s. This approach will helps us to clear the application cookies and sessions.<\/font><font face=\"Calibri\">\u00a0<\/font><\/p>\n<p><font face=\"Calibri\"><strong>Advantage &amp; Disadvantage:<\/strong><\/font><font face=\"Calibri\">\u00a0<\/font><\/p>\n<p><font face=\"Calibri\">Clear the cookie and sessions, it will help us to see the new session.<\/font><font face=\"Calibri\">\u00a0<\/font><\/p>\n<p><font face=\"Calibri\">Logout can fail for any reason say any server is down, server not responding etc.<\/font><font face=\"Calibri\">\u00a0<\/font><\/p>\n<p><font face=\"Calibri\">For more information click <\/font><a href=\"https:\/\/onlineappsdba.com\/index.php\/2011\/06\/13\/global-logout-issue-same-userid-replicating-after-performing-logout-and-login-again-in-same-session\/\"><font color=\"#800080\" face=\"Calibri\">here<\/font><\/a><font face=\"Calibri\">.<\/font><font face=\"Calibri\">\u00a0<\/font><font face=\"Calibri\">\u00a0<\/font><\/p>\n<p><font face=\"Calibri\">For this problem I have come out with the below approach to overcome this issue. My approach as follow,<\/font><font face=\"Calibri\">\u00a0<\/font><\/p>\n<p><font face=\"Calibri\">1.<\/font>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <font face=\"Calibri\">Removing the chain call of logout pages.<\/font><\/p>\n<p><font face=\"Calibri\">2.<\/font>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <font face=\"Calibri\">Modified in application level.<\/font><font face=\"Calibri\">\u00a0<\/font><\/p>\n<p><font face=\"Calibri\">More information about my approach here.<\/font><font face=\"Calibri\">\u00a0<\/font><\/p>\n<p><font face=\"Calibri\"><strong>Why above mentioned issues is occurring?<\/strong><\/font><font face=\"Calibri\"><strong>\u00a0<\/strong><\/font><\/p>\n<p><font face=\"Calibri\"><strong>Ans: <\/strong><\/font><font face=\"Calibri\">\u00a0<\/font><\/p>\n<p><font face=\"Calibri\">1.<\/font>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <font face=\"Calibri\">First time login into portal with user \u201cA\u201d and then access application &#8220;X&#8221;, now in application level they are checking whether any session is exist or not if not then they read the header variable what IDM passed.<\/font><\/p>\n<p><font face=\"Calibri\">2.<\/font>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <font face=\"Calibri\">second time I\u2019m accessing the some other link in application in &#8220;X&#8221;, here again they checking any session is exist or not, here we have session of previous user so they continue with same session.<\/font><\/p>\n<p><font face=\"Calibri\">3.<\/font>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <font face=\"Calibri\">after logout from portal and login again with user \u201cB\u201d.<\/font><\/p>\n<p><font face=\"Calibri\">4.<\/font>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <font face=\"Calibri\">Access the\u00a0application &#8220;X&#8221;, this time they checking whether any session is exist or not, yes previous session is not deleted, so again continue with same session.<\/font><font face=\"Calibri\">\u00a0<\/font><\/p>\n<p><font face=\"Calibri\"><strong>Note:<\/strong> problem is they are not comparing the IDM cookie, they only checking their session value.<\/font><font face=\"Calibri\">\u00a0<\/font><\/p>\n<p><font face=\"Calibri\">We made some changes in application level\u00a0to compare the application &#8220;X&#8221; session value with IDM cookie value. If it not matches then remove the old session and create the new session. Now above issue get vanished.<\/font><font face=\"Calibri\">\u00a0<\/font><\/p>\n<p><font face=\"Calibri\"><strong>Advantage:<\/strong><\/font><\/p>\n<p><font face=\"Calibri\">1.<\/font>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <font face=\"Calibri\">No Looping. No need to worry about whether all servers are up and running or not.<\/font><\/p>\n<p><font face=\"Calibri\">2.<\/font>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <font face=\"Calibri\">Now portal and IDM will come into GL.<\/font><\/p>\n<p><font face=\"Calibri\">3.<\/font>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <font face=\"Calibri\">It faster than before implementation.<\/font><font face=\"Calibri\">\u00a0<\/font><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In this post I am going to talk about overall global logout implementation.\u00a0 Problem description:\u00a0 For Example: 1.\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Login into [&hellip;]<\/p>\n","protected":false},"author":115,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[32,51,40,42],"tags":[],"class_list":["post-2701","post","type-post","status-publish","format-standard","hentry","category-others","category-session","category-sso","category-troubleshooting"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.8 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Global logout Implementation -<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/onlineappsdba.com\/index.php\/2011\/09\/16\/global-logout-implementation\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Global logout Implementation -\" \/>\n<meta property=\"og:description\" content=\"In this post I am going to talk about overall global logout implementation.\u00a0 Problem description:\u00a0 For Example: 1.\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Login into [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/onlineappsdba.com\/index.php\/2011\/09\/16\/global-logout-implementation\/\" \/>\n<meta property=\"article:published_time\" content=\"2011-09-16T15:31:12+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2011-09-16T18:39:27+00:00\" \/>\n<meta name=\"author\" content=\"Masroof Ahmad\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Masroof Ahmad\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/onlineappsdba.com\/index.php\/2011\/09\/16\/global-logout-implementation\/\",\"url\":\"https:\/\/onlineappsdba.com\/index.php\/2011\/09\/16\/global-logout-implementation\/\",\"name\":\"Global logout Implementation -\",\"isPartOf\":{\"@id\":\"https:\/\/onlineappsdba.com\/#website\"},\"datePublished\":\"2011-09-16T15:31:12+00:00\",\"dateModified\":\"2011-09-16T18:39:27+00:00\",\"author\":{\"@id\":\"https:\/\/onlineappsdba.com\/#\/schema\/person\/909a876ed58d400faf82caf81d61bfdb\"},\"breadcrumb\":{\"@id\":\"https:\/\/onlineappsdba.com\/index.php\/2011\/09\/16\/global-logout-implementation\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/onlineappsdba.com\/index.php\/2011\/09\/16\/global-logout-implementation\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/onlineappsdba.com\/index.php\/2011\/09\/16\/global-logout-implementation\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/onlineappsdba.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Global logout Implementation\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/onlineappsdba.com\/#website\",\"url\":\"https:\/\/onlineappsdba.com\/\",\"name\":\"\",\"description\":\"Oracle Implementation &amp; Training Experts\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/onlineappsdba.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/onlineappsdba.com\/#\/schema\/person\/909a876ed58d400faf82caf81d61bfdb\",\"name\":\"Masroof Ahmad\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/onlineappsdba.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/10f9db7bdbbd7f9ccfbe9b2d208e5978fc28315e9c704383e639a926ea0fce5f?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/10f9db7bdbbd7f9ccfbe9b2d208e5978fc28315e9c704383e639a926ea0fce5f?s=96&d=mm&r=g\",\"caption\":\"Masroof Ahmad\"},\"url\":\"https:\/\/onlineappsdba.com\/index.php\/author\/masroof\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Global logout Implementation -","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/onlineappsdba.com\/index.php\/2011\/09\/16\/global-logout-implementation\/","og_locale":"en_US","og_type":"article","og_title":"Global logout Implementation -","og_description":"In this post I am going to talk about overall global logout implementation.\u00a0 Problem description:\u00a0 For Example: 1.\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Login into [&hellip;]","og_url":"https:\/\/onlineappsdba.com\/index.php\/2011\/09\/16\/global-logout-implementation\/","article_published_time":"2011-09-16T15:31:12+00:00","article_modified_time":"2011-09-16T18:39:27+00:00","author":"Masroof Ahmad","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Masroof Ahmad","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/onlineappsdba.com\/index.php\/2011\/09\/16\/global-logout-implementation\/","url":"https:\/\/onlineappsdba.com\/index.php\/2011\/09\/16\/global-logout-implementation\/","name":"Global logout Implementation -","isPartOf":{"@id":"https:\/\/onlineappsdba.com\/#website"},"datePublished":"2011-09-16T15:31:12+00:00","dateModified":"2011-09-16T18:39:27+00:00","author":{"@id":"https:\/\/onlineappsdba.com\/#\/schema\/person\/909a876ed58d400faf82caf81d61bfdb"},"breadcrumb":{"@id":"https:\/\/onlineappsdba.com\/index.php\/2011\/09\/16\/global-logout-implementation\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/onlineappsdba.com\/index.php\/2011\/09\/16\/global-logout-implementation\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/onlineappsdba.com\/index.php\/2011\/09\/16\/global-logout-implementation\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/onlineappsdba.com\/"},{"@type":"ListItem","position":2,"name":"Global logout Implementation"}]},{"@type":"WebSite","@id":"https:\/\/onlineappsdba.com\/#website","url":"https:\/\/onlineappsdba.com\/","name":"","description":"Oracle Implementation &amp; Training Experts","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/onlineappsdba.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/onlineappsdba.com\/#\/schema\/person\/909a876ed58d400faf82caf81d61bfdb","name":"Masroof Ahmad","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/onlineappsdba.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/10f9db7bdbbd7f9ccfbe9b2d208e5978fc28315e9c704383e639a926ea0fce5f?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/10f9db7bdbbd7f9ccfbe9b2d208e5978fc28315e9c704383e639a926ea0fce5f?s=96&d=mm&r=g","caption":"Masroof Ahmad"},"url":"https:\/\/onlineappsdba.com\/index.php\/author\/masroof\/"}]}},"_links":{"self":[{"href":"https:\/\/onlineappsdba.com\/index.php\/wp-json\/wp\/v2\/posts\/2701","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/onlineappsdba.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/onlineappsdba.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/onlineappsdba.com\/index.php\/wp-json\/wp\/v2\/users\/115"}],"replies":[{"embeddable":true,"href":"https:\/\/onlineappsdba.com\/index.php\/wp-json\/wp\/v2\/comments?post=2701"}],"version-history":[{"count":0,"href":"https:\/\/onlineappsdba.com\/index.php\/wp-json\/wp\/v2\/posts\/2701\/revisions"}],"wp:attachment":[{"href":"https:\/\/onlineappsdba.com\/index.php\/wp-json\/wp\/v2\/media?parent=2701"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/onlineappsdba.com\/index.php\/wp-json\/wp\/v2\/categories?post=2701"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/onlineappsdba.com\/index.php\/wp-json\/wp\/v2\/tags?post=2701"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}