2013-11-25 70 views
1

我嘗試按照cookbook創建自己的身份驗證提供程序。Symfony2安全性和X-WSSE http標頭

這裏是WSSE聽衆:

$request = $event->getRequest(); 

$wsseRegex = '/UsernameToken Username="([^"]+)", PasswordDigest="([^"]+)", Nonce="([^"]+)", Created="([^"]+)"/'; 
if (!$request->headers->has('x-wsse') || 1 !== preg_match($wsseRegex, $request->headers->get('x-wsse'), $matches)) { 
    return; 
} 

$token = new WsseUserToken();... 

正如你可以看到創建WSSE標記,HTTP請求需要有X-WSSE頭。

在我的情況下,它從來不存在。

問題:何時應該發送此標題,以及如何發送?

我認爲,mybe,這將是我以後使用security.yml輸入的用戶名和密碼:

wsse_secured: 
     pattern: ^/ 
     wsse: true 

因爲WSSE的:真的......

的結果這個問題是使用的令牌不是我定義的,而是默認的。

Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken 

謝謝

回答

3

我不知道你是否瞭解的方式WSSE作品。您的應用程序不會而不是發送標頭 - 客戶端必須將其包含在他的請求中。

WSSE認證主要由API(即SOAP)使用。

它有點類似於基本的HTTP身份驗證,但提供了更好的安全性。

查看更多關於它here

爲了驗證您的客戶端(瀏覽器,應用程序等)必須在HTTP請求中提供WSSE驗證頭。

認證報頭可以與JavaScript WSSE Header Generator

生成用戶可以模擬一個請求來自一個瀏覽器插件像WSSE頭: