2015-10-19 14 views
13

我們正在將WebLogic 10.3.5 Web應用程序遷移到WebLogic 12.1.3,我們遇到了一個我們認爲可能與Web服務安全性有關的問題。該應用程序使用Axis 1.5.6調用SOA套件SOAP服務(仍在WebLogic 10.3.5上運行)。當Web服務的安全性是禁用的,我們回來了預期的響應:正在丟棄SOA Suite到Axis2的數據

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<ns3:getNamesResponse 
    xmlns:ns2="http://www.example.com/ABC/Common" 
    xmlns:ns3="http://www.example.com/ABC/Profile"> 
    <ns3:OperatingName> 
     <ns3:Number>123456789</ns3:Number> 
     <ns3:Name>Company Name, Inc.</ns3:Name> 
    </ns3:OperatingName> 
</ns3:getNamesResponse> 

但只要Web服務安全性已啓用(使用Apache 1.5.2壁壘,阿帕奇Neethi 2.0.5),我們開始接收空響應:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<ns2:getNamesResponse 
    xmlns:ns2="http://www.example.com/ABC/Profile" 
    xmlns:ns4="http://www.example.com/ABC/Common" /> 

奇怪的是,希望通過SOA套件控制檯時,出SOA的響應返回給Web應用程序(啓用安全)看起來是正確的:

<message> 
    <properties> 
     <property name="tracking.compositeInstanceId" value="2110209"/> 
     <property name="tracking.ecid" value="0058XKIkdpHFw00Fzzw0w00004Et005Kmk"/> 
     <property name="ws.wsu.id" value="Body-Body_tTzuB5XmRNQPR7Y7"/> 
    </properties> 
    <parts> 
     <part name="getNamesResponse"> 
      <bp:getNamesResponse> 
       <bp:OperatingName> 
        <bp:Number>123456789</bp:Number> 
        <bp:Name>Company Name, Inc.</bp:Name> 
       </bp:OperatingName> 
      </bp:getNamesResponse> 
     </part> 
    </parts> 
</message> 

沒有例外記錄。是否有其他人經歷過並解決了這些問題?

+0

您是否檢查過錯誤日誌? Weblogic有它自己的XML庫,所以它可能是一個庫衝突.. –

+0

您是否使用相同的soap請求? 據我所知,應該有新的安全標籤(WS - 安全1.1等) 而且可能SOA內部客戶端直接打到您的端點(繞過安全層)。 – devwebcl

+0

日誌不表示任何類型的故障。 SOAP客戶端代碼沒有改變,也沒有如上所述的客戶端組件版本(壘圖等)。在我看來,SOA是繞過安全的,那麼我們會得到一個安全異常。從安全角度看,一切似乎都起作用。這只是響應XML被丟棄。 – 6006604

回答

1

最後,我通過強制應用程序使用與應用程序捆綁在一起的JAR文件解決了這個問題,而不是WebLogic提供的JAR文件。使用Classloader Analysis Tool以及一些試驗和錯誤,我指定了與構建SOAP消息時使用的應用程序捆綁在一起的所有JAR,並在weblogic-application.xml中以類似方式結束:

<wls:prefer-application-packages> 
     <wls:package-name>com.ctc.wstx.*</wls:package-name> 
     <wls:package-name>javax.mail.*</wls:package-name> 
     <wls:package-name>javax.mail.event.*</wls:package-name> 
     <wls:package-name>javax.mail.internet.*</wls:package-name> 
     <wls:package-name>javax.mail.search.*</wls:package-name> 
     <wls:package-name>javax.mail.util.*</wls:package-name> 
     <wls:package-name>javax.wsdl.*</wls:package-name> 
     <wls:package-name>javax.wsdl.extensions.*</wls:package-name> 
     <wls:package-name>javax.wsdl.factory.*</wls:package-name> 
     <wls:package-name>javax.wsdl.xml.*</wls:package-name> 
     <wls:package-name>org.apache.oro.*</wls:package-name> 
     <wls:package-name>org.apache.xerces.*</wls:package-name> 
     <wls:package-name>org.apache.axiom.*</wls:package-name> 
     <wls:package-name>org.bouncycastle.*</wls:package-name> 
     <wls:package-name>org.bouncycastle.asn1.*</wls:package-name> 
     <wls:package-name>org.bouncycastle.crypto.*</wls:package-name> 
     <wls:package-name>org.bouncycastle.i18n.*</wls:package-name> 
     <wls:package-name>org.bouncycastle.jce.*</wls:package-name> 
     <wls:package-name>org.bouncycastle.math.*</wls:package-name> 
     <wls:package-name>org.bouncycastle.mozilla.*</wls:package-name> 
     <wls:package-name>org.bouncycastle.ocsp.*</wls:package-name> 
     <wls:package-name>org.bouncycastle.openssl.*</wls:package-name> 
     <wls:package-name>org.bouncycastle.util.*</wls:package-name> 
     <wls:package-name>org.bouncycastle.voms.*</wls:package-name> 
     <wls:package-name>org.bouncycastle.x509.*</wls:package-name> 
     <wls:package-name>org.codehaus.stax2.*</wls:package-name> 
     <wls:package-name>org.jaxen.*</wls:package-name> 
     <wls:package-name>org.jaxen.dom.*</wls:package-name> 
     <wls:package-name>org.jaxen.dom4j.*</wls:package-name> 
     <wls:package-name>org.jaxen.expr.*</wls:package-name> 
     <wls:package-name>org.jaxen.function.*</wls:package-name> 
     <wls:package-name>org.jaxen.javabean.*</wls:package-name> 
     <wls:package-name>org.jaxen.jdom.*</wls:package-name> 
     <wls:package-name>org.jaxen.pattern.*</wls:package-name> 
     <wls:package-name>org.jaxen.saxpath.*</wls:package-name> 
     <wls:package-name>org.jaxen.util.*</wls:package-name> 
     <wls:package-name>org.jaxen.xom.*</wls:package-name> 
     <wls:package-name>org.slf4j.*</wls:package-name> 
     <wls:package-name>org.slf4j.helpers.*</wls:package-name> 
     <wls:package-name>org.slf4j.impl.*</wls:package-name> 
     <wls:package-name>org.slf4j.spi.*</wls:package-name> 
     <wls:package-name>org.apache.axis2.*</wls:package-name> 
     <wls:package-name>org.opensaml.*</wls:package-name> 
     <wls:package-name>org.apache.neethi.*</wls:package-name> 
    </wls:prefer-application-packages> 

類加載器分析工具還幫助我們識別並消除了從EAR文件中刪除的重複和冗餘JAR文件。