我试着按照食谱创建自己的身份验证提供者。
以下是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标头。
就我而言,它从来没有出现过。
问:什么时候应该发送这个标题,以及如何发送?
我想,mybe,应该是在我使用security.yml输入用户名和密码之后:
wsse_secured:
pattern: ^/
wsse: true因为这是真的..。
这个问题的结果是,所使用的令牌不是我定义的令牌,而是默认的令牌。
Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken谢谢
发布于 2013-11-25 12:39:30
我不确定你是否理解WSSE的工作方式。您的应用程序执行而不是发送标头--客户端必须将它们包含在他的请求中。
WSSE身份验证主要由API(即SOAP)使用。
它有点类似于基本的HTTP身份验证,但提供了一些更好的安全性。
阅读更多关于它的这里。
为了对客户端(浏览器、应用程序等)进行身份验证,必须在HTTP请求中提供WSSE身份验证头。
可以使用JavaScript WSSE头生成器生成身份验证标头。
您可以使用来自浏览器插件的WSSE头来模拟请求,如下所示:
https://stackoverflow.com/questions/20192876
复制相似问题