工具准備: tomcat-8.0.53
前言:由於工作需要,希望自己搭建webdav服務端,剛開始用windowsServer 2012 R2版本自帶的IIS服務器搭建,搭建好之后瀏覽器可以訪問,但無法添加網絡位置,查詢很多資料最終無果。
只好換另一種方式搭建,查詢資料后決定用tomcat老搭建webdav,參考教程https://www.cnblogs.com/EasonJim/p/6859345.html搭建后,成功搭建webDav服務,在windows上也可以
添加網絡映射,但又發現瀏覽器不用輸入密碼就可以訪問,這樣安全性完全沒有保障。 查詢了tomcat web.xml安全配置,終於解決了問題。需要在security-constraint節點下添加如下圖
黃色部分的配置,重啟服務,瀏覽器訪問出現安全驗證。
下面專門整理了完整的步驟,作為學習歸檔,同時獻給需要搭建webdav的朋友們,節約搭建時間。
1、在Tomcat的webapps目錄下新建webdav文件夾,並在此文件夾下新建WEB-INF\web.xml文件
完整的文件目錄為:D:\apache-tomcat-8.0.53\webapps\webdav\WEB-INF\web.xml
2.添加web配置
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> <display-name>webdav</display-name> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <welcome-file>default.jsp</welcome-file> </welcome-file-list> <servlet> <servlet-name>webdav</servlet-name> <servlet-class>org.apache.catalina.servlets.WebdavServlet</servlet-class> <init-param> <param-name>debug</param-name> <param-value>0</param-value> </init-param> <init-param> <param-name>listings</param-name> <param-value>true</param-value> </init-param> <!-- Read-Write Access Settings --> <init-param> <param-name>readonly</param-name> <param-value>false</param-value> </init-param> </servlet> <!-- URL Mapping --> <servlet-mapping> <servlet-name>webdav</servlet-name> <url-pattern>/*</url-pattern> </servlet-mapping> <security-constraint> <web-resource-collection> <web-resource-name>webdav</web-resource-name> <!-- Detect WebDAV Methods in URL For Whole Application --> <url-pattern>/*</url-pattern> <http-method>GET</http-method> <http-method>POST</http-method> <!-- <http-method>GET</http-method> <http-method>PUT</http-method> <http-method>HEAD</http-method> <http-method>TRACE</http-method> <http-method>POST</http-method> <http-method>DELETE</http-method> <http-method>OPTIONS</http-method> --> <http-method>PROPFIND</http-method> <http-method>PROPPATCH</http-method> <http-method>COPY</http-method> <http-method>MOVE</http-method> <http-method>LOCK</http-method> <http-method>UNLOCK</http-method> </web-resource-collection> <!-- Restrict access by role --> <auth-constraint> <role-name>*</role-name> </auth-constraint> </security-constraint> <login-config> <auth-method>BASIC</auth-method> <realm-name>webdav</realm-name> </login-config> <security-role> <description>WebDAV User</description> <role-name>webdav</role-name> </security-role> </web-app>
提示如果通過流浪器訪問時不需要用戶名密碼,將web.xml中以下配置刪除后重啟服務即可
<http-method>GET</http-method>
<http-method>POST</http-method>
3.添加用戶
<role-name>為自定義權限名稱。
根據上面權限名稱,在Tomcat賬號體系中增加賬號密碼,配置如下:
打開D:\apache-tomcat-8.0.53\conf\tomcat-users.xml
<role rolename="webdav"/> <user username="admin" password="admin" roles="webdav"/>
重啟tomcat后訪問http:127.0.0.1:8080/webdav,出現以下信息表示成功
輸入賬號密碼后,顯示如下
參考1:https://www.cnblogs.com/EasonJim/p/6859345.html
參考2:https://www.cnblogs.com/ansen/articles/2017360.html