0
現在我建立一個REST API CORS在Tomcat的8這是使用Apache的CorsFilter允許跨域請求,我設置爲我的web.xml這樣運行:摘要式身份驗證與Tomcat的
<filter>
<filter-name>CorsFilter</filter-name>
<filter-class>org.apache.catalina.filters.CorsFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>CorsFilter</filter-name>
<url-pattern>/webapi/*</url-pattern>
</filter-mapping>
到目前爲止,這麼簡單,我想爲我的Rest-API添加一個DIGEST認證,是的,不是基本的!
對於簡單的用法我想在web.xml中使用安全約束:
<security-constraint>
<web-resource-collection>
<web-resource-name>all</web-resource-name>
<url-pattern>/webapi/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>*</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>DIGEST</auth-method>
<realm-name>UserDatabase</realm-name>
</login-config>
身份驗證和CORS濾鏡上有自己的優秀,但在這裏開始的問題: 安全約束在CORS過濾器之前由servlet容器執行。 因此,驗證算法不會在摘要式驗證標頭中設置所需的CORS(跨域請求標頭),因此CORS請求在驗證時將失敗,因爲含有「challange」的摘要401頁(nonce,qop ,領域等)缺少跨域請求所需的頭文件。 現在是否有人爲此問題提供解決方案或實現?或者我真的需要實現我自己的摘要過濾器,因爲CORS?!