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?!

回答