0
votes

I have this TWDC(tableau web data connector) app hosted on our company's private cloud. Every app that are deployed there are accessed after the user logs in via a Single Sign On login page, then redirected to the app.

When I try to use my web data connector on my Tableau Desktop it gets stuck on an infinite loop, after i push the button which does tableau.submit().

I've set the debugger and found out, that when I push the button, the page that is loaded is not the index.html of my WDC but the redirect page from the SSO login. I have no idea why is this happening, doesn't make much sense, because it loaded the index.html in the first place, but after i push this button it gets back to somewhere in the middle of SSO login and redirect page.

Just a note: It works fine on the simulator.

Any thougths on this?

Here's my code:

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));
  }
});
1

1 Answers

1
votes

This isn't a problem with your code. With the WDC there is an interactive phase where the user is shown a screen and can interact (this is your first SSO sign-in) but then there is a non-interactive (Get Data) phase where Tableau will try to retrieve the data and never shows the SSO login to the user. See docs. Given this page is loaded without user interaction it can't/shouldn't have SSO security on it.