2016-04-01 9 views
0

Bu, 2.7.1 sürümünde (veya daha büyük bir sürümde) bir özellik mi yoksa hata mı, yoksa aşağıda GET olduğunda fark ettiğim davranış olup olmadığından emin değilim. Web tarayıcıları kullanılarak BARE CXF web servisine istek gönderilir.BARE CXF web hizmeti, web tarayıcılarından GET isteği için hiçbir parametre çalıştırma/yöntem çağrısı yapmıyor

Kod Parçaları:

@WebService 
@SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE) 
public interface HelloWorld 
{ 
    @WebMethod(action = "/sayHi") 
    @WebResult(name = "strResponse", partName = "strResponse") 
    public String sayHi(); 

    @WebMethod(action = "/sayHiToUser") 
    @WebResult(name = "strResponse", partName = "strResponse") 
    String sayHiToUser(@WebParam(name="user") String user); 
} 

@WebService 
public class HelloWorldImpl implements HelloWorld 
{ 
    @Override 
    public String sayHi() 
    { 
     return "Hi there..."; 
    } 

    @Override 
    public String sayHiToUser(String user) 
    { 
     return "Hi " + user; 
    } 
} 

<jaxws:endpoint 
    id="helloWorld" 
    implementor="com.cxf.service.HelloWorldImpl" 
    address="http://127.0.0.1:8080/HelloWorld" 
    endpointName="e:HelloWorld" 
    xmlns:e="http://service.jaxws.cxf.apache.org/endpoint"> 
</jaxws:endpoint> 

Çevre/Configs:

Java 1.6 •
• Bahar 2.7.0/2.7.1
CXF • 3.0.0
• CXF web hizmeti, bahar içeriği

kullanılarak gömülü İskelenin içinde başlar.

Detaylı Açıklama:

CXF Versiyon 2.7.0: Ben "http://127.0.0.1:8080/HelloWorld" URL ile web tarayıcısı kullanarak bu web hizmeti eriştiğinizde
(? Hayır sonunda wsdl), ben "alıyorum Böyle bir işlem "yanıtı, beklenen davranış olan BARE & WRAPPED ParameterStyle için web tarayıcısında geri döndü.

CXF Versiyon 2.7.1 (veya üzeri):
ParameterStyle SARGILI: Ben (? Sonundaki Hayır wsdl) Yukarıdaki aynı URL ile web tarayıcısı kullanarak bu web hizmeti eriştiğinizde, "Bilinmeyen bir yöntemle bilinmeyen bir yöntemi çağırırken bağlayıcı bir işlem bilgisi yok" alıyorum. web tarayıcısında beklenen davranış olan yanıttır.
ParameterStyle BARE: Web tarayıcısını, yukarıdaki URL'yi (No? Wsdl sonunda) kullanarak erişirken, web tarayıcısında "Merhaba" yanıtını alıyorum. SayHi() işlemi/yöntemini çağırır, ancak GET isteği üstbilgisinde belirtilen SOAPAction yoktur. Bu beklenen cevap DEĞİLDİR. ParameterStyle WRAPPED ile aynı yanıtı bekliyordum.

Sonuçlar:

CXF Versiyon: 2.7.0
• URL: Yukarıdaki ile aynı url ParameterStyle •
(? Web tarayıcısı ve sonunda hiçbir wsdl kullanarak): ÇIPLAK/Yanıt: Böyle bir işlem yok
• ParameterStyle: WRAPPED/Response: Böyle bir işlem yok
• Beklenen Sonuç? EVET

CXF Versiyon: 2.7.1 (veya daha fazla)
• URL: (? Sonundaki web tarayıcısı ve hiçbir wsdl kullanarak) Yukarıdaki ile aynı url ParameterStyle •
: ÇIPLAK/Yanıt: Merhaba Orada.../ Called sayHi()
• ParameterStyle: WRAPPED/Yanıt: Bilinmeyen bir yöntemle bilinmeyen yöntem çağrılırken bağlama işlemi bilgisi yok.
• Beklenen Sonuç? YOK HAYIR. BARE, WRAPPED

cevap

0

ile aynı sonucu döndürmelidir. İlk bakışta, bu URIMappingInterceptor gibi görünüyor, bkz. Daha sonraki sürümlerde yeniden atılan http://cxf.apache.org/cve-2012-5633.html. Belki de kurulumunuza kazayla eklediniz/eklediniz (veya bazı varsayılanlar değişmedi, emin değil).

BTW: Bu CXF sürümü oldukça eski (2012), her ikisi de hata & güvenlik düzeltmeleri için daha yeni bir tane kullanmanızı öneririm.