我在我们公司的私有云上托管了TWDC(tableau Web数据连接器)应用程序。 用户通过“单一登录”登录页面登录后,将访问在那里部署的每个应用程序,然后将其重定向到该应用程序。
当我尝试在Tableau Desktop上使用Web数据连接器时,在按下执行tableau.submit()
的按钮后,它陷入了无限循环。
我已经设置了调试器,并发现,当我按下按钮时,加载的页面不是WDC的index.html,而是SSO登录名中的重定向页面。 我不知道为什么会这样,这没有什么意义,因为它首先加载了index.html,但是在我按下此按钮后,它又回到了SSO登录和重定向页面的中间。 / p>
请注意:在模拟器上可以正常工作。
对此有何想法?
这是我的代码:
HTML
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>TableauAngular</title>
<base href="/">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" type="image/x-icon" href="favicon.ico">
<script type="text/javascript" src="assets/js/jquery.min.js"></script>
<script type="text/javascript" src="assets/js/tableauwdc-2.3.latest.js"></script>
<script type="text/javascript" src="controller.js"></script>
</head>
<body>
<button id="submitButton">Send</button>
<br />
<br />
<textarea id="log" style="border: 1px solid #000; width: 100%; height: 700px;"></textarea>
<br />
<div id="placeholder"></div>
</body>
</html>
JavaScript
$(document).ready(function() {
try {
$("#submitButton").click(function() { tableau.submit() });
var myConnector = tableau.makeConnector();
// these are function which are not important for this question;
myConnector.getSchema = fnGetSchema;
myConnector.getData = fnGetData;
tableau.registerConnector(myConnector);
} catch (e) {
logger("ERROR: " + JSON.stringify(e));
}
});
答案 0 :(得分:1)
这不是您的代码的问题。使用WDC,有一个交互式阶段,其中向用户显示一个屏幕并可以进行交互(这是您的第一个SSO登录),但是接下来是一个非交互式(获取数据)阶段,Tableau将尝试检索数据并进行交互。从不向用户显示SSO登录名。参见docs。鉴于此页面是在没有用户交互的情况下加载的,因此它不能/不应该具有SSO安全性。