2012-11-20 40 views
0

我正尝试使用Javascript连接到Splunk。我已经与Java连接,能够做我想做的任何事情。当我尝试使用Javascript连接时,我一直得到401.我对Java和Javascript都使用相同的凭据,所以我知道这里没有问题。我的代码直接在示例之外。那就是:我无法使用Javascript连接到Splunk,但可以使用Java

exports.main = function(opts, done) { 
    // This is just for testing - ignore it 
    opts = opts || {}; 

    var username = opts.username || "username"; 
    var password = opts.password || "password"; 
    var scheme = opts.scheme  || "https"; 
    var host  = opts.host  || "domain.com"; 
    var port  = opts.port  || "8089"; 
    var version = opts.version  || "5"; 

    var service = new splunkjs.Service({ 
     username: "username", 
     password: "password", 
     scheme: "https", 
     host: "domain.com", 
     port: "8089", 
     version: "5" 
    }); 

    // First, we log in 
    service.login(function(err, success) { 
     // We check for both errors in the connection as well 
     // as if the login itself failed. 
     if (err || !success) { 
      console.log("Error in logging in"); 
      console.log(err); 
      done(err || "Login failed"); 
      return; 
     } 

     // Now that we're logged in, let's get a listing of all the saved searches. 
     service.savedSearches().fetch(function(err, searches) { 
      if (err) { 
       console.log("There was an error retrieving the list of saved searches:", err); 
       done(err); 
       return; 
      } 

      var searchList = searches.list(); 
      console.log("Saved searches:"); 
      for(var i = 0; i < searchList.length; i++) { 
       var search = searchList[i]; 
       console.log(" Search " + i + ": " + search.name); 
       console.log(" " + search.properties().search); 
      } 

      done(); 
     }); 
    }); 
}; 

if (module === require.main) { 
    exports.main({}, function() {}); 
} 

以下是错误消息:

There was an error retrieving the list of saved searches: { response: 
    { headers: 
     { connection: 'close', 
     'content-length': '100', 
     'content-type': 'text/xml; charset=utf-8', 
     date: 'Tue, 20 Nov 2012 22:27:11 GMT', 
     server: 'Splunkd' }, 
    statusCode: 401 }, 
    status: 401, 
    data: '<response>\n<messages>\n<msg type="WARN">call not properly authenticated</msg>\n</messages>\n</response>', 
    error: null } 

我节点在命令行中运行这个并获得401错误。我还需要检查什么,看看我做错了什么。

回答

0

跨起源策略无疑CORS

0

跨来源的政策绝对是你想要看出来,你开始进入更高级的用例的SDK,但看你的示例代码的东西,它看起来像你无意中在实例化service对象时,在变量名称周围放置双引号。

我复制了您的代码,将变量值替换为我的服务器,第二次删除了双引号,并使用节点通过命令行对其进行了验证...它工作得很好。

相关问题