关键词:
// Create object to store functions
window.bk_so_integration = window.bk_so_integration || ;
window.bk_so_integration.functions = window.bk_so_integration.functions || ;
window.bk_so_integration.data = window.bk_so_integration.data || ;
window.bk_so_integration.config = window.bk_so_integration.config || ;
// CONFIG : EDIT THIS PART
// BlueKai Config
window.bk_so_integration.config.bluekai_jsonreturn_id = "XXXXX"; // Oracle will supply with you with the ID to use here
window.bk_so_integration.config.wait_in_ms = 1; // How long to wait before asking BlueKai for the latest categories and firing data to third party (default 5000ms)
window.bk_so_integration.config.include_audience_names = true; // Set to false to not share audience names to any vendors
window.bk_so_integration.config.enable_cookie = false;
// Vendor code : Adobe Target
window.bk_so_integration.config.enable_adobetarget = true;
window.bk_so_integration.config.adobe_company = "oracleexchangepartne"; // Set to company name (usually in COMPANYNAMEHERE.tt.omtrdc.net in mbox code)
/*
* ##########################################################################################
* DO NOT EDIT BELOW THIS LINE
* ##########################################################################################
*/
// FUNCTION : Local Storage Send
bk_so_integration.functions.localstorage_cookie_sender = function(data, name_of_var)
// Set data in first-party cookie if required
if(window.bk_so_integration.config.enable_cookie || window.bk_so_integration.config.enable_google_optimize)
// encode cookie value if sending audience names
var cookie_data = (name_of_var === "bk_audience_names") ? encodeURIComponent(data).replace(/'/g,"%27").replace(/"/g,"%22") : data;
document.cookie = name_of_var + "=" + cookie_data + ";path=/;domain=." + location.hostname.split('.').reverse()[1] + "." + location.hostname.split('.').reverse()[0] + ";expires=Thu, 31 Dec 2099 00:00:00 GMT";
bk_so_integration.functions.logger("COOKIES : storing '" + JSON.stringify(cookie_data) + "' as '" + name_of_var
+ "' cookie");
if (typeof (Storage) !== "undefined")
bk_so_integration.functions.logger("LOCAL STORAGE : storing '" + JSON.stringify(data) + "' as '" + name_of_var
+ "' in local storage");
localStorage.setItem(name_of_var, JSON.stringify(data));
else
bk_so_integration.functions.logger("LOCAL STORAGE : SEND DATA : HTML 5 NOT SUPPORTED");
return "no storage"; // HTML 5 NOT SUPPORTED
// FUNCTION : Local Storage Retrieve
bk_so_integration.functions.localstorage_retriever = function(name_of_var)
if (typeof (Storage) !== "undefined")
var result = JSON.parse(localStorage.getItem(name_of_var));
if (!result)
bk_so_integration.functions.logger("Local Storage : no " + name_of_var
+ " values available in local storage. Setting to empty array.");
return [];
bk_so_integration.functions.logger("Local Storage : Retrieved following '" + name_of_var
+ "' from local storage : " + result);
return result;
// FUNCTION : Local Storage fallback
bk_so_integration.functions.localstorage_fallback = function()
bk_so_integration.functions.logger("Local Storage : attempting fallback");
// category IDs
if (typeof (Storage) !== "undefined")
window.bk_so_integration.data.bk_category_ids = bk_so_integration.functions
.localstorage_retriever("bk_cat_ids");
window.bk_so_integration.data.bk_campaign_ids = bk_so_integration.functions
.localstorage_retriever("bk_campaign_ids");
if (window.bk_so_integration.config.include_audience_names)
window.bk_so_integration.data.bk_audience_names = bk_so_integration.functions
.localstorage_retriever("bk_audience_names");
// Send data to DFP
bk_so_integration.functions.sendTargets();
else
bk_so_integration.functions.logger("LOCAL STORAGE : SEND DATA : HTML 5 NOT SUPPORTED");
return "no storage"; // HTML 5 NOT SUPPORTED
bk_so_integration.functions.logger = function(message, attribute_object)
if (document.location.href.indexOf('bk_so_logger=true') > -1)
// session cookie
document.cookie = "bk_so_logger=" + "true" + ";path=/;domain=domain=." + location.hostname.split('.').reverse()[1] + "." + location.hostname.split('.').reverse()[0] + ";expires=";
if (document.cookie.indexOf('bk_so_logger=true') > -1)
if (typeof attribute_object === "undefined")
console.log("BLUEKAI SO : " + message);
else
for (varName in attribute_object)
console.log("BLUEKAI SO : " + message + varName + "=" + attribute_object[varName]);
;
bk_so_integration.functions.arrayAddUnique = function(array, entry)
if (array.indexOf(entry) < 0)
array.push(entry);
// FUNCTION : Parse BlueKai data and send to DFP
bk_so_integration.functions.parseBkResults = function()
// Parse BlueKai Campaign Results
window.bk_so_integration.data.bk_category_ids = [];
window.bk_so_integration.data.bk_campaign_ids = [];
window.bk_so_integration.data.bk_audience_names = [];
if (typeof (bk_results) != "undefined")
if (typeof (bk_results.campaigns[0]) != "undefined")
bk_so_integration.functions.logger("'bk_results' object found");
for (var i = 0; i < bk_results.campaigns.length; i++)
var campaignId = bk_results.campaigns[i].campaign
bk_so_integration.functions.arrayAddUnique(window.bk_so_integration.data.bk_campaign_ids, campaignId);
if (window.bk_so_integration.config.include_audience_names)
var audience_name = bk_results.campaigns[i].BkDmpAudienceName;
if (typeof (audience_name) != "undefined")
audience_name = decodeURIComponent(audience_name.replace(/\+/g, " ")); // decode URI
bk_so_integration.functions.logger("Audience name found: " + audience_name);
bk_so_integration.functions.arrayAddUnique(window.bk_so_integration.data.bk_audience_names,
audience_name)
for (var j = 0; j < bk_results.campaigns[i].categories.length; j++)
if (typeof (bk_results.campaigns[i].categories[j].categoryID) != "undefined")
var categoryId = bk_results.campaigns[i].categories[j].categoryID;
bk_so_integration.functions.arrayAddUnique(window.bk_so_integration.data.bk_category_ids,
categoryId);
// Send data to Local Storage
bk_so_integration.functions
.localstorage_cookie_sender(window.bk_so_integration.data.bk_category_ids, "bk_cat_ids");
bk_so_integration.functions.localstorage_cookie_sender(window.bk_so_integration.data.bk_campaign_ids,
"bk_campaign_ids");
if (window.bk_so_integration.config.include_audience_names)
bk_so_integration.functions.localstorage_cookie_sender(window.bk_so_integration.data.bk_audience_names,
"bk_audience_names");
// Send data to DFP
bk_so_integration.functions.sendTargets();
else
bk_so_integration.functions.logger("No campaigns object");
bk_so_integration.functions.sendTargets = function()
bk_so_integration.functions.logger("Determine target systems to send data");
if (window.bk_so_integration.config.enable_adobetarget)
bk_so_integration.functions.sendATT();
/*
* ##########################################################################################
* ADOBE TEST AND TARGET CODE
* ##########################################################################################
*/
bk_so_integration.functions.sendATT = function()
// Parse BlueKai Campaign Results
window.bk_so_integration.data.insertProfileBKCamps = ("profile.bkCampaignIds=|" + window.bk_so_integration.data.bk_campaign_ids
.join("|") + "|");
window.bk_so_integration.data.insertProfileBKCatIds = ("profile.bkCategoryIds=|" + window.bk_so_integration.data.bk_category_ids
.join("|") + "|");
if (window.bk_so_integration.config.include_audience_names)
window.bk_so_integration.data.insertProfileBKAudienceNames = ("profile.bkAudienceNames=|" + window.bk_so_integration.data.bk_audience_names
.join("|") + "|");
var img_url = "//" + window.bk_so_integration.config.adobe_company + ".tt.omtrdc.net/m2/"
+ window.bk_so_integration.config.adobe_company + "/ubox/image?mbox=bk_data_feed&"
+ window.bk_so_integration.data.insertProfileBKCamps + "&"
+ window.bk_so_integration.data.insertProfileBKCatIds + "&";
if (window.bk_so_integration.config.include_audience_names)
img_url = img_url + window.bk_so_integration.data.insertProfileBKAudienceNames;
img_url = img_url + "&mboxDefault\x3d//tags.bkrtx.com/1x1.gif";
// Parse BlueKai Campaign Results
(new Image).src = img_url;
bk_so_integration.functions.logger("BLUEKAI ADOBE TARGET : Profile Pixel fired");
bk_so_integration.functions.logger("BLUEKAI ADOBE TARGET : Pixel URL: " + img_url);
// FUNCTION : Call BlueKai
bk_so_integration.functions.callBlueKai = function(bluekai_jsonreturn_id)
1
// Check if JSON return tag and bk_results already there
if ((window.bk_results)
&& (document.head && document.head.innerHTML.indexOf(bluekai_jsonreturn_id + '?ret=js') > -1)
|| (document.body && document.body.innerHTML.indexOf(bluekai_jsonreturn_id + '?ret=js') > -1))
bk_so_integration.functions.logger("JSON Return tag found");
bk_so_integration.functions.logger("Parsing 'bk_results' directly");
bk_so_integration.functions.parseBkResults(); // Parse results (don't
// call JSON ret tag)
else
bk_so_integration.functions.logger("JSON Return tag NOT found");
bk_so_integration.functions.localstorage_fallback(); // Grab from
// local storage
bk_so_integration.functions.logger("Waiting " + window.bk_so_integration.config.wait_in_ms
+ "ms before calling JSON Return Tag");
setTimeout(function()
bk_so_integration.functions.logger("Calling JSON Return tag");
var bk_json_ret = document.createElement("script");
bk_json_ret.type = "text/javascript";
bk_json_ret.onload = function()
bk_so_integration.functions.logger("JSON Return tag loaded");
bk_so_integration.functions.logger("Parsing 'bk_results'");
bk_so_integration.functions.parseBkResults(); // Parse results
;
bk_so_integration.functions.parseBkResults(); // Parse results
bk_json_ret.src = "//tags.bluekai.com/site/" + bluekai_jsonreturn_id
+ "?ret=js&limit=1&phint=integration=so";
document.head.appendChild(bk_json_ret);
, window.bk_so_integration.config.wait_in_ms);
;
// CONFIG LOGGING : Loop through config and log
for (configs in window.bk_so_integration.config)
bk_so_integration.functions.logger("CONFIG : " + configs + " = " + window.bk_so_integration.config[configs]);
// RUN CODE
bk_so_integration.functions.callBlueKai(window.bk_so_integration.config.bluekai_jsonreturn_id);
AWS SSO 不受 Control Tower 管理
...时间】:2020-05-1914:13:34【问题描述】:我正在努力实现的目标当我尝试在ControlTower中管理用户时,我看到了这个:(此页面仅适用于使用由AWSControlTower管理的SSO目录的客户-基本上对于Google,我在那里找不到)我没有关于这个错... 查看详情
如何更改 Spring SAML 目标端点?
】如何更改SpringSAML目标端点?【英文标题】:HowtochangeSpringSAMLdestinationendpoint?【发布时间】:2015-07-0304:09:48【问题描述】:是否可以在SpringSAML中更改目标端点?默认值为/saml/SSO我需要将其更改为/sso。我已经编辑了<beanid="samlFil... 查看详情
使用 JWT 的单点登录 (SSO)
】使用JWT的单点登录(SSO)【英文标题】:SingleSignOn(SSO)usingJWT【发布时间】:2017-03-2410:52:20【问题描述】:我已经阅读了几篇关于sso的文章,但在我的脑海中找不到答案。我有一个像下面这样的场景:场景:我的公司想要使用jwt的... 查看详情
javascriptpaysafecard:vwo:sso代码(代码片段)
查看详情
分布式单点登录框架xxl-sso(代码片段)
1.分布式单点登录框架xxl-ssohttps://gitee.com/xuxueli0323/xxl-sso1.1.实战运行1.1.1.说明从上述地址下载源码重点是运行xxl-sso-server,xxl-sso-web-sample-springboot,他们都依赖xxl-sso-core1.1.2.架构图1.1.3.需要修改配置xxl-sso-server和xxl-sso-web-sample-spring... 查看详情
sso单点登录(改造sso认证服务登录界面)(代码片段)
文章目录引言1.效果图2.登录界面代码(前端+后台)3.总结引言在上一篇主要讲解了如何集成SSO认证中心,集成成功后,登录界面和登录成功界面如下图所示:登录登录成功但是这个登录和主界面并不是我们... 查看详情
sso
SSO(SingleSignOn)出炉!可一键运行演示的SSO完整代码|手把手教单点登录系列三 查看详情
手把手教你用代码实现sso单点登录(代码片段)
1.概述1.1.什么是SSO?Hollis的新书限时折扣中,一本深入讲解Java基础的干货笔记!单点登录(SingleSign-On,简称SSO)是目前比较流行的服务于企业业务整合的解决方案之一,SSO使得在多个应用系统中,用户只需... 查看详情
sso单点登录-authelia(代码片段)
Authelia贴一下官方描述:AutheliaisanopensourceauthenticationandauthorizationserverprotectingmodernwebapplicationsbycollaboratingwithreverseproxiessuchasNGINX,TraefikandHAProxy.Consequently,nocodeisrequiredtop 查看详情
认证和sso-基于token的sso(代码片段)
1、修改项目使其基于浏览器cookie的SSO1.1、修改回调方法,获得到token后,由存放到session改为存放到cookie/***回调方法*接收认证服务器发来的授权码,并换取令牌**@paramcode授权码*@paramstate请求授权服务器时发送的state*/@GetMapping("/oau... 查看详情
基于cas实现sso单点登录(代码片段)
点击关注公众号,实用技术文章及时了解1.概述1.1.什么是SSO?单点登录(SingleSign-On,简称SSO)是目前比较流行的服务于企业业务整合的解决方案之一,SSO使得在多个应用系统中,用户只需要登录一次就可以访问... 查看详情
无需手动输入凭据即可进行 SSO 身份验证
...份验证。用户不得手动输入其凭据。我必须以某种方式从目标中获取用户名,然后检查ActiveDirectory,然后登录。在网上搜索我发现我必须配置Apach 查看详情
xxl-sso分布式单点登录框架-cookie逻辑解析(代码片段)
文章目录1.XXL-SSO登录逻辑2.XXL-SSO注销逻辑1.XXL-SSO登录逻辑代码逻辑描述访问pro.com,获取pro.com域的cookie(xxl_sso_sessionid,由userId_随机数码组成)为空,从请求参数获取cookie为空;获取用户信息为空,重定向sso... 查看详情
单点登录sso的实现原理
单点登录SSO(SingleSignOn)说得简单点就是在一个多系统共存的环境下,用户在一处登录后,就不用在其他系统中登录,也就是用户的一次登录能得到其他所有系统的信任。单点登录在大型网站里使用得非常频繁,例如像阿里巴巴... 查看详情
单点登录(sso)原理(代码片段)
在整个SSO流程当,有两个流程非常重要: 第一个是用户没有登录系统到登录系统的过程; 第二是用户在一个系统当中已经登录(例如在OA系统中登录了),但又想进入另一个系统(例如进入PRO系统)的过程一、用户没有... 查看详情
sso单点登入流程(代码片段)
SSO单点登入流程用户登入后,通过JWT将通过一定规则生成一个token,不建议将重要信息放入token中,一般存放唯一标识符这里为什么不在登入后就将用户信息存放入cookie中是因为,cookie存放信息不安全将token存入Cookie中创建拦截器,拦截... 查看详情
sso(singlesignon)模式--单点登录三种登录方式(代码片段)
SSO(singlesignon)模式--单点登录单点登录:分布式项目中不再使用session来保存用户登录数据缺点:单点性能压力,无法扩展1.2.SSO(singlesignon)模式分布式,SSO(singlesignon)模式优点:用户身份信息独立管理,更好的分布... 查看详情
单点登录sso的实现原理(转)
单点登录SSO(SingleSignOn)说得简单点就是在一个多系统共存的环境下,用户在一处登录后,就不用在其他系统中登录,也就是用户的一次登录能得到其他所有系统的信任。单点登录在大型网站里使用得非常频繁,例如像阿里巴巴... 查看详情