Announcement

Collapse
No announcement yet.

WebService Security

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • WebService Security

    Hallo Entwickler,
    ich habe folgendes Problem und hoffe das jemand Hilfe, Tipps oder Tutorials dazu hat.
    Ich arbeite an einem WebService der mittels HTTPS eine SOAP Message empfangen soll. Ich arbeite mit Eclipse und lasse mir einen WebService mittels dem Plugin m2Eclipse generieren. Das heißt ich nutze Maven um mir einen WebService generieren zulassen. Zusätzlich benutze ich CXF um die SOAP Message zu bearbeiten.
    Mein Problem ist die eingehende HTTPS Verbindung.
    Ich habe schon viel gelesen und gesucht, aber nicht gut erklärtes gefunden.
    Ich weiss das man wenn es um Authentification geht, wieder in WS Client und WS Server unterscheidet. Ich will also einen WS Server. Bisher musste ich nur in einer WebServiceImpl classe meinen code schreiben, aber wenn es um die gesicherter Verbindung geht, hänge ich irgend wie im freien.
    Man hat mir schon gesagt, dass ich einen Interceptor für Security einbauen soll, der sich um die Security der eingehenden Nachricht kümmert.

    Hat jemand eine Lösung zu diesem Problem?

  • #2
    Was genau ist das Problem?

    Hallo Happo,
    in Deiner Frage vermischts Du https, Client, Server und Interceptors. Was genau ist denn Dein Problem? Willst Du wissen, wie Du einen Service über https zur Verfügung stellst, wie du so einen Service nutzt oder wie Clients sich gegen den Service authentifizieren oder wie Du eingehende Nachrichten überprüfst?
    Gruß ngomo
    http://www.winfonet.eu

    Comment


    • #3
      genaueres Problem

      Ich möchte das der Service https Verbindungen entgegennehmen kann. Oder oder von der anderen Seite gesprochen, Clients sollen sich mit dem Service über https verbinden können. Ich hoffe das ist nun genauer.

      Comment


      • #4
        Container vorbereiten

        Hallo Happo,
        der Container, in dem Deine Services laufen, muss für die Entgegennahme von Anfragen über https konfiguriert werden.
        Auch, wenn du den Jetty nicht benutzt, lohnt es sich, die Seite mal zu lesen. Da ist das ganze Generieren von Keys und Zertifikaten besser erklärt als auf der Tomcat Seite.

        Gruß ngomo
        http://www.winfonet.eu

        Comment


        • #5
          Reference can not be resolved

          Ich bin nun auch ein Buch gestoßen, was die ganze WS Security Sache gut erklärt. Nun bin ich aber an dem Punkt, wo ich einen Fehler bekomme, der nicht im Buch beschrieben ist.

          Mein Service startet und sobald mein Client darauf zugreifen will kommt:

          Code:
          log4j:WARN Please initialize the log4j system properly.
          01.04.2011 10:10:46 org.apache.cxf.service.factory.ReflectionServiceFactoryBean buildServiceFromWSDL
          INFO: Creating Service {http://iai.innoshgs.de/services/cxfsecuritywebservice/}CXFSecurityWebServicePortType from WSDL: file:src/main/resources/CXFSecurityWebService.wsdl
          Invoking changeSecurity...
          01.04.2011 10:10:47 org.apache.cxf.phase.PhaseInterceptorChain doDefaultLogging
          WARNUNG: Interceptor for {http://iai.innoshgs.de/services/cxfsecuritywebservice/}CXFSecurityWebServicePortType#{http://iai.innoshgs.de/services/cxfsecuritywebservice/}changeSecurity has thrown exception, unwinding now
          org.apache.cxf.interceptor.Fault: Reference to policy #changeSecurity could not be resolved.
          	at org.apache.cxf.ws.policy.AbstractPolicyInterceptor.handleMessage(AbstractPolicyInterceptor.java:47)
          	at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:244)
          	at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:516)
          	at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:313)
          	at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:265)
          	at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73)
          	at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:124)
          	at $Proxy39.changeSecurity(Unknown Source)
          	at de.innoshgs.iai.services.cxfsecuritywebservice.CXFSecurityWebServicePortType_ChangeSecurity_Client.main(CXFSecurityWebServicePortType_ChangeSecurity_Client.java:81)
          Caused by: org.apache.cxf.ws.policy.PolicyException: Reference to policy #changeSecurity could not be resolved.
          	at org.apache.cxf.ws.policy.attachment.AbstractPolicyProvider.checkResolved(AbstractPolicyProvider.java:97)
          	at org.apache.cxf.ws.policy.attachment.wsdl11.Wsdl11AttachmentPolicyProvider.resolveReference(Wsdl11AttachmentPolicyProvider.java:232)
          	at org.apache.cxf.ws.policy.attachment.wsdl11.Wsdl11AttachmentPolicyProvider.getElementPolicy(Wsdl11AttachmentPolicyProvider.java:182)
          	at org.apache.cxf.ws.policy.attachment.wsdl11.Wsdl11AttachmentPolicyProvider.getEffectivePolicy(Wsdl11AttachmentPolicyProvider.java:110)
          	at org.apache.cxf.ws.policy.PolicyEngineImpl.getAggregatedOperationPolicy(PolicyEngineImpl.java:362)
          	at org.apache.cxf.ws.policy.EffectivePolicyImpl.initialisePolicy(EffectivePolicyImpl.java:130)
          	at org.apache.cxf.ws.policy.EffectivePolicyImpl.initialise(EffectivePolicyImpl.java:86)
          	at org.apache.cxf.ws.policy.PolicyEngineImpl.getEffectiveClientRequestPolicy(PolicyEngineImpl.java:155)
          	at org.apache.cxf.ws.policy.PolicyOutInterceptor.handle(PolicyOutInterceptor.java:110)
          	at org.apache.cxf.ws.policy.AbstractPolicyInterceptor.handleMessage(AbstractPolicyInterceptor.java:45)
          	... 8 more
          Exception in thread "main" javax.xml.ws.soap.SOAPFaultException: Reference to policy #changeSecurity could not be resolved.
          	at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:146)
          	at $Proxy39.changeSecurity(Unknown Source)
          	at de.innoshgs.iai.services.cxfsecuritywebservice.CXFSecurityWebServicePortType_ChangeSecurity_Client.main(CXFSecurityWebServicePortType_ChangeSecurity_Client.java:81)
          Caused by: org.apache.cxf.ws.policy.PolicyException: Reference to policy #changeSecurity could not be resolved.
          	at org.apache.cxf.ws.policy.attachment.AbstractPolicyProvider.checkResolved(AbstractPolicyProvider.java:97)
          	at org.apache.cxf.ws.policy.attachment.wsdl11.Wsdl11AttachmentPolicyProvider.resolveReference(Wsdl11AttachmentPolicyProvider.java:232)
          	at org.apache.cxf.ws.policy.attachment.wsdl11.Wsdl11AttachmentPolicyProvider.getElementPolicy(Wsdl11AttachmentPolicyProvider.java:182)
          	at org.apache.cxf.ws.policy.attachment.wsdl11.Wsdl11AttachmentPolicyProvider.getEffectivePolicy(Wsdl11AttachmentPolicyProvider.java:110)
          	at org.apache.cxf.ws.policy.PolicyEngineImpl.getAggregatedOperationPolicy(PolicyEngineImpl.java:362)
          	at org.apache.cxf.ws.policy.EffectivePolicyImpl.initialisePolicy(EffectivePolicyImpl.java:130)
          	at org.apache.cxf.ws.policy.EffectivePolicyImpl.initialise(EffectivePolicyImpl.java:86)
          	at org.apache.cxf.ws.policy.PolicyEngineImpl.getEffectiveClientRequestPolicy(PolicyEngineImpl.java:155)
          	at org.apache.cxf.ws.policy.PolicyOutInterceptor.handle(PolicyOutInterceptor.java:110)
          	at org.apache.cxf.ws.policy.AbstractPolicyInterceptor.handleMessage(AbstractPolicyInterceptor.java:45)
          	at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:244)
          	at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:516)
          	at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:313)
          	at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:265)
          	at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73)
          	at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:124)
          	... 2 more
          Kennt jemand so einen Fehler?
          Übrigens wird keine Nachricht an den Service geschickt. Das sehe ich, weil ich mit TCP Monitor die Verbindung beobachte und keine Nachrichten übertragen werden.

          Das ganze läuft nun auf CXF und wird mit dem Maven Plugin für Eclipse zusammengebaut.
          Zuletzt editiert von Happo; 01.04.2011, 10:28.

          Comment

          Working...
          X