2015-01-26 86 views
2

我對使用Frisby.js和使用SSL客戶端證書的REST服務有個疑問。如何在SSL客戶端證書上使用frisby.js?

如果我使用Request包交談的服務,我可以做這樣的事情:

request.get(URL, { 
    agentOptions: { 
    // Or use `pfx` property replacing `cert` and `key` when using private key, certificate and CA certs in PFX or PKCS12 format: 
    pfx: fs.readFileSync(pfxFilePath), 
    passphrase: 'password', 
    ca: fs.readFileSync(caFilePath) 
    } 
}); 

由於弗里斯比使用要求,我認爲我可以做一個弗里斯比試驗類似的東西,但我可以似乎沒有得到正確的語法。

你能提出一些可能有用的東西嗎?謝謝...

回答

1

.get().post()方法可以採取額外的結構與內容類似的選項參數https.request()。您需要提供(部分)的值:pfx,key,cert,capassphrase

事情是這樣的:

var fs  = require('fs'); 
var frisby = require('frisby'); 

frisbee.create('Test name') 
    .get(
    'https://localhost/rest/endpoint', 
    { 
     key:  fs.readFileSync("/path/to/certificates/certificate.key"), 
     cert:  fs.readFileSync("/path/to/certificates/certificate.crt"), 
     ca:   fs.readFileSync("/path/to/certificates/ca.crt"), 
     passphrase: "your pass phrase" 
    } 
) 
    .expectStatus(200) 
    .toss(); 
+0

很大,它的工作!我怎麼做每一個請求(在frisby.globalSetup?) – Fletch 2016-10-12 14:01:05

+0

@Fletch'globalSetup'的文檔似乎稀疏,它不是我已經嘗試過的。你可能會更好地問一個新的問題,因爲更多的人會看到它,而不是這個一年前的問題的評論。 – MT0 2016-10-12 14:14:27