{"id":1426,"date":"2010-08-03T15:50:49","date_gmt":"2010-08-03T10:20:49","guid":{"rendered":"https:\/\/2thenew.today\/blog\/?p=1426"},"modified":"2016-12-19T15:04:05","modified_gmt":"2016-12-19T09:34:05","slug":"sharing-session-information-between-wordpress-and-grails-using-cookies-and-base64-encoding","status":"publish","type":"post","link":"https:\/\/2thenew.today\/blog\/sharing-session-information-between-wordpress-and-grails-using-cookies-and-base64-encoding\/","title":{"rendered":"Sharing Session Information between WordPress and Grails using Cookies and base64 encoding"},"content":{"rendered":"<p>A scenario arose in one of our projects that we had to share some information between the grails application (which was taking care of dynamic content) and wordpress (which was used to maintain the static pages about the application). The information was the logged in user&#8217;s name so that we could display that on the header. After giving it some thought, we decided that setting a cookie with the logged in user&#8217;s name from the grails application and then reading it from the wordpress application using javascript was one way of doing so.<\/p>\n<p>This was achieved by setting the cookie with code on grails side as<\/p>\n<blockquote>\n<pre lang=\"groovy\">Cookie cookie = new Cookie('userNameCookie', fullname);\r\ncookie.setVersion(-1)  \/\/ unknown version bypasses quoting logic\r\ncookie.path = \"\/\"\r\ncookie.maxAge = 30 * 60 * 60; \/\/30 minutes life\r\nresponse.addCookie(cookie)\r\n<\/pre>\n<\/blockquote>\n<p>There is an excellent <a href=\"http:\/\/plugins.jquery.com\/project\/cookie\">jQuery cookie plugin<\/a> to read cookies using javascript. All that needs to be done is include the javascript file and call the method given below to get the value from it<\/p>\n<blockquote>\n<pre lang=\"groovy\">jQuery.cookie('userNameCookie')\r\n<\/pre>\n<\/blockquote>\n<p>However, there was an issue with this approach. The usernames could have unicode characters like \u00e4, \u00f6 etc. The cookie was not getting set from the grails application and threw an Exception because the unicode characters weren&#8217;t escaped. The exception also suggested that we could use decodeBase64(). But since it was due to encode, we decided to convert the fullname to bytes, encode it to base64, call the toString() method and then set the value. What we did was to change the cookie value to from grails<\/p>\n<blockquote>\n<pre lang=\"groovy\">Cookie cookie = new Cookie('usercookie', fullname.bytes.encodeBase64().toString());\r\n<\/pre>\n<\/blockquote>\n<p>In order to decode this base64 encoded string on the client side, we used the <a href=\"http:\/\/plugins.jquery.com\/project\/base64\">jQuery Base 64 Functions plugin<\/a>. This can be used to decode a base64 encoded string as<\/p>\n<blockquote>\n<pre lang=\"groovy\">jQuery.base64Decode(jQuery.cookie('userNameCookie'));\r\n<\/pre>\n<\/blockquote>\n<p>This worked like a charm.<\/p>\n<p>Hope this helps<\/p>\n<p>Vivek<\/p>\n<p>vivek[at]intelligrape.com<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A scenario arose in one of our projects that we had to share some information between the grails application (which was taking care of dynamic content) and wordpress (which was used to maintain the static pages about the application). The information was the logged in user&#8217;s name so that we could display that on the [&hellip;]<\/p>\n","protected":false},"author":10,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"iawp_total_views":4,"footnotes":""},"categories":[7],"tags":[359,4840,55,360],"class_list":["post-1426","post","type-post","status-publish","format-standard","hentry","category-grails","tag-base64-encoding","tag-grails","tag-javascript","tag-jquery-plugins"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.0.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"A scenario arose in one of our projects that we had to share some information between the grails application (which was taking care of dynamic content) and wordpress (which was used to maintain the static pages about the application). The information was the logged in user&#039;s name so that we could display that on the\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Vivek Krishna\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/2thenew.today\/blog\/sharing-session-information-between-wordpress-and-grails-using-cookies-and-base64-encoding\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.0.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"TO THE NEW BLOG\" \/>\n\t\t<meta property=\"og:type\" content=\"blog\" \/>\n\t\t<meta property=\"og:title\" content=\"Sharing Session Information between WordPress and Grails using Cookies and base64 encoding | TO THE NEW Blog\" \/>\n\t\t<meta property=\"og:description\" content=\"A scenario arose in one of our projects that we had to share some information between the grails application (which was taking care of dynamic content) and wordpress (which was used to maintain the static pages about the application). The information was the logged in user&#039;s name so that we could display that on the\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/2thenew.today\/blog\/sharing-session-information-between-wordpress-and-grails-using-cookies-and-base64-encoding\/\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/2thenew.today\/blog\/wp-content\/themes\/ttn\/images\/social-logo.png\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/2thenew.today\/blog\/wp-content\/themes\/ttn\/images\/social-logo.png\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary\" \/>\n\t\t<meta name=\"twitter:site\" content=\"@tothenew\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Sharing Session Information between WordPress and Grails using Cookies and base64 encoding | TO THE NEW Blog\" \/>\n\t\t<meta name=\"twitter:description\" content=\"A scenario arose in one of our projects that we had to share some information between the grails application (which was taking care of dynamic content) and wordpress (which was used to maintain the static pages about the application). The information was the logged in user&#039;s name so that we could display that on the\" \/>\n\t\t<meta name=\"twitter:image\" content=\"https:\/\/2thenew.today\/blog\/wp-content\/themes\/ttn\/images\/social-logo.png\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/sharing-session-information-between-wordpress-and-grails-using-cookies-and-base64-encoding\\\/#article\",\"name\":\"Sharing Session Information between WordPress and Grails using Cookies and base64 encoding | TO THE NEW Blog\",\"headline\":\"Sharing Session Information between WordPress and Grails using Cookies and base64 encoding\",\"author\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/author\\\/vivek\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/#organization\"},\"datePublished\":\"2010-08-03T15:50:49+05:30\",\"dateModified\":\"2016-12-19T15:04:05+05:30\",\"inLanguage\":\"en-US\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/sharing-session-information-between-wordpress-and-grails-using-cookies-and-base64-encoding\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/sharing-session-information-between-wordpress-and-grails-using-cookies-and-base64-encoding\\\/#webpage\"},\"articleSection\":\"Grails, base64 encoding, Grails, javascript, jquery plugins\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/sharing-session-information-between-wordpress-and-grails-using-cookies-and-base64-encoding\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.tothenew.com\\\/blog\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/category\\\/grails\\\/#listItem\",\"name\":\"Grails\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/category\\\/grails\\\/#listItem\",\"position\":2,\"name\":\"Grails\",\"item\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/category\\\/grails\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/sharing-session-information-between-wordpress-and-grails-using-cookies-and-base64-encoding\\\/#listItem\",\"name\":\"Sharing Session Information between WordPress and Grails using Cookies and base64 encoding\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/sharing-session-information-between-wordpress-and-grails-using-cookies-and-base64-encoding\\\/#listItem\",\"position\":3,\"name\":\"Sharing Session Information between WordPress and Grails using Cookies and base64 encoding\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/category\\\/grails\\\/#listItem\",\"name\":\"Grails\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/#organization\",\"name\":\"TO THE NEW Blog\",\"url\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/author\\\/vivek\\\/#author\",\"url\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/author\\\/vivek\\\/\",\"name\":\"Vivek Krishna\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/sharing-session-information-between-wordpress-and-grails-using-cookies-and-base64-encoding\\\/#authorImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/07dba643a97b00215bacf46343f18d6cb7ab45f777264e13c22deb54f2cc830b?s=96&d=mm&r=g\",\"width\":96,\"height\":96,\"caption\":\"Vivek Krishna\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/sharing-session-information-between-wordpress-and-grails-using-cookies-and-base64-encoding\\\/#webpage\",\"url\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/sharing-session-information-between-wordpress-and-grails-using-cookies-and-base64-encoding\\\/\",\"name\":\"Sharing Session Information between WordPress and Grails using Cookies and base64 encoding | TO THE NEW Blog\",\"description\":\"A scenario arose in one of our projects that we had to share some information between the grails application (which was taking care of dynamic content) and wordpress (which was used to maintain the static pages about the application). The information was the logged in user's name so that we could display that on the\",\"inLanguage\":\"en-US\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/sharing-session-information-between-wordpress-and-grails-using-cookies-and-base64-encoding\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/author\\\/vivek\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/author\\\/vivek\\\/#author\"},\"datePublished\":\"2010-08-03T15:50:49+05:30\",\"dateModified\":\"2016-12-19T15:04:05+05:30\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/\",\"name\":\"TO THE NEW Blog\",\"inLanguage\":\"en-US\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Sharing Session Information between WordPress and Grails using Cookies and base64 encoding | TO THE NEW Blog","description":"A scenario arose in one of our projects that we had to share some information between the grails application (which was taking care of dynamic content) and wordpress (which was used to maintain the static pages about the application). The information was the logged in user's name so that we could display that on the","canonical_url":"https:\/\/2thenew.today\/blog\/sharing-session-information-between-wordpress-and-grails-using-cookies-and-base64-encoding\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/2thenew.today\/blog\/sharing-session-information-between-wordpress-and-grails-using-cookies-and-base64-encoding\/#article","name":"Sharing Session Information between WordPress and Grails using Cookies and base64 encoding | TO THE NEW Blog","headline":"Sharing Session Information between WordPress and Grails using Cookies and base64 encoding","author":{"@id":"https:\/\/2thenew.today\/blog\/author\/vivek\/#author"},"publisher":{"@id":"https:\/\/2thenew.today\/blog\/#organization"},"datePublished":"2010-08-03T15:50:49+05:30","dateModified":"2016-12-19T15:04:05+05:30","inLanguage":"en-US","mainEntityOfPage":{"@id":"https:\/\/2thenew.today\/blog\/sharing-session-information-between-wordpress-and-grails-using-cookies-and-base64-encoding\/#webpage"},"isPartOf":{"@id":"https:\/\/2thenew.today\/blog\/sharing-session-information-between-wordpress-and-grails-using-cookies-and-base64-encoding\/#webpage"},"articleSection":"Grails, base64 encoding, Grails, javascript, jquery plugins"},{"@type":"BreadcrumbList","@id":"https:\/\/2thenew.today\/blog\/sharing-session-information-between-wordpress-and-grails-using-cookies-and-base64-encoding\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/2thenew.today\/blog#listItem","position":1,"name":"Home","item":"https:\/\/2thenew.today\/blog","nextItem":{"@type":"ListItem","@id":"https:\/\/2thenew.today\/blog\/category\/grails\/#listItem","name":"Grails"}},{"@type":"ListItem","@id":"https:\/\/2thenew.today\/blog\/category\/grails\/#listItem","position":2,"name":"Grails","item":"https:\/\/2thenew.today\/blog\/category\/grails\/","nextItem":{"@type":"ListItem","@id":"https:\/\/2thenew.today\/blog\/sharing-session-information-between-wordpress-and-grails-using-cookies-and-base64-encoding\/#listItem","name":"Sharing Session Information between WordPress and Grails using Cookies and base64 encoding"},"previousItem":{"@type":"ListItem","@id":"https:\/\/2thenew.today\/blog#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/2thenew.today\/blog\/sharing-session-information-between-wordpress-and-grails-using-cookies-and-base64-encoding\/#listItem","position":3,"name":"Sharing Session Information between WordPress and Grails using Cookies and base64 encoding","previousItem":{"@type":"ListItem","@id":"https:\/\/2thenew.today\/blog\/category\/grails\/#listItem","name":"Grails"}}]},{"@type":"Organization","@id":"https:\/\/2thenew.today\/blog\/#organization","name":"TO THE NEW Blog","url":"https:\/\/2thenew.today\/blog\/"},{"@type":"Person","@id":"https:\/\/2thenew.today\/blog\/author\/vivek\/#author","url":"https:\/\/2thenew.today\/blog\/author\/vivek\/","name":"Vivek Krishna","image":{"@type":"ImageObject","@id":"https:\/\/2thenew.today\/blog\/sharing-session-information-between-wordpress-and-grails-using-cookies-and-base64-encoding\/#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/07dba643a97b00215bacf46343f18d6cb7ab45f777264e13c22deb54f2cc830b?s=96&d=mm&r=g","width":96,"height":96,"caption":"Vivek Krishna"}},{"@type":"WebPage","@id":"https:\/\/2thenew.today\/blog\/sharing-session-information-between-wordpress-and-grails-using-cookies-and-base64-encoding\/#webpage","url":"https:\/\/2thenew.today\/blog\/sharing-session-information-between-wordpress-and-grails-using-cookies-and-base64-encoding\/","name":"Sharing Session Information between WordPress and Grails using Cookies and base64 encoding | TO THE NEW Blog","description":"A scenario arose in one of our projects that we had to share some information between the grails application (which was taking care of dynamic content) and wordpress (which was used to maintain the static pages about the application). The information was the logged in user's name so that we could display that on the","inLanguage":"en-US","isPartOf":{"@id":"https:\/\/2thenew.today\/blog\/#website"},"breadcrumb":{"@id":"https:\/\/2thenew.today\/blog\/sharing-session-information-between-wordpress-and-grails-using-cookies-and-base64-encoding\/#breadcrumblist"},"author":{"@id":"https:\/\/2thenew.today\/blog\/author\/vivek\/#author"},"creator":{"@id":"https:\/\/2thenew.today\/blog\/author\/vivek\/#author"},"datePublished":"2010-08-03T15:50:49+05:30","dateModified":"2016-12-19T15:04:05+05:30"},{"@type":"WebSite","@id":"https:\/\/2thenew.today\/blog\/#website","url":"https:\/\/2thenew.today\/blog\/","name":"TO THE NEW Blog","inLanguage":"en-US","publisher":{"@id":"https:\/\/2thenew.today\/blog\/#organization"}}]},"og:locale":"en_US","og:site_name":"TO THE NEW BLOG","og:type":"blog","og:title":"Sharing Session Information between WordPress and Grails using Cookies and base64 encoding | TO THE NEW Blog","og:description":"A scenario arose in one of our projects that we had to share some information between the grails application (which was taking care of dynamic content) and wordpress (which was used to maintain the static pages about the application). The information was the logged in user's name so that we could display that on the","og:url":"https:\/\/2thenew.today\/blog\/sharing-session-information-between-wordpress-and-grails-using-cookies-and-base64-encoding\/","og:image":"https:\/\/2thenew.today\/blog\/wp-content\/themes\/ttn\/images\/social-logo.png","og:image:secure_url":"https:\/\/2thenew.today\/blog\/wp-content\/themes\/ttn\/images\/social-logo.png","twitter:card":"summary","twitter:site":"@tothenew","twitter:title":"Sharing Session Information between WordPress and Grails using Cookies and base64 encoding | TO THE NEW Blog","twitter:description":"A scenario arose in one of our projects that we had to share some information between the grails application (which was taking care of dynamic content) and wordpress (which was used to maintain the static pages about the application). The information was the logged in user's name so that we could display that on the","twitter:image":"https:\/\/2thenew.today\/blog\/wp-content\/themes\/ttn\/images\/social-logo.png"},"aioseo_meta_data":{"post_id":"1426","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"Article","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"limit_modified_date":false,"created":"2021-04-30 08:16:02","updated":"2024-02-29 11:00:21","focus_keyword":null,"additional_keywords":null,"truseo_locale":null,"ai":null,"breadcrumb_settings":null,"seo_analyzer_scan_date":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/2thenew.today\/blog\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/2thenew.today\/blog\/category\/grails\/\" title=\"Grails\">Grails<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tSharing Session Information between WordPress and Grails using Cookies and base64 encoding\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/2thenew.today\/blog"},{"label":"Grails","link":"https:\/\/2thenew.today\/blog\/category\/grails\/"},{"label":"Sharing Session Information between WordPress and Grails using Cookies and base64 encoding","link":"https:\/\/2thenew.today\/blog\/sharing-session-information-between-wordpress-and-grails-using-cookies-and-base64-encoding\/"}],"_links":{"self":[{"href":"https:\/\/2thenew.today\/blog\/wp-json\/wp\/v2\/posts\/1426","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/2thenew.today\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/2thenew.today\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/2thenew.today\/blog\/wp-json\/wp\/v2\/users\/10"}],"replies":[{"embeddable":true,"href":"https:\/\/2thenew.today\/blog\/wp-json\/wp\/v2\/comments?post=1426"}],"version-history":[{"count":0,"href":"https:\/\/2thenew.today\/blog\/wp-json\/wp\/v2\/posts\/1426\/revisions"}],"wp:attachment":[{"href":"https:\/\/2thenew.today\/blog\/wp-json\/wp\/v2\/media?parent=1426"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/2thenew.today\/blog\/wp-json\/wp\/v2\/categories?post=1426"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/2thenew.today\/blog\/wp-json\/wp\/v2\/tags?post=1426"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}