2016-04-29 9 views
1

Kann jemand bitte den Unterschied zwischen den 2 cxf Interzeptoren, die in dieser Bean-Konfigurationsdatei verwendet werden, erklären.SAAJInInterceptor und WSS4JInInterceptor CXF Interzeptoren

Hier Ich erkläre eine jaxws: Endpunkt Element mit dem Abfangjäger SAAJInInterceptor und WSS4JInInterceptor.

Warum 2 Interzeptoren?

Was ist der Unterschied zwischen den 2?

Kann ein Abfangjäger ohne den anderen arbeiten?

<beans xmlns="http://www.springframework.org/schema/beans" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jaxws="http://cxf.apache.org/jaxws" 
     xmlns:jaxrs="http://cxf.apache.org/jaxrs" 
     xsi:schemaLocation="http://cxf.apache.org/jaxws 
          http://cxf.apache.org/schemas/jaxws.xsd 
          http://www.springframework.org/schema/beans 
          http://www.springframework.org/schema/beans/spring-beans.xsd 
          http://cxf.apache.org/jaxrs 
          http://cxf.apache.org/schemas/jaxrs.xsd"> 
     <jaxws:endpoint id="auth" 
         implementor="com.company.auth.service.AuthServiceImpl" 
         address="/corporateAuth"> 
      <jaxws:inInterceptors> 
       <bean class="org.apache.cxf.binding.soap.saaj.SAAJInInterceptor"></bean> 
       <bean class="org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor"> 
        <constructor-arg> 
         <map> 
          <entry key="action" value="UsernameToken" /> 
          <entry key="passwordType" value="PasswordText" /> 
          <entry key="passwordCallbackClass" value="com.company.auth.service.ServerPasswordCallback"></entry> 
         </map> 
        </constructor-arg> 
       </bean> 
      </jaxws:inInterceptors> 
     </jaxws:endpoint> 
    </beans> 

Vielen Dank für Ihre Erläuterungen.

Antwort

1

SAAJInInterceptor wandelt die eingehende Nachricht in eine DOM-Nachricht um, damit sie von WSS4JInInterceptor verarbeitet werden kann. WSS4JInInterceptor wendet die angegebenen WS-Security-Aktionen auf die eingehende Nachricht an.

+0

können Sie einige Erklärung über die DOM-Nachricht geben. –

2

Die SAAJInterceptors müssen nur hinzugefügt werden, wenn Sie CXF 2.0.x oder niedriger verwenden. Ab CXF 2.1.x werden sie automatisch hinzugefügt: http://cxf.apache.org/docs/ws-security.html

+0

Hallo @Colm, Sie wissen, wie ich den Namen des Zertifikats, mit dem ich eine Antwort verschlüsseln möchte, senden kann, wenn ich eine Anfrage an den Dienst, mit Wss4jSecurityInterceptor? – jamlhet

Verwandte Themen