XQuery/釋出到 Subversion
外觀
< XQuery
在內容管理系統上有一個按鈕,可以將檔案複製到遠端 Subversion 儲存庫。
在標準 Apache 伺服器上配置 Subversion 儲存庫,該伺服器配置了 SSL 證書。這將加密內部網路系統和遠端 Subversion 伺服器之間的所有通訊。我們還將身份驗證設定為基本身份驗證。
<Location "/testsvn/">
DAV svn
AuthName "svntest"
SVNParentPath /Library/Subversion/RepositoryTest
SVNAutoversioning on
<Limit GET HEAD OPTIONS CONNECT POST PROPFIND PUT DELETE PROPPATCH MKCOL COPY MOVE LOCK UNLOCK>
Require user testuser1 testuser2 testuser3
</Limit>
AuthType Basic
</Location>
HTTP 基本身份驗證要求使用者將使用者名稱和密碼與冒號分隔連線起來,然後對該字串進行 base64 編碼。然後將此字串傳送到 HTTP 標頭,鍵為“Authorization”。HTTP 標頭必須如下所示
Authorization = Basic BASE64-ENCODED-USER-PASSWORD
以下 XQuery 函式執行此過程。
declare function http:put-basic-auth($url, $content, $username, $password, $in-header) as node(){
let $credentials := concat($username, ':', $password)
let $encode := util:base64-encode($credentials)
let $value := concat('Basic ', $encode)
let $new-headers :=
<headers>
{$in-header/header}
<header name="Authorization" value="{$value}"/>
</headers>
let $response := httpclient:put($url, $content, false(), $new-headers)
return $response
};
要放置檔案,請將 URL 放置在正確的 content 區域中,以及要插入的內容,使用者名稱和密碼,以及
如果您沒有正確的工具,除錯身份驗證協議非常困難。一個有用的工具是為 httpclient 模組啟用日誌記錄。
<category name="org.apache.commons.httpclient" additivity="false">
<priority value="debug"/>
<appender-ref ref="console"/>
</category>