2017-09-17 6 views
0

組み込みApache Tomcat(8.5.2)インスタンスでJAX-RSアプリケーション(RestEasy、3.1.2.Final)を実行しています。この設定はすべての作品でApache Tomcat 8.5.2 + Resteasy CORSフィルタが突然動作を停止します

<security-constraint> 
     <web-resource-collection> 
      <web-resource-name>Tango RESTful gateway</web-resource-name> 
      <url-pattern>/rest/*</url-pattern> 
      <http-method>GET</http-method> 
      <http-method>HEAD</http-method> 
      <http-method>POST</http-method> 
      <http-method>PUT</http-method> 
      <http-method>DELETE</http-method> 
     </web-resource-collection> 
     <auth-constraint> 
      <role-name>desy-user</role-name> 
      <role-name>mtango-rest</role-name> 
     </auth-constraint> 
    </security-constraint> 

:だけでなくweb.xmlで定義されたセキュリティ制約があり

import org.jboss.resteasy.plugins.interceptors.CorsFilter; 

@Override 
    public Set<Object> getSingletons() { 
     Set<Object> singletons = new LinkedHashSet<>(); 

     // = = = CORS = = = 
     CorsFilter cors = getCorsFilter(); 
     singletons.add(cors); 

     //... 

     return singletons; 
    } 

    private CorsFilter getCorsFilter() { 
     CorsFilter cors = new CorsFilter(); 
     cors.getAllowedOrigins().add("*"); 
     cors.setAllowCredentials(true); 
     cors.setAllowedMethods("GET,POST,PUT,DELETE,HEAD"); 
     cors.setCorsMaxAge(1209600); 
     cors.setAllowedHeaders("Origin,Accept,X-Requested-With,Content-Type,Access-Control-Request-Method,Access-Control-Request-Headers,Authorization,Accept-Encoding,Accept-Language,Access-Control-Request-Method,Cache-Control,Connection,Host,Referer,User-Agent"); 
     return cors; 
    } 

:これはので、私はRESTEasyのからそれにCORSフィルタを追加したパブリックRESTサービスです罰金しかし、数週間。数週間後にCORSプリフライトではなく、通常のシーケンスの401で失敗します。応答

Host: mstatus.esrf.fr 
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0 
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 
Accept-Language: en-US,en;q=0.5 
Accept-Encoding: gzip, deflate, br 
Access-Control-Request-Method: GET 
Access-Control-Request-Headers: authorization 
Origin: https://ingvord.github.io 
DNT: 1 
Connection: keep-alive 

リクエスト明らかにCORSフィルタはもはや実行されていない

Connection: Keep-Alive 
Content-Length: 62 
Content-Type: application/octet-stream 
Date: Sun, 17 Sep 2017 07:28:19 GMT 
Keep-Alive: timeout=5, max=85 
Server: Apache-Coyote/1.1 

- レスポンスヘッダはありませんそれは設定する。

このような現象が発生する原因は何ですか?もう一度、再起動後数週間は動作します。

アプリケーションリンク:

<security-constraint> 
    <web-resource-collection> 
     <web-resource-name>CORS preflight</web-resource-name> 
     <url-pattern>/*</url-pattern> 
     <http-method>OPTIONS</http-method> 
    </web-resource-collection> 
</security-constraint> 

まあが、少なくとも私たちがいない:事前にhttps://ingvord.github.io/tango-controls.demo/

おかげで、

答えて

0

は、どうやらweb.xmlに以下の追加の設定が問題を解決したようですかなり長い間、何らかの不正行為を観察する。

関連する問題