difi / sikker-digital-post-klient-java Goto Github PK
View Code? Open in Web Editor NEWJava klient for integrasjon mot Digital post til innbyggere
Home Page: http://begrep.difi.no/SikkerDigitalPost/
License: Apache License 2.0
Java klient for integrasjon mot Digital post til innbyggere
Home Page: http://begrep.difi.no/SikkerDigitalPost/
License: Apache License 2.0
Hei
Vi har ein rar feil som vi har opplevd 2 ganger no. Klienten sluttar å konsumere kvitteringar utan at det rapporteres feil.
ForretningsKvittering forretningsKvittering = postklient.hentKvittering(KvitteringForespoersel.builder(prioritet).mpcId(configurationService.getConfiguration().getMessagePartitionChannel()).build());
I den forbindelse mistenker vi at hentKvittering(...) fra Java-biblioteket svelger enkelte feilsituasjonar.
I forbindelse med dette har vi gått gjennom relevant kode også i Java-biblioteket. Det kan sjå ut som om ExceptionMapper svelger feil.
Flott om dere kan sjå på dette
Mvh Steinar
Hei,
Jeg får to forskjellige feil i prod-miljøet, men IKKE i verifikasjonsmiljøet. Først så trodde jeg det var pga at jeg brukte gammel klient (1.2.1), men ser nå samme oppførsel med 5.0.0.
Denne oppstår hver gang applikasjonen min poller for kvitteringer og det ikke er noe der. Tidligere var feilen litt mer utfyllende og sa bl.a. "Klarte ikke å verifisere signatur på responsen. Dette kan skyldes at det tiltrodde rotsertifikatet mangler i keystore/trust store. Hvis dette plutselig begynner å skje kan det skyldes at den andre parten har skiftet sertifikat". NB: Den klarer fint å parse kvitteringer når det faktisk er noe der.
2016.12.23 16:04:11.222 INFO mf.logger.translog - [sender] [984661185] UTGÅENDE PULLREQUEST mpc:[urn:normal] conversationId:[] instanceId:[] messageId:[30d12337-531c-4826-a41b-9a76aeddde7c]
2016.12.23 16:04:11.380 INFO mf.logger.translog - [sender] [984661185] INNKOMMENDE TOMKØ mpc:[urn:normal] conversationId:[] instanceId:[] messageId:[6413f16e-e19c-4dc4-b983-57c11df2f8e1] ref:[30d12337-531c-4826-a41b-9a76aeddde7c]
2016.12.23 16:04:11.452 ERROR no.fsat.fp.sdp.HentKvittering - Caught Exception while trying to fetch receipt
no.difi.sdp.client2.domain.exceptions.SendException: An unhandled exception occured while performing request
at no.difi.sdp.client2.internal.DigipostMessageSenderFacade.performRequest(DigipostMessageSenderFacade.java:110) ~[sikker-digital-post-klient-java-5.0.0.jar:5.0.0]
at no.difi.sdp.client2.internal.DigipostMessageSenderFacade.hentKvittering(DigipostMessageSenderFacade.java:82) ~[sikker-digital-post-klient-java-5.0.0.jar:5.0.0]
at no.difi.sdp.client2.SikkerDigitalPostKlient.hentKvitteringOgBekreftForrige(SikkerDigitalPostKlient.java:91) ~[sikker-digital-post-klient-java-5.0.0.jar:5.0.0]
at no.fsat.fp.sdp.HentKvittering.hentKvitteringOgBekreftForrige(HentKvittering.java:67) ~[classes/:na]
at no.fsat.fp.sdp.HentKvittering.run(HentKvittering.java:52) ~[classes/:na]
at java.lang.Thread.run(Thread.java:745) [na:1.8.0_74]
Caused by: java.lang.IllegalArgumentException: null
at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:247) ~[jaxb-impl-2.1.13.jar:2.1.13]
at no.digipost.api.xml.Marshalling.unmarshal(Marshalling.java:134) ~[sdp-api-commons-1.2.0.jar:na]
at no.digipost.api.handlers.ApplikasjonsKvitteringReceiver.extractData(ApplikasjonsKvitteringReceiver.java:52) ~[sdp-api-client-1.2.0.jar:na]
at no.digipost.api.handlers.ApplikasjonsKvitteringReceiver.extractData(ApplikasjonsKvitteringReceiver.java:34) ~[sdp-api-client-1.2.0.jar:na]
at org.springframework.ws.client.core.WebServiceTemplate.doSendAndReceive(WebServiceTemplate.java:619) ~[spring-ws-core-2.3.0.RELEASE.jar:2.3.0.RELEASE]
at no.digipost.api.handlers.EbmsContextAwareWebServiceTemplate.doSendAndReceive(EbmsContextAwareWebServiceTemplate.java:60) ~[sdp-api-client-1.2.0.jar:na]
at org.springframework.ws.client.core.WebServiceTemplate.sendAndReceive(WebServiceTemplate.java:555) ~[spring-ws-core-2.3.0.RELEASE.jar:2.3.0.RELEASE]
at no.digipost.api.MessageSender$DefaultMessageSender.hentKvittering(MessageSender.java:366) ~[sdp-api-client-1.2.0.jar:na]
at no.digipost.api.MessageSender.hentKvittering(MessageSender.java:63) ~[sdp-api-client-1.2.0.jar:na]
at no.difi.sdp.client2.internal.DigipostMessageSenderFacade.lambda$hentKvittering$1(DigipostMessageSenderFacade.java:82) ~[sikker-digital-post-klient-java-5.0.0.jar:5.0.0]
at no.difi.sdp.client2.internal.DigipostMessageSenderFacade.performRequest(DigipostMessageSenderFacade.java:103) ~[sikker-digital-post-klient-java-5.0.0.jar:5.0.0]
... 5 common frames omitted
Når jeg forsøker å sende noe, kommer det alltid frem, men istedenfor å få vanlig LeveringsKvittering gir SikkerDigitalPostKlient.send() meg en SendException med innhold "An unhandled exception occured while performing request".
Konkret eksempel (i tilfelle dere har nødvendige tilganger for å grave opp noe):
Tidspunkt: 2016-12-23 17:08:41
konversasjonsId: 9e937410-0e75-48a8-a625-cfc40264b5fb
Any ideas? Det som er mystisk er at a) alt fungerer finfint i testmiljøet, og b) alt ser ut til å fungere her også, bortsett fra disse exceptions som heller ikke hindrer posten fra å bli levert.
Hilsen,
Matija
Oracle avsluttet public support for java 1.6 i februar 2013. Ref http://www.oracle.com/technetwork/java/eol-135779.html avsluttes Premier support i desember 2015.
Foreslår derfor at støtte for java 1.6 avsluttes i dette bibliotektet, og at minimum fra nå av blir versjon 1.7
I https://github.com/difi/sikker-digital-post-java-klient/blob/master/src/main/java/no/difi/sdp/client/domain/digital_post/EpostVarsel.java er standard at det settes opp ett varsel samtidig som brevet blir tilgjengeliggjort for mottaker.
Avsendere sitt bruk av varslinger er styrt av eForvaltningsforskriften §8a (http://lovdata.no/dokument/SF/forskrift/2004-06-25-988/KAPITTEL_2#%C2%A78) og dokumentert her: http://begrep.difi.no/SikkerDigitalPost/1.2.0/begrep/Varsler
Dersom klientbiblioteket overhode skal ha noe default varslingsinstillinger så bør det være i henhold til eForvaltningsforskriften og dermed være 0,7
Vi har eksempler på virksomheter som har satt opp varsling slik:
Dette har dermed ført til at de har fått varslinger som ikke er i henhold til kravene i forskriften.
Det vil vært svært få, om noen som vil bestille varsling kun ved tilgjengeliggjøring.
Hei
Vi har ein rar feil som vi har opplevd 2 ganger no. Klienten sluttar å konsumere kvitteringar utan at det rapporteres feil.
I forbindelse med desse 2 tilfella har vi sett to "rare" loggmeldinger fra SAAJ.
Det kan virke som om dette er noko som "berre skjer" (logg vart skrevet på søndag og utanfor arbeidstid for dei fleste involverte?)
sep 14, 2014 7:05:24 PM com.sun.xml.messaging.saaj.soap.SOAPPartImpl setContent
SEVERE: SAAJ0545: Error setting the source for SOAPPart
sep 14, 2014 7:05:24 PM com.sun.xml.messaging.saaj.soap.MessageImpl init
SEVERE: SAAJ0535: Unable to internalize message
Det er kun sikker-digital-post-java-klient (1.1.2) som har denne avhengigheiten, via sdp-api-client (1.1.2)
Flott om dere kan sjå på dette
Legg ut release til repository definert her: https://issues.sonatype.org/browse/OSSRH-10156
Hei
Det er ikke mulig å sende meldinger med vedlegg med filnavn som starter med tall (blant annet). F.eks. "2014-01-01-brev-til-steinar-fra-nav.pdf". Ser ut som om filnavn blir forsøkt validert som NCName (se f.eks. http://www.datypic.com/sc/xsd/t-xsd_NCName.html)
[http-bio-8080-exec-2] ERROR no.difi.sdp.webclient.service.MessageService - FAILED_SENDING_DIGITAL_POST
no.difi.sdp.webclient.service.MessageService$MessageServiceException: no.difi.sdp.client.domain.exceptions.XmlValideringException: Kunne ikke validere generert signatures.xml. Sjekk at input er gyldig og at det ikke er ugyldige tegn i filna
vn o.l.
at no.difi.sdp.webclient.service.MessageService.sendMessageToMeldingsformidler(MessageService.java:245)
at no.difi.sdp.webclient.service.MessageService.sendMessage(MessageService.java:209)
at no.difi.sdp.webclient.web.MessageController.send_message(MessageController.java:83)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:215)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:132)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:104)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:749)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:689)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:83)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:938)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:870)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:961)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:863)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:837)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1041)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:603)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:724)
Caused by: no.difi.sdp.client.domain.exceptions.XmlValideringException: Kunne ikke validere generert signatures.xml. Sjekk at input er gyldig og at det ikke er ugyldige tegn i filnavn o.l.
at no.difi.sdp.client.asice.signature.CreateSignature.createSignature(CreateSignature.java:155)
at no.difi.sdp.client.asice.CreateASiCE.createAsice(CreateASiCE.java:65)
at no.difi.sdp.client.internal.CreateDokumentpakke.createDokumentpakke(CreateDokumentpakke.java:41)
at no.difi.sdp.client.internal.EbmsForsendelseBuilder.buildEbmsForsendelse(EbmsForsendelseBuilder.java:56)
at no.difi.sdp.client.SikkerDigitalPostKlient.send(SikkerDigitalPostKlient.java:65)
at no.difi.sdp.webclient.service.MessageService.sendMessageToMeldingsformidler(MessageService.java:243)
... 38 more
Caused by: org.xml.sax.SAXParseException; cvc-datatype-valid.1.2.1: '1-Test-PDF.pdf' is not a valid value for 'NCName'.
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:198)
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(ErrorHandlerWrapper.java:134)
at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:437)
at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:368)
at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:325)
at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator$XSIErrorReporter.reportError(XMLSchemaValidator.java:458)
at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.reportSchemaError(XMLSchemaValidator.java:3237)
at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.processOneAttribute(XMLSchemaValidator.java:2832)
at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.processAttributes(XMLSchemaValidator.java:2769)
at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.handleStartElement(XMLSchemaValidator.java:2056)
at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.startElement(XMLSchemaValidator.java:746)
at com.sun.org.apache.xerces.internal.jaxp.validation.DOMValidatorHelper.beginNode(DOMValidatorHelper.java:277)
at com.sun.org.apache.xerces.internal.jaxp.validation.DOMValidatorHelper.validate(DOMValidatorHelper.java:244)
at com.sun.org.apache.xerces.internal.jaxp.validation.DOMValidatorHelper.validate(DOMValidatorHelper.java:190)
at com.sun.org.apache.xerces.internal.jaxp.validation.ValidatorImpl.validate(ValidatorImpl.java:109)
at javax.xml.validation.Validator.validate(Validator.java:124)
at no.difi.sdp.client.asice.signature.CreateSignature.createSignature(CreateSignature.java:150)
... 43 more
Mvh Steinar
Ved køyring av ytelsetestar frå Testavsendaren legg me i dag til anna versjon av saaj-impl enn det som er pakka med sikker-digital-post-klient-java som kjem med versjon 1.3.23.
Me ekskluderer denne og legg heller ved denne: com.sun.xml.messaging.saaj:saaj-impl:1.3.26-SNAPSHOT etter anbefalling frå dykk (Stefan landrø) i okt 2014 pga alvorleg ytelseproblem i saaj.
Eg ser at det har skjedd endringar både på https://github.com/digipost/saaj og https://github.com/gf-metro/saaj etter dette. Men ser ut som versjonen i sikker-digital-post-klient-java er uendra.
Mitt spørsmål er om det er nødvendig å ekskludere denne lengre eller om f.eks. sikker-digital-post-klient-java kan ta i bruk ein nyare versjon?
Årsaka til at eg spør er fordi eg ynskjer å slå saman ytelsespesifikk branch med master i https://github.com/difi/sikker-digital-post-java-eksempel-webclient for å forenkle, om det er mogeleg. Dette er einaste skilnaden hos oss.
Klientbiblioteket må oppdatere XSD i henhold til versjon 1.2.4 av grensesnitt dokumentasjonen.
https://github.com/difi/begrep-SikkerDigitalPost/releases/tag/1.2.4
Dette for å kunne støtte sending av mer enn 10 vedlegg.
Endringen er planlagt realisert i løpet av desember 2016 i produksjon så klient biblioteket må ha en ny versjon med støtte for dette i god tid før dette.
Rundt 10% av alle sendte meldingar får tilbake feilkvittering "KLIENT - FEIL SIGNATUR" fra Digipost ved høg last (rundt 55/s).
Har etter tips fra @eoftedal prøvd å køyre last med 1 SikkerDigitalPostKlient per tråd, som har fungert fint.
Det er altså eit samtidighetsproblem i SikkerDigitalPostKlient.
Flott om dere ser på dette.
Mvh Steinar
Det er ikke lagt ut noen releaser ( https://github.com/difi/sikker-digital-post-java-klient/releases) siden versjon 1.1.8.
Dermed har ikke de siste versjonen fått noe realease dokumentasjon og det er vanskeligere å følge med på innholdet i nye versjoner og hvilke som er prereleases/drafts og hvilke som er offiselle nye versjoner.
I Følgende klasse:
https://github.com/difi/sikker-digital-post-java-klient/blob/master/src/main/java/no/difi/sdp/client/domain/fysisk_post/KonvoluttAdresse.java
metoden:
KonvoluttAdresse.iUtlandet
Så er det implementert at en Avsender skal enten legge inn en Landkode eller et Land.
Mens i dokumentasjonen av Fysiskpostadresse så er det definert at både Land og Landkode er påkrevd.
ref: http://begrep.difi.no/SikkerDigitalPost/1.2.0.RC1/begrep/FysiskPostadresse
Jeg har oppfattet at Land og Landkode brukes begge to når adressen skal skrives ut på brevet.
Landkoden plasseres forran postnummer og Land på en egen linje.
Ref: http://www.posten.no/produkter-og-tjenester/adressering-til-mottakere-i-utlandet
Hei!
Vi forventer å sende ut en god chunk (750k+) brev gjennom dpi i starten av januar og ønsker derfor å høre om det i dag er støtte for å hente flere kvitteringer om gangen? Slik vi har satt det opp i dag henter vi kun 1 kvittering / sec men vi kommer nok til å skru denne til å bli langt mer greedy ved den store kjøringen - altså hente kvitteringer til det er tomt. Her hadde det vært ønskelig å hente en chunk kvitteringer i steden. Bruker vi evt feil bibliotek?
I dag bruker vi DigipostMessageSenderFacade.java med hentKvittering() og bekreft()
Har nettop testet Klientbibliotek 1.1.6. Får ikke lengre sendt ting…
Får bare endeløse retry linjer med:
[no.difi.sdp.client.internal.DigipostMessageSenderFacade$6] Validating using class path resource [sdp.xsd],class path resource [sdp-manifest.xsd],class path resource [SBDH20040506-02/StandardBusinessDocumentHeader.xsd],class path resource [ebxml/ebms-header-3_0-200704.xsd],class path resource [w3/xmldsig-core-schema.xsd],class path resource [etsi/XAdES.xsd],class path resource [asic-e/ts_102918v010201.xsd]
Men ingenting sendes. Fungerte utmerket når jeg gikk tilbake til 1.1.3
merk at jeg bruker java 1.6.x
We are no longer able to send messages due to "Feil signatur på AsicE" error.
Message gets sent successfully
sikkerDigitalPostKlient.send(forsendelse);
but when we try to retrieve the receipt
KvitteringForespoersel kvitteringForespoersel = KvitteringForespoersel.builder(Prioritet.NORMAL).mpcId("XXX").build();
ForretningsKvittering forretningsKvittering = sikkerDigitalPostKlient.hentKvittering(kvitteringForespoersel);
we get an error that the message hasn't been delivered:
Feil{konversasjonsId=XXXXXX, feiltype=KLIENT, detaljer='Feil signatur på AsicE'}
What might be the cause of this problem? This is in production environment.
Java 6 begynner å bli gammelt, og vi ser mer og mer tendensen at også mere kritiske biblioteker begynner å droppe støtte for Java 6. Eksempelvis krever WSS4J minimum Java 7 f.o.m. versjon 2.1.x.
Gjelder #13 fremdeles, at klientbiblioteket må fungere på Java 6? Eller kan minimum Java-versjon oppdateres til versjon 7?
Sending av melding feiler i Apache Tomcat 7 og i Jetty 9.
Ved signering av utgående melding får en unntak:
org.w3c.dom.DOMException: HIERARCHY_REQUEST_ERR: An attempt was made to insert a node where it is not permitted.
at com.sun.org.apache.xerces.internal.dom.CoreDocumentImpl.insertBefore(CoreDocumentImpl.java:396)
at com.sun.org.apache.xerces.internal.dom.NodeImpl.appendChild(NodeImpl.java:238)
at org.apache.jcp.xml.dsig.internal.dom.XmlWriterToTree.writeStartElement(XmlWriterToTree.java:85)
at org.apache.jcp.xml.dsig.internal.dom.DOMXMLSignature.marshal(DOMXMLSignature.java:206)
at org.apache.jcp.xml.dsig.internal.dom.DOMXMLSignature.sign(DOMXMLSignature.java:326)
at no.difi.sdp.client.asice.signature.CreateSignature.createSignature(CreateSignature.java:116)
at no.difi.sdp.client.asice.CreateASiCE.createAsice(CreateASiCE.java:65)
at no.difi.sdp.client.internal.CreateDokumentpakke.createDokumentpakke(CreateDokumentpakke.java:41)
at no.difi.sdp.client.internal.EbmsForsendelseBuilder.buildEbmsForsendelse(EbmsForsendelseBuilder.java:44)
at no.difi.sdp.client.SikkerDigitalPostKlient.send(SikkerDigitalPostKlient.java:61)
at no.difi.sdp.webclient.service.MessageService.sendMessage(MessageService.java:233)
at no.difi.sdp.webclient.web.MessageController.send_message(MessageController.java:78)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:215)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:132)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:104)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:749)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:689)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:83)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:938)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:870)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:961)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:863)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:837)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1041)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:603)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
Det lar seg altså ikke gjøre å bruke java-klienten i Tomcat 7 eller Jetty 9 out of the box. Har ikke prøvd andre servlet-containere.
Vi ser at det hadde vært fordelaktig om avsender sitt org.nummer hadde vært enkelt tilgjengelig i URL'n brukt mot meldingsformidler. Dette gjør at vi enklere/raskere kan feilsøke og bruke denne informasjonen f.eks. for å begrense/skille trafikken.
forslaget er at url'n endres slik at org.nummeret legges på enden av url'n omtrent slik:
Det som må avklares er hvilket org.nummer som skal brukes. Er det Databehandler eller Behandlingsansvarlig sitt org.nummer som er best å legge på. Eventuelt begge to.
I utgangspunktet mener jeg at det skal være org.nummeret til databehandler.
eventuelt kan man vurdere noe slikt:
Vi holder på å teste i produksjon:
Der får vi følgende feil:
2015-03-30 12:06:02,266 [qtp904144151-21] INFO mf.logger.translog - [sender] [984661185] UTGÅENDE PULLREQUEST mpc:[urn:norma
l:svarut] conversationId:[] instanceId:[] messageId:[44576edb-09c5-42dc-9479-fa692ccc1beb]
2015-03-30 12:06:02,384 [qtp904144151-21] WARN mf.logger.translog - [sender] [984661185] SOAPFAULT fault:[PolicyNoncomplianc
e]
2015-03-30 12:06:02,389 [qtp904144151-21] INFO mf.logger.translog - [sender] [984661185] INNKOMMENDE EBMSFEIL mpc:[] convers
ationId:[] instanceId:[] messageId:[e9af2035-a48c-4070-9e33-aa564b79f0a5] error:[PolicyNoncompliance][Error during certifica
te path validation: No trusted certs found; nested exception is org.apache.wss4j.common.ext.WSSecurityException: Error during
certificate path validation: No trusted certs found]
I keystoren som privatekeyen ligger, ligger også de 4 sertifikatene fra http://begrep.difi.no/SikkerDigitalPost/1.2.0/sikkerhet/sertifikater/prod/
keytool -list
Keystore type: JKS
Keystore provider: SUN
Your keystore contains 5 entries
cpnenterprisesha256class3, Mar 30, 2015, trustedCertEntry,
Certificate fingerprint (SHA1): DC:38:AC:1C:B3:2A:5F:85:08:14:09:89:98:DA:D1:35:83:16:F4:86
bpclass3rootca, Mar 30, 2015, trustedCertEntry,
Certificate fingerprint (SHA1): DA:FA:F7:FA:66:84:EC:06:8F:14:50:BD:C7:C2:81:A5:BC:A9:64:57
bpclass3ca3, Mar 30, 2015, trustedCertEntry,
Certificate fingerprint (SHA1): D0:81:06:63:49:77:CA:EA:F2:16:45:BD:09:5D:CD:0D:E6:4C:F8:08
cpnrootcasha256class3, Mar 30, 2015, trustedCertEntry,
Certificate fingerprint (SHA1): E7:47:8C:EA:79:5C:B6:AB:AA:1E:8B:AE:B5:08:A0:58:B4:8B:57:49
ks, Mar 25, 2015, PrivateKeyEntry,
Certificate fingerprint (SHA1): A2:E9:C8:41:0A:D8:07:8E:70:E7:06:CD:E4:04:90:4B:24:75:32:61
Oppretter en SikkerDigitalPostKlient og får feil i biblioteket under oppretting av JAXB marshaller. Legger ved stacktrace.
`Exception in thread "main" java.lang.ExceptionInInitializerError
at no.digipost.api.xml.Marshalling.getMarshallerSingleton(Marshalling.java:67)
at no.digipost.api.MessageSender$Builder.getDefaultMarshaller(MessageSender.java:338)
at no.digipost.api.MessageSender$Builder.build(MessageSender.java:240)
at no.difi.sdp.client2.internal.DigipostMessageSenderFacade.(DigipostMessageSenderFacade.java:68)
at no.difi.sdp.client2.SikkerDigitalPostKlient.(SikkerDigitalPostKlient.java:38)
at no.difi.meldingsutveksling.ptp.MeldingsformidlerClient.sendMelding(MeldingsformidlerClient.java:49)
at no.difi.meldingsutveksling.ptp.MeldingsformidlerClientMain.main(MeldingsformidlerClientMain.java:73)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144)
...
Two classes have the same XML type name "{http://www.w3.org/2000/09/xmldsig#}SPKIDataType". Use @XmlType.name and @XmlType.namespace to assign different names to them.
this problem is related to the following location:
at org.w3.xmldsig.SPKIData
at protected java.util.List org.w3.xmldsig.KeyInfo.content
at org.w3.xmldsig.KeyInfo
at protected org.w3.xmldsig.KeyInfo org.w3.xmldsig.Signature.keyInfo
at org.w3.xmldsig.Signature
at public org.w3.xmldsig.Signature org.w3.xmldsig.ObjectFactory.createSignature()
at org.w3.xmldsig.ObjectFactory
at protected java.util.List org.w3.xmldsig.CanonicalizationMethod.content
at org.w3.xmldsig.CanonicalizationMethod
this problem is related to the following location:
at org.w3._2000.09.xmldsig.SPKIDataType
at public org.w3._2000.09.xmldsig.SPKIDataType org.w3._2000.09.xmldsig.ObjectFactory.createSPKIDataType()
at org.w3._2000.09.xmldsig.ObjectFactory
at protected java.util.List org.w3._2000.09.xmldsig.CanonicalizationMethodType.content
at org.w3._2000.09.xmldsig.CanonicalizationMethodType
at protected org.w3._2000.09.xmldsig.CanonicalizationMethodType org.w3._2000.09.xmldsig.SignedInfoType.canonicalizationMethod
at org.w3._2000.09.xmldsig.SignedInfoType
at protected org.w3._2000.09.xmldsig.SignedInfoType org.w3._2000.09.xmldsig.SignatureType.signedInfo
at org.w3._2000.09.xmldsig.SignatureType
at protected org.w3._2000.09.xmldsig.SignatureType org.etsi.uri._01903.v1_3.CounterSignatureType.signature
at org.etsi.uri._01903.v1_3.CounterSignatureType
The element name {http://www.w3.org/2000/09/xmldsig#}KeyName has more than one mapping.
this problem is related to the following location:
at public javax.xml.bind.JAXBElement org.w3._2000.09.xmldsig.ObjectFactory.createKeyName(java.lang.String)
at org.w3._2000.09.xmldsig.ObjectFactory
at protected java.util.List org.w3._2000.09.xmldsig.CanonicalizationMethodType.content
at org.w3._2000.09.xmldsig.CanonicalizationMethodType
at protected org.w3._2000.09.xmldsig.CanonicalizationMethodType org.w3._2000.09.xmldsig.SignedInfoType.canonicalizationMethod
at org.w3._2000.09.xmldsig.SignedInfoType
at protected org.w3._2000.09.xmldsig.SignedInfoType org.w3._2000.09.xmldsig.SignatureType.signedInfo
at org.w3._2000.09.xmldsig.SignatureType
at protected org.w3._2000.09.xmldsig.SignatureType org.etsi.uri._01903.v1_3.CounterSignatureType.signature
at org.etsi.uri._01903.v1_3.CounterSignatureType
this problem is related to the following location:
at public javax.xml.bind.JAXBElement org.w3.xmldsig.ObjectFactory.createKeyName(java.lang.String)
at org.w3.xmldsig.ObjectFactory
at protected java.util.List org.w3.xmldsig.CanonicalizationMethod.content
at org.w3.xmldsig.CanonicalizationMethod
The element name {http://www.w3.org/2000/09/xmldsig#}MgmtData has more than one mapping.
this problem is related to the following location:
at public javax.xml.bind.JAXBElement org.w3._2000.09.xmldsig.ObjectFactory.createMgmtData(java.lang.String)
at org.w3._2000.09.xmldsig.ObjectFactory
at protected java.util.List org.w3._2000.09.xmldsig.CanonicalizationMethodType.content
at org.w3._2000.09.xmldsig.CanonicalizationMethodType
at protected org.w3._2000.09.xmldsig.CanonicalizationMethodType org.w3._2000.09.xmldsig.SignedInfoType.canonicalizationMethod
at org.w3._2000.09.xmldsig.SignedInfoType
at protected org.w3._2000.09.xmldsig.SignedInfoType org.w3._2000.09.xmldsig.SignatureType.signedInfo
at org.w3._2000.09.xmldsig.SignatureType
at protected org.w3._2000.09.xmldsig.SignatureType org.etsi.uri._01903.v1_3.CounterSignatureType.signature
at org.etsi.uri._01903.v1_3.CounterSignatureType
this problem is related to the following location:
at public javax.xml.bind.JAXBElement org.w3.xmldsig.ObjectFactory.createMgmtData(java.lang.String)
at org.w3.xmldsig.ObjectFactory
at protected java.util.List org.w3.xmldsig.CanonicalizationMethod.content
at org.w3.xmldsig.CanonicalizationMethod
Two classes have the same XML type name "{http://uri.etsi.org/01903/v1.3.2#}SPUserNoticeType". Use @XmlType.name and @XmlType.namespace to assign different names to them.
this problem is related to the following location:
at org.etsi.uri._01903.v1_3.SPUserNotice
at public org.etsi.uri._01903.v1_3.SPUserNotice org.etsi.uri._01903.v1_3.ObjectFactory.createSPUserNotice()
at org.etsi.uri._01903.v1_3.ObjectFactory
at protected java.util.List org.etsi.uri._01903.v1_3.Any.content
at org.etsi.uri._01903.v1_3.Any
this problem is related to the following location:
at org.etsi.uri._01903.v1_3.SPUserNoticeType
There's no ObjectFactory with an @XmlElementDecl for the element {http://uri.etsi.org/01903/v1.3.2#}CounterSignature.
this problem is related to the following location:
at protected java.util.List org.etsi.uri._01903.v1_3.UnsignedSignaturePropertiesType.counterSignatureOrSignatureTimeStampOrCompleteCertificateRefs
at org.etsi.uri._01903.v1_3.UnsignedSignaturePropertiesType
at protected org.etsi.uri._01903.v1_3.UnsignedSignaturePropertiesType org.etsi.uri._01903.v1_3.UnsignedPropertiesType.unsignedSignatureProperties
at org.etsi.uri._01903.v1_3.UnsignedPropertiesType
at protected org.etsi.uri._01903.v1_3.UnsignedPropertiesType org.etsi.uri._01903.v1_3.QualifyingPropertiesType.unsignedProperties
at org.etsi.uri._01903.v1_3.QualifyingPropertiesType
at com.sun.xml.internal.bind.v2.runtime.IllegalAnnotationsException$Builder.check(IllegalAnnotationsException.java:91)
at com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl.getTypeInfoSet(JAXBContextImpl.java:445)
at com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl.<init>(JAXBContextImpl.java:277)
at com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl.<init>(JAXBContextImpl.java:124)
at com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl$JAXBContextBuilder.build(JAXBContextImpl.java:1123)
at com.sun.xml.internal.bind.v2.ContextFactory.createContext(ContextFactory.java:147)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:247)
at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:234)
at javax.xml.bind.ContextFinder.find(ContextFinder.java:462)
at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:641)
at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:584)
at org.springframework.oxm.jaxb.Jaxb2Marshaller.createJaxbContextFromPackages(Jaxb2Marshaller.java:522)
at org.springframework.oxm.jaxb.Jaxb2Marshaller.getJaxbContext(Jaxb2Marshaller.java:459)
... 14 more`
sdp-xsd har med seg oppslagstjenesten-metadata-14.05.xsd og generer klassene no.difi.begrep.Difi*** som kræsjer med de klassene jeg selv generer fra oppslagstjeneste wsdl'n.
Jeg får følgende runtime exception:
Two classes have the same XML type name "{http://begrep.difi.no}reservasjon". Use @XmlType.name and @XMLType.namespace to assign different names to them.
this problem is related to the following location:
at no.difi.begrep.Reservasjon
........
this problem is related to the following location:
at no.difi.begrep.DifiReservasjon
.....
Det er samme feil for alle klassene som genereres ut i fra oppslagstjenesten-metadata-14.05.xsd
Jeg ønsker at java klienten legges i en egen prosjektmappe slik at dette prosjektet kan brukes for .net biblioteket og andre tilhørende prosjekter fremover.
Kreftregisteret har ikke varit oppsatt som gyldig avsendere tidligere og derfor har vi en del brev som ikke blitt sendt riktig i testmiljöet. Når vi pröver at hente en leveringskvittering for disse brevene får vi nå en class cast exception:
I de fall vi får en feil-kvittering fra dere av typen «no.difi.begrep.sdp.schema_v10.SDPFeil» så får vi en feil når det skal type casta denne meldingen til en «no.difi.begrep.sdp.schema_v10.SDPKvittering». Skal det ikke vare mulig å gjöre det på den måten? Jeg tror dette sker inne i deres kode.
Så her ser koden ut som pröver å hente kvittering:
try {
lastReceipt = getLetterReceiptAndAcknowledgeLastOne(lastReceipt);
if(!isSendingQueueEmpty()) {
SdpLetterPackage workingPackage = getNextLetterPackageFromSendingQueue();
if (workingPackage != null && workingPackage.getLetter().getSendCount() <= RESEND_MAX) {
executor.submit(new SdpLetterSenderService(workingPackage, serviceFacade));
}
}
}
catch (Exception e){
serviceFacade.logActivity(null, null, ActivityLogActionType.APPLICATION, "Caught exception while polling for receipt.",getClass().getGenericSuperclass().toString(), getClass().getSimpleName(),e);
logger.error("Caught exception while polling for receipt... Error: " + SdpServiceUtil.getStackTrace(e));
}
Hei
Bygging av ASIC feiler ved whitespace eller spesialbokstaver i filnavn.
Dette pga ASIC bruker filnavn som URI.
Burde kunne løses ved å URI-encode filnavnet.
Mvh Steinar
no.difi.sdp.webclient.service.MessageService$MessageServiceException: java.lang.IllegalArgumentException: Illegal character in path at index 5: space space.pdf
at no.difi.sdp.webclient.service.MessageService.sendMessageToMeldingsformidler(MessageService.java:285)
at no.difi.sdp.webclient.service.MessageService.sendMessage(MessageService.java:240)
at no.difi.sdp.webclient.web.MessageController.send_message(MessageController.java:134)
at sun.reflect.GeneratedMethodAccessor212.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:215)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:132)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:104)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:749)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:689)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:83)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:938)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:870)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:961)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:863)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:837)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:579)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:307)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.IllegalArgumentException: Illegal character in path at index 5: space space.pdf
at org.jcp.xml.dsig.internal.dom.DOMReference.(DOMReference.java:174)
at org.jcp.xml.dsig.internal.dom.DOMXMLSignatureFactory.newReference(DOMXMLSignatureFactory.java:94)
at no.difi.sdp.client.asice.signature.CreateSignature.references(CreateSignature.java:168)
at no.difi.sdp.client.asice.signature.CreateSignature.createSignature(CreateSignature.java:115)
at no.difi.sdp.client.asice.CreateASiCE.createAsice(CreateASiCE.java:65)
at no.difi.sdp.webclient.service.MessageService.enrichMessage(MessageService.java:143)
at no.difi.sdp.webclient.service.MessageService.sendMessageToMeldingsformidler(MessageService.java:280)
... 38 more
no.difi.sdp.webclient.service.MessageService$MessageServiceException: java.lang.IllegalArgumentException: Malformed escape pair at index 18: special-character-%&.pdf
at no.difi.sdp.webclient.service.MessageService.sendMessageToMeldingsformidler(MessageService.java:285)
at no.difi.sdp.webclient.service.MessageService.sendMessage(MessageService.java:240)
at no.difi.sdp.webclient.web.MessageController.send_message(MessageController.java:134)
at sun.reflect.GeneratedMethodAccessor212.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:215)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:132)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:104)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:749)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:689)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:83)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:938)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:870)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:961)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:863)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:837)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:579)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:307)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.IllegalArgumentException: Malformed escape pair at index 18: special-character-%&.pdf
at org.jcp.xml.dsig.internal.dom.DOMReference.(DOMReference.java:174)
at org.jcp.xml.dsig.internal.dom.DOMXMLSignatureFactory.newReference(DOMXMLSignatureFactory.java:94)
at no.difi.sdp.client.asice.signature.CreateSignature.references(CreateSignature.java:168)
at no.difi.sdp.client.asice.signature.CreateSignature.createSignature(CreateSignature.java:115)
at no.difi.sdp.client.asice.CreateASiCE.createAsice(CreateASiCE.java:65)
at no.difi.sdp.webclient.service.MessageService.enrichMessage(MessageService.java:143)
at no.difi.sdp.webclient.service.MessageService.sendMessageToMeldingsformidler(MessageService.java:280)
... 38 more
Avsendere har behov for enkel tilgang til de opprinnelige Forretningskvitteringene de mottar fra Postkassen. Dette for å kunne lagre/arkivere dette elementet med signaturer.
dette er blant annet knyttet til følgende forbedringsønske: difi/begrep-SikkerDigitalPost#132
og Avsenders behov for å holde juridiske logger.
Det må legges til en den abstrakte API klassen: https://github.com/difi/sikker-digital-post-java-klient/blob/master/src/main/java/no/difi/sdp/client/domain/kvittering/ForretningsKvittering.java eventuelt at toString metodene oppdateres til å levere ut XML meldingen fra postkassen urørt.
Vil melde om at følgende kall som skal hente kvittering fra meldingsformidler gir nullpointerexception.
ForretningsKvittering forretningsKvittering = postklient.hentKvittering(KvitteringForespoersel.builder(Prioritet.NORMAL).build());
12:47:29.799 [pool-1-thread-1] ERROR o.s.s.s.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.
java.lang.NullPointerException: null
at no.difi.sdp.client.internal.KvitteringBuilder.buildForretningsKvittering(KvitteringBuilder.java:43) ~[sikker-digital-post-java-klient-1.0-SNAPSHOT.jar:na]
at no.difi.sdp.client.SikkerDigitalPostKlient.hentKvitteringOgBekreftForrige(SikkerDigitalPostKlient.java:102) ~[sikker-digital-post-java-klient-1.0-SNAPSHOT.jar:na]
at no.difi.sdp.client.SikkerDigitalPostKlient.hentKvittering(SikkerDigitalPostKlient.java:80) ~[sikker-digital-post-java-klient-1.0-SNAPSHOT.jar:na]
at no.difi.sdp.webclient.service.MessageService.getReceipt(MessageService.java:253) ~[classes/:na]
at no.difi.sdp.webclient.configuration.SdpClientConfiguration.retrieveRecieptPeriodically(SdpClientConfiguration.java:291) ~[classes/:na]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.7.0_40]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) ~[na:1.7.0_40]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.7.0_40]
at java.lang.reflect.Method.invoke(Method.java:606) ~[na:1.7.0_40]
at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:65) ~[spring-context-4.0.5.RELEASE.jar:4.0.5.RELEASE]
at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54) ~[spring-context-4.0.5.RELEASE.jar:4.0.5.RELEASE]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) [na:1.7.0_40]
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:304) [na:1.7.0_40]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:178) [na:1.7.0_40]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) [na:1.7.0_40]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [na:1.7.0_40]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [na:1.7.0_40]
at java.lang.Thread.run(Thread.java:724) [na:1.7.0_40]
I forbindelse med utarbeidelsen av en funksjonell og teknisk testklient ( http://avsender-sdp.difi.no/ ) er det ønskelig å kunne hente ut og vise XML meldingene som går frem og tilbake. Vi har mulighet for å få xml meldingen skrevet til loggen, men vi ønsker altså å hente de frem og vise de i web-gui i test klienten.
Dette er en utvidelse som ikke kreves for avsendere, men kun er av interesse for å få en best mulig test klient som kan brukes i forbindelse med testing både funksjonelt og teknisk.
Mulig ønske kan realiseres på forskjellige måter, eventuelt dersom vi får litt info om hvordan dette kunne realiseres så kan vi selv se om vi prioritere å gjøre det i en egen branch.
When calling dkif in test enviorment, we expect getting an sms with this object but we get an epost instead. Does test env have some config or options that are hindering sms message.
Last time we testet was 17.08.2021.
{
mobilnummer: <tlf>
varslingteskst: <tekst>
dagerEtter: 1
}
Vi har behov for kunne mocke WebService-kallet i sikker-digital-post-klient. For å gjøre det på enkel måte, så trenger vi tilgang til WebServiceTemplate. Jeg har laget pull-request.
Vi opplever at flere avsender i sin testing blander mellom det funksjonelle testmiljøet og produksjon.
Klientbiblioteket har informasjon om et sertifikat er et gyldig produksjonssertifikat eller ikke og kan dermed stoppe requestene før de sendes og gi en fornuftig feilmelding/exception tilbake til utvikler/tester.
Klientbiblioteket må ta høyde for følgende ved innføring av en slik mekanisme:
Det er flere måter å sjekke om sertifikatet kan brukes mot produksjonsmiljøet eller ikke.
Det som blir mest korrekt er å sjekke klient sertifikatets policy, her skal det være referanse til en av de følgende OID'ene:
I test brukes andre sertifikat policer.
referanser til sertifikat policyene til leverandørene:
Denne forbedringen ønskes også i .net klientbiblioteket (https://github.com/difi/sikker-digital-post-klient-dotnet , oppretter tilsvarende sak der, men tenker at det kan spesifiseres opp her først og så realiseres i begge bibliotek).
Fikset i sdp-shared-1.1.1
Hei
Opplever sporadisk "Klarte ikke å signere ASiC-E element" ved høy last (sender ~20 meldinger per sekund).
no.difi.sdp.webclient.service.MessageService$MessageServiceException: no.difi.sdp.client.domain.exceptions.XmlKonfigurasjonException: Klarte ikke å signere ASiC-E element.
at no.difi.sdp.webclient.service.MessageService.sendMessageToMeldingsformidler(MessageService.java:290)
at no.difi.sdp.webclient.service.MessageService.sendMessage(MessageService.java:233)
at no.difi.sdp.webclient.web.MessageController.performanceTestSendMessage(MessageController.java:384)
at sun.reflect.GeneratedMethodAccessor120.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:215)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:132)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:104)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:749)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:689)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:83)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:938)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:870)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:961)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:852)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:620)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:837)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1070)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1736)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1695)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)
Caused by: no.difi.sdp.client.domain.exceptions.XmlKonfigurasjonException: Klarte ikke å signere ASiC-E element.
at no.difi.sdp.client.asice.signature.CreateSignature.createSignature(CreateSignature.java:146)
at no.difi.sdp.client.asice.CreateASiCE.createAsice(CreateASiCE.java:65)
at no.difi.sdp.webclient.service.PostklientService.createAsice(PostklientService.java:108)
at no.difi.sdp.webclient.service.MessageService.enrichMessage(MessageService.java:137)
at no.difi.sdp.webclient.service.MessageService.sendMessageToMeldingsformidler(MessageService.java:284)
... 43 more
Caused by: javax.xml.crypto.dsig.XMLSignatureException: javax.xml.crypto.dsig.TransformException: java.lang.ArrayIndexOutOfBoundsException
at org.jcp.xml.dsig.internal.dom.DOMSignedInfo.canonicalize(DOMSignedInfo.java:231)
at org.jcp.xml.dsig.internal.dom.DOMSignatureMethod.sign(DOMSignatureMethod.java:292)
at org.jcp.xml.dsig.internal.dom.DOMXMLSignature.sign(DOMXMLSignature.java:397)
at no.difi.sdp.client.asice.signature.CreateSignature.createSignature(CreateSignature.java:142)
... 47 more
Caused by: javax.xml.crypto.dsig.TransformException: java.lang.ArrayIndexOutOfBoundsException
at org.jcp.xml.dsig.internal.dom.ApacheCanonicalizer.transform(ApacheCanonicalizer.java:251)
at org.jcp.xml.dsig.internal.dom.DOMTransform.transform(DOMTransform.java:153)
at org.jcp.xml.dsig.internal.dom.DOMCanonicalizationMethod.canonicalize(DOMCanonicalizationMethod.java:97)
at org.jcp.xml.dsig.internal.dom.DOMSignedInfo.canonicalize(DOMSignedInfo.java:228)
... 50 more
Caused by: java.lang.ArrayIndexOutOfBoundsException
at sun.security.provider.DigestBase.engineUpdate(DigestBase.java:127)
at java.security.MessageDigest$Delegate.engineUpdate(MessageDigest.java:568)
at java.security.MessageDigest.update(MessageDigest.java:313)
at sun.security.rsa.RSASignature.engineUpdate(RSASignature.java:161)
at java.security.Signature$Delegate.engineUpdate(Signature.java:1150)
at java.security.Signature.update(Signature.java:715)
at org.jcp.xml.dsig.internal.SignerOutputStream.write(SignerOutputStream.java:72)
at com.sun.org.apache.xml.internal.security.utils.UnsyncBufferedOutputStream.flushBuffer(UnsyncBufferedOutputStream.java:73)
at com.sun.org.apache.xml.internal.security.utils.UnsyncBufferedOutputStream.flush(UnsyncBufferedOutputStream.java:89)
at com.sun.org.apache.xml.internal.security.utils.UnsyncBufferedOutputStream.close(UnsyncBufferedOutputStream.java:95)
at com.sun.org.apache.xml.internal.security.c14n.implementations.CanonicalizerBase.engineCanonicalizeSubTree(CanonicalizerBase.java:208)
at com.sun.org.apache.xml.internal.security.c14n.implementations.CanonicalizerBase.engineCanonicalize(CanonicalizerBase.java:152)
at com.sun.org.apache.xml.internal.security.transforms.implementations.TransformC14N.enginePerformTransform(TransformC14N.java:68)
at com.sun.org.apache.xml.internal.security.transforms.Transform.performTransform(Transform.java:307)
at org.jcp.xml.dsig.internal.dom.ApacheCanonicalizer.transform(ApacheCanonicalizer.java:241)
... 53 more
Dersom en Avsender får en feil i forbindelse med sin sending av digital post så kan det bli behov for å forsøke en resending. For å resende eksakt samme forsendelse må både konversasjonsid og InstanceIdentifier være lik i den opprinnelige forsendelsen og i den etterfølgende resendingen.
Klientbiblioteket støtter ikke at en avsender kan sette InstanceIdentifier. Den blir generert som en random UUID alltid og det medfører at avsender dermed får en ebms feilmelding tilbake om at det er duplicate conversationid.
eksempel på feilsituasjon hvor denne problemstillingen oppstår:
Her er forsendelsen ok levert og vil bli videreformidlet til postkassen, mens Avsender tror at forsendelsen har feilet og vil forsøke å resende.
ref: difi/sikker-digital-post-java-eksempel-webclient#6
Vi ønsker å kunne bruke forskjellige URL'r mot MF når vi sender post og når vi henter kvitteringer.
Dette fordi vi ønsker en enkel måte å følge med på og skille de forskjellige requesten.
Ser ved debugging av Noekkelpar.getStandardTrustStore
at det kun lastes sertifikater for testmiljø til Commfides og Buypass. Dette gjør at overload Noekkelpar.fraKeyStoreUtenTrustStore
ikke kan brukes mot et produksjonsmiljø. Det bør også dokumenteres bedre hvordan en slik store kan lages om man ikke ønsker å bruke den innebygde.
Hei.
Vi har deploya fleire instanser av vår avsender-applikasjon på samme tomcat-instans.
Instansene er satt opp med identisk konfigurasjon, men det vi ser er at kun siste instans som blir lasta som fungerer. (Undeployer vi instansen som virker vil instansen som feiler begynne å virke...)
Dei andre instansene feiler med følgende exception:
no.difi.sdp.webclient.service.MessageService$MessageServiceException: no.difi.sdp.client.domain.exceptions.EbmsException: EBMS:0103 - Security processing failed (actions mismatch)
Det kan se ut til at det i disse tilfellene blir generert ein mangelfull wss header.
Vi er usikre på om feilen er knytta til klient-biblioteket eller vår bruk av dette biblioteket.
Ser dere noen grunn til at denne feilen oppstår?
Her er eit eksempel på ein feilende request:
2014-12-01 14:13:28,029 http-bio-8080-exec-4 DEBUG org.apache.http.wire http-outgoing-2 >> "<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope">env:Header<wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" env:mustUnderstand="true"><wsu:Timestamp wsu:Id="TS-6697c783-5501-47a6-8dd2-f66f889622d9">wsu:Created2014-12-01T13:13:27.914Z/wsu:Createdwsu:Expires2014-12-01T13:18:27.914Z/wsu:Expires/wsu:Timestamp/wsse:Security<eb:Messaging xmlns:eb="http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/" env:mustUnderstand="true"><ns6:UserMessage xmlns:ns10="http://uri.etsi.org/2918/v1.2.1#" xmlns:ns11="http://uri.etsi.org/01903/v1.3.2#" xmlns:ns2="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns3="http://www.unece.org/cefact/namespaces/StandardBusinessDocumentHeader" xmlns:ns4="http://www.w3.org/2003/05/soap-envelope" xmlns:ns5="http://www.w3.org/2000/09/xmldsig#" xmlns:ns6="http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/" xmlns:ns7="http://docs.oasis-open.org/ebxml-bp/ebbp-signals-2.0" xmlns:ns8="http://www.w3.org/1999/xlink" xmlns:ns9="http://begrep.difi.no/sdp/schema_v10" mpc="urn:normal:22fb6943-7e3e-4ecf-b29c-61ecab18e3c0">ns6:MessageInfons6:Timestamp2014-12-01T14:13:27.878+01:00/ns6:Timestampns6:MessageId3cd30c36-4f55-4bd5-940b-2cd6a6754219/ns6:MessageId/ns6:MessageInfons6:PartyInfons6:From<ns6:PartyId type="urn:oasis:names:tc:ebcore:partyid-type:iso6523:9908">9908:991825827/ns6:PartyIdns6:Roleurn:sdp:avsender/ns6:Role/ns6:Fromns6:To<ns6:PartyId type="urn:oasis:names:tc:ebcore:partyid-type:iso6523:9908">9908:984661185/ns6:PartyIdns6:Roleurn:sdp:meldingsformidler/ns6:Role/ns6:To/ns6:PartyInfons6:CollaborationInfons6:AgreementRefhttp://begrep.difi.no/SikkerDigitalPost/1.0/transportlag/Meldingsutveksling/FormidleDigitalPostForsendelse/ns6:AgreementRefns6:ServiceSDP/ns6:Servicens6:ActionFormidleDigitalPost/ns6:Actionns6:ConversationIda8e5566e-50ca-4f8e-b261-f23cafb93c82/ns6:ConversationId/ns6:CollaborationInfons6:PayloadInfons6:PartInfo/<ns6:PartInfo href="cid:ede073cd-e21d-4e0d-9488-452437ee19d8@meldingsformidler.sdp.difi.no">ns6:PartProperties<ns6:Property name="MimeType">application/cms/ns6:Property<ns6:Property name="Content">sdp:Dokumentpakke/ns6:Property/ns6:PartProperties/ns6:PartInfo/ns6:PayloadInfo/ns6:UserMessage/eb:Messaging/env:Header<env:Body xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="soapBody"><ns3:StandardBusinessDocument xmlns:ns3="http://www.unece.org/cefact/namespaces/StandardBusinessDocumentHeader" xmlns:ns5="http://www.w3.org/2000/09/xmldsig#" xmlns:ns9="http://begrep.difi.no/sdp/schema_v10">ns3:StandardBusinessDocumentHeaderns3:HeaderVersion1.0/ns3:HeaderVersionns3:Sender<ns3:Identifier Authority="urn:oasis:names:tc:ebcore:partyid-type:iso6523:9908">9908:991825827/ns3:Identifier/ns3:Senderns3:Receiver<ns3:Identifier Authority="urn:oasis:names:tc:ebcore:partyid-type:iso6523:9908">9908:984661185/ns3:Identifier/ns3:Receiverns3:DocumentIdentificationns3:Standardurn:no:difi:sdp:1.0/ns3:Standardns3:TypeVersion1.0/ns3:TypeVersionns3:InstanceIdentifiera8e5566e-50ca-4f8e-b261-f23cafb93c82/ns3:InstanceIdentifierns3:TypedigitalPost/ns3:Typens3:CreationDateAndTime2014-12-01T14:13:27.568+01:00/ns3:CreationDateAndTime/ns3:DocumentIdentificationns3:BusinessScopens3:Scopens3:TypeConversationId/ns3:Typens3:InstanceIdentifier46c28bb1-2e95-4884-b3ef-1f59892cb73b/ns3:InstanceIdentifierns3:Identifierurn:no:difi:sdp:1.0/ns3:Identifier/ns3:Scope/ns3:BusinessScope/ns3:StandardBusinessDocumentHeaderns9:digitalPostSaTD4/J/iL9T6vIQ5xhdxb8K4LQQPe3a2+2YCdiQxWY=Jma4WccTUWSo3RN+Hi3yCNi5Fxx/E2r2t/RhUBkBeUC6JdDrRducRhdtBEVc261qyByGqWN1acFCW3YR/7qfdHtZg/9vlr3DsGxRha3Nu+tzoWb5LagH6XbTlgQYDx1OcAHHfe8rog8BkG7DKfcPmcO+/jWHHqh2Rzk5Ov/5p1wWjw2cuU/MUF+5Ljd5xutT70x4VwunocA/ej10+kx6hKrUMFJ52/ZVITXogcyS59b7YjQmRz5AGv1VrnVUeYyWEd+xuHJWrF9err7EmkT1Qy+h25vLofd4LnHJhGa3yQxY32VVzsRQ4lLQJTB8BXUNiALzndH+LAkSWF/XhpjjyQ==MIIFOjCCBCKgAwIBAgIKGQqI22LuZ+0U6TANBgkqhkiG9w0BAQsFADBRMQswCQYDVQQGEwJOTzEdMBsGA1UECgwUQnV5cGFzcyBBUy05ODMxNjMzMjcxIzAhBgNVBAMMGkJ1eXBhc3MgQ2xhc3MgMyBUZXN0NCBDQSAzMB4XDTE0MDYxNjA4NTYyNloXDTE3MDYxNjIxNTkwMFowgaAxCzAJBgNVBAYTAk5PMSwwKgYDVQQKDCNESVJFS1RPUkFURVQgRk9SIEZPUlZBTFROSU5HIE9HIElLVDEhMB8GA1UECwwYU0RQIC0gbWVsZGluZ3N1dHZla3NsaW5nMSwwKgYDVQQDDCNESVJFS1RPUkFURVQgRk9SIEZPUlZBTFROSU5HIE9HIElLVDESMBAGA1UEBRMJOTkxODI1ODI3MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAx6IPA2KSAkSupen5fFM1LEnW6CRqSK20wjpBnXf414W03eWUvBlw97c6k5sl2tYdn4aVb6Z9GeDaz1bLKN3XwhFGPk9PnjSIhrFJNAPnWVEBDqGqfeMrEsYdOEgM2veBZDYkhVwipjr8AesmptTRAat61q+6hCJe8UZqjXb4Mg6YKSTAHfJdthAG06weBMgVouQkTkeIIawM+QPcKQ3Wao0gIZi17V0+8xzgDu1PXr90eJ/Xjsw9t0C8Ey/3N7n3j3hplsZkjOJMBNHzbeBG/doroC6uzVURiuEn9Bc9Nk224b+7lOBZ1FvNNrJVUu5Ty3xyMDseCV7z1QTwW7wcpwIDAQABo4IBwjCCAb4wCQYDVR0TBAIwADAfBgNVHSMEGDAWgBQ/rvV4C5KjcCA1X1r69ySgUgHwQTAdBgNVHQ4EFgQU6JguiqDjkgjEGRHhzkbeKeqyWQEwDgYDVR0PAQH/BAQDAgSwMBYGA1UdIAQPMA0wCwYJYIRCARoBAAMCMIG7BgNVHR8EgbMwgbAwN6A1oDOGMWh0dHA6Ly9jcmwudGVzdDQuYnV5cGFzcy5uby9jcmwvQlBDbGFzczNUNENBMy5jcmwwdaBzoHGGb2xkYXA6Ly9sZGFwLnRlc3Q0LmJ1eXBhc3Mubm8vZGM9QnV5cGFzcyxkYz1OTyxDTj1CdXlwYXNzJTIwQ2xhc3MlMjAzJTIwVGVzdDQlMjBDQSUyMDM/Y2VydGlmaWNhdGVSZXZvY2F0aW9uTGlzdDCBigYIKwYBBQUHAQEEfjB8MDsGCCsGAQUFBzABhi9odHRwOi8vb2NzcC50ZXN0NC5idXlwYXNzLm5vL29jc3AvQlBDbGFzczNUNENBMzA9BggrBgEFBQcwAoYxaHR0cDovL2NydC50ZXN0NC5idXlwYXNzLm5vL2NydC9CUENsYXNzM1Q0Q0EzLmNlcjANBgkqhkiG9w0BAQsFAAOCAQEAKOTM1zSdGHWUBKPzDPYCcci9cpbktd2WuBg028bRC0NwKSWUKeuUfWesTiu/P4UlYGe86qd/+z3MNpN89aGA8pr0E0WpI+NM+v+Cb0dQwxHASHtrkVo9CVx6V6/QSBqIUEMfNquDHzxB2/mXbv6GuO5eIl3OSVKg7Ffd/1wdE6zeMmHQO+zRpfj+OVEhNPb5cLa13Ah9+JrMkr1O7VUFbozLQgFPhuI8/5+u8U/6cDOOmcFV4f4IYUmhbcLiW5MQnvaJ8044+uInOQTNtSkKmZAo7Jnm4KUyhFXftJOStOHSlODOQcepVS7csszO5yWQRMTV8doEsaH5p/LBXYF56Q==ns9:avsender<ns9:organisasjon authority="iso6523-actorid-upis">9908:991825827/ns9:organisasjon/ns9:avsenderns9:mottakerns9:personns9:personidentifikator05111600491/ns9:personidentifikatorns9:postkasseadressetest.testesen#0FSW/ns9:postkasseadresse/ns9:person/ns9:mottakerns9:digitalPostInfons9:aapningskvitteringfalse/ns9:aapningskvitteringns9:sikkerhetsnivaa3/ns9:sikkerhetsnivaa<ns9:ikkeSensitivTittel lang="NO">test - abr/ns9:ikkeSensitivTittelns9:varsler//ns9:digitalPostInfons9:dokumentpakkefingeravtrykk<ns5:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>ns5:DigestValuep1zRWrjaV1x1shTuuKWb6Qlef6RWNARuXBCjN5dB5cA=/ns5:DigestValue/ns9:dokumentpakkefingeravtrykk/ns9:digitalPost/ns3:StandardBusinessDocument/env:Body/env:Envelope[\r][\n]"
Får ikke følgende avhengigheter helt til..
<dependency>
<groupId>no.digipost</groupId>
<artifactId>api-client</artifactId>
<version>${sdp-shared.version}</version>
</dependency>
<dependency>
<groupId>no.digipost</groupId>
<artifactId>offentlig-xsd</artifactId>
<version>${sdp-shared.version}</version>
</dependency>
<dependency>
<groupId>no.digipost</groupId>
<artifactId>api-commons</artifactId>
<version>${sdp-shared.version}</version>
</dependency>
Ser ikke ut til at disse blir med i builden?
Jan M. Johansen
Metodene SikkerDigitalPostKlient.bekreft() og hentKvitteringOgBekreftForrige() tar inn parameteret "forrigeKvittering" av type ForretningsKvittering.
Det betyr at ForretningsKvittering som returneres fra hentKvittering() må holdes i minnet helt til man vil bekrefte, og at hent() og bekreft() må skje "synkront" i en og samme applikasjonsinstans.
Vi ønsker å kunne kalle bekreft(String konversasjonsId) e.l. for å slippe denne begrensningen.
Da kan vi bruke sikker-digital-post-klient-java i frittstående applikasjon som kommuniserer med andre forretningssystem over f.eks. HTTP, og slik slippe sterk teknisk kobling mellom forretningssystem og sikker-digital-post-klient med avhengigheter. F.eks. kan de da enkelt kjøre på forskjellig plattform, Spring-versjon m.m.
Har opplevd å få følgende feilmelding:
no.difi.sdp.client.domain.exceptions.SendException: An unhandled exception occured while performing request at no.difi.sdp.client.internal.DigipostMessageSenderFacade.performRequest(DigipostMessageSenderFacade.java:142) at no.difi.sdp.client.internal.DigipostMessageSenderFacade.performRequest(DigipostMessageSenderFacade.java:123) Caused by: no.difi.sdp.client.domain.exceptions.NoekkelException: Klarte ikke å verifisere signatur på responsen. Dette kan skyldes at det tiltrodde rotsertifikatet mangler i keystore/trust store. Hvis dette plutselig begynner å skje kan det skyldes at den andre parten har skiftet sertifikat at no.difi.sdp.client.internal.UserFriendlyWsSecurityExceptionMapper.resolveException(UserFriendlyWsSecurityExceptionMapper.java:27) at org.springframework.ws.soap.security.AbstractWsSecurityInterceptor.handleValidationException(AbstractWsSecurityInterceptor.java:299) Caused by: org.springframework.ws.soap.security.wss4j.Wss4jSecurityValidationException: Invalid timestamp: The security semantics of the message have expired; nested exception is org.apache.wss4j.common.ext.WSSecurityException: Invalid timestamp: The security semantics of the message have expired at no.digipost.api.interceptors.Wss4jInterceptor.validateMessage(Wss4jInterceptor.java:341) at org.springframework.ws.soap.security.AbstractWsSecurityInterceptor.handleResponse(AbstractWsSecurityInterceptor.java:243) Caused by: org.apache.wss4j.common.ext.WSSecurityException: Invalid timestamp: The security semantics of the message have expired at org.apache.wss4j.dom.validate.TimestampValidator.validate(TimestampValidator.java:62) at no.digipost.api.interceptors.Wss4jInterceptor.verifyTimestamp(Wss4jInterceptor.java:470)
NoekkelException med teksten: "Klarte ikke å verifisere signatur på responsen. Dette kan skyldes at det tiltrodde rotsertifikatet mangler i keystore/trust store. Hvis dette plutselig begynner å skje kan det skyldes at den andre parten har skiftet sertifikat", når rot årsaken er: "Invalid timestamp: The security semantics of the message have expired".
Sertifikatet har utlöpt, det nya sertifikatet är
-----BEGIN CERTIFICATE-----
MIIE9DCCA9ygAwIBAgILAT+iGF2ISezHpl4wDQYJKoZIhvcNAQELBQAwUTELMAkG
A1UEBhMCTk8xHTAbBgNVBAoMFEJ1eXBhc3MgQVMtOTgzMTYzMzI3MSMwIQYDVQQD
DBpCdXlwYXNzIENsYXNzIDMgVGVzdDQgQ0EgMzAeFw0xNzA0MjQwODM0NDZaFw0y
MDA0MjQyMTU5MDBaMFoxCzAJBgNVBAYTAk5PMRgwFgYDVQQKDA9QT1NURU4gTk9S
R0UgQVMxHTAbBgNVBAMMFFBPU1RFTiBOT1JHRSBBUyBURVNUMRIwEAYDVQQFEwk5
ODQ2NjExODUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCiPsj+RRIn
Xas3xedAYOAL4d3ZFxNOg1qT+emw7SeGBOd301yG3sFfZ61NUmPEznGLMMDGqhon
SaXdMKBy8Ge44Lr6TNJ3RXQA7hbNm1QD0GUh7f8kblNEwDL7n9McuwG+itfXzzjF
+GEgQUjriS8kdQ7M1R4brMvaZ4IvZQQYXtIUdz8A/IJPSSiw2JPCtdmZazhdcamh
b4vq5qhHpQRKw4qNHiacp9tY14ZMQdMp5jdYcPCrKlBLJa7vKQF2qRIhQ77/ZBK7
FuvqRCNy/M9ArSxxXmM85kk+n7FikQoSnTb54wEA/zYnzPKafDRQKT5yvO9jJBmM
Gog2bXEQuhGFAgMBAAGjggHCMIIBvjAJBgNVHRMEAjAAMB8GA1UdIwQYMBaAFD+u
9XgLkqNwIDVfWvr3JKBSAfBBMB0GA1UdDgQWBBSPoMjenknBBiZxOLFafkGc1Y/w
rzAOBgNVHQ8BAf8EBAMCBLAwFgYDVR0gBA8wDTALBglghEIBGgEAAwIwgbsGA1Ud
HwSBszCBsDA3oDWgM4YxaHR0cDovL2NybC50ZXN0NC5idXlwYXNzLm5vL2NybC9C
UENsYXNzM1Q0Q0EzLmNybDB1oHOgcYZvbGRhcDovL2xkYXAudGVzdDQuYnV5cGFz
cy5uby9kYz1CdXlwYXNzLGRjPU5PLENOPUJ1eXBhc3MlMjBDbGFzcyUyMDMlMjBU
ZXN0NCUyMENBJTIwMz9jZXJ0aWZpY2F0ZVJldm9jYXRpb25MaXN0MIGKBggrBgEF
BQcBAQR+MHwwOwYIKwYBBQUHMAGGL2h0dHA6Ly9vY3NwLnRlc3Q0LmJ1eXBhc3Mu
bm8vb2NzcC9CUENsYXNzM1Q0Q0EzMD0GCCsGAQUFBzAChjFodHRwOi8vY3J0LnRl
c3Q0LmJ1eXBhc3Mubm8vY3J0L0JQQ2xhc3MzVDRDQTMuY2VyMA0GCSqGSIb3DQEB
CwUAA4IBAQCP2XKHyeZaaQBC4vBLjojanPWguou4iJnbTVcS/PNwwJh+7lvOB6MF
5x32ggh617uaramrHNf9G7OZsSS8GZgDWX9BN8xSTD4Zz+lQpclPb3mOkeZapWsY
lwBeoLcSSKFS0ezESYtT+XdWcPD06/fg2TWgkCBPBxEsKjzIRVwn34kyfik1mKsV
O2JubleXcQDLjhTJ4U82VYQNMMnn4+9ZZrFvlBBUIBfvOOlpMCel+TWvccCpzkty
gVSScXU0ZK+mj/apl39hWMi5lVrdxq1CI4nrFiJM1vnoqaTp8IzbJEI59Zj2PXFT
DxxKkUAhG515ONmTtl6cHrKpWx5grczC
-----END CERTIFICATE-----
Har et problem med å bruke meldingsformidlerklienten på java 1.6.X. Det fungerer utmerket med java 1.7. Av diverse årsaker er vi avhengig av å kunne benytte 1.6.x.
Får denne feilmeldingen ved bruk av 1.6.X
no.difi.sdp.client.domain.exceptions.KonfigurasjonException: Kunne ikke initialisere xml-signering
at no.difi.sdp.client.asice.signature.CreateSignature.(CreateSignature.java:97)
at no.difi.sdp.client.asice.CreateASiCE.(CreateASiCE.java:49)
at no.difi.sdp.client.internal.CreateDokumentpakke.(CreateDokumentpakke.java:35)
at no.difi.sdp.client.internal.EbmsForsendelseBuilder.(EbmsForsendelseBuilder.java:38)
at no.difi.sdp.client.SikkerDigitalPostKlient.(SikkerDigitalPostKlient.java:50)
at no.si.sdp.MeldingsformidlerClient.(MeldingsformidlerClient.java:31)
at no.si.sdp.MeldingsformidlerClient.main(MeldingsformidlerClient.java:39)
Caused by: java.security.NoSuchAlgorithmException: http://www.w3.org/2006/12/xml-c14n11 algorithm and DOM mechanism not available
at javax.xml.crypto.dsig.TransformService.getInstance(TransformService.java:153)
at org.jcp.xml.dsig.internal.dom.DOMXMLSignatureFactory.newCanonicalizationMethod(DOMXMLSignatureFactory.java:253)
at no.difi.sdp.client.asice.signature.CreateSignature.(CreateSignature.java:93)
... 6 more
Exception in thread "main" java.lang.RuntimeException: Kunne ikke initiere keystore! Kunne ikke initialisere xml-signering
at no.si.sdp.MeldingsformidlerClient.(MeldingsformidlerClient.java:34)
at no.si.sdp.MeldingsformidlerClient.main(MeldingsformidlerClient.java:39)
Ref http://www.oracle.com/technetwork/java/eol-135779.html sluttet Oracle å utgi Public Updates for Oracle JDK 7 i april 2015.
Det er i tillegg en rekke nye interessante språk features i java 1.8, slik at det er ønskelig å avslutte støtte for java 1.7 så fort som mulig.
Java 9 er for øvrig etter planen tilgjengelig fra 2016-09-22
Det er en del design-flaws i klassene rundt ForretningsKvittering og EbmsApplikasjonsKvittering.
metoden EbmsApplikasjonsKvittering.getKvittering()
merkes som @Deprecated
. Ref #26
ForretningsKvittering
bør berikes med flere API-metoder for å slippe å hente ut ForretningsKvittering.applikasjonsKvittering.getStandardBusinessDocument()
:
metode for å sjekke hva slags type det er (feil, kvittering)
aksess til SimpleKvittering
, dersom ForretningsKvittering.erKvittering()
aksess til SBDFeil
, dersom ForretningsKvittering.erFeil()
. Lag gjerne også en egen type à la SimpleKvittering
for å slippe å lekke ut JAXB-genererte typer fra APIet.
sjekk om ApplikasjonsKvitteringBuilder
kan fjernes, ev. merkes @Deprecated
oppslagstjeneste meta xsd filen pakket i sdp-xsd.jar er ikke riktig. ref: difi/begrep-SikkerDigitalPost#149
Oppdatert versjon av xsd'r for oppslagstjenesten må tas med i sikker digital post java klienten.
ref: difi/begrep-SikkerDigitalPost#191
Det er ønskelig at klientbiblioteket støtter endringen av feltene tittel og ikkeoffentligtittel.
Det er kun snakk om en mindre endring av XSD'n, klientbiblioteket må validere input i henhold til den.
endringen er planlagt satt i produksjon i juni 2017, klientbiblioteket ønskes oppdatert i løpet mai slik at det kan testes i forbindelse med endringen og være klar til å bli tatt i bruk så fort endringen er ute i produksjon.
Ved bruk av metoden KonvoluttAdresse.iUtlandet som bare tar inn land, ref: https://github.com/difi/sikker-digital-post-java-klient/blob/master/src/main/java/no/difi/sdp/client/domain/fysisk_post/KonvoluttAdresse.java#L97
så vil landkode var null i input og da vil nok følgende linje gi nullpointer:
https://github.com/difi/sikker-digital-post-java-klient/blob/master/src/main/java/no/difi/sdp/client/domain/fysisk_post/KonvoluttAdresse.java#L108
postadresse.landkode = landkode.getKode();
ref. issues lagt ut på .net biblioteket.
difi/sikker-digital-post-klient-dotnet#118
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.