[英]How to implement custom ACLs for CalDAV in SabreDAV PHP Server
[英]Sabredav with no php://input (Kohana)
我有一个框架,在sabredav可以在PUT上获取它之前,它会吃掉php://input
。
有没有一种方法可以在Sabre\\HTTP\\Request
调用setBody(),所以我可以从我的框架( http://kohanaframework.org )传递它,这样getBody()不会尝试从空白的 php://input
获取它php://input
?
我想尝试避免入侵Sabre\\DAV\\Server
和/或Sabre\\HTTP\\Request
但不确定最好的方法是什么。
框架“包装”代码在此处(Sabredav示例中server.php的实现)
https://github.com/chrisgo/kohana-sabredav/blob/master/classes/Kohana/Controller/Webdav.php
最干净的解决方案似乎是创建一个插件来拦截PUT方法,并将主体设置回sabredav期望的位置
public function httpPutInterceptor($method, $uri) {
$this->server->httpRequest->setBody($this->body);
}
完整的模块: https : //github.com/chrisgo/kohana-sabredav
...现在我只需要弄清楚nginx为什么在二进制文件PUT
和文本文件PUT
上返回405(正确的行为,将其传递给PHP)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.