Documenten digitaal ondertekenen en certificeren digitally-signing-and-certifying-documents
de Steekproeven en de voorbeelden in dit document zijn slechts voor AEM Forms op milieu JEE.
Ongeveer de Dienst van de Handtekening
Met de service Handtekening kunt u de beveiliging en privacy beschermen van Adobe PDF-documenten die door uw organisatie worden gedistribueerd en ontvangen. Deze service gebruikt digitale handtekeningen en certificering om ervoor te zorgen dat alleen de beoogde ontvangers documenten kunnen wijzigen. Omdat beveiligingsfuncties op het document zelf worden toegepast, blijft het document gedurende de gehele levenscyclus beveiligd en beheerd. Een document blijft veilig buiten de firewall, wanneer het offline wordt gedownload en wanneer het terug naar uw organisatie wordt verzonden.
de gebiedsnamen van de Handtekening
Voor sommige bewerkingen van de handtekeningservice moet u de naam opgeven van het handtekeningveld waarop een bewerking wordt uitgevoerd. Als u bijvoorbeeld een PDF-document ondertekent, geeft u de naam op van het handtekeningveld dat u wilt ondertekenen. Stel dat de volledige naam van een handtekeningveld form1[0].Form1[0].SignatureField1[0]
is. U kunt SignatureField1[0]
opgeven in plaats van form1[0].Form1[0].SignatureField1[0]
.
Soms ondertekent de handtekeningservice door een conflict (of voert een andere bewerking uit waarvoor de naam van het handtekeningveld vereist is) het verkeerde veld. Dit conflict is het resultaat van de naam SignatureField1[0]
die op twee of meer plaatsen in hetzelfde PDF-document wordt weergegeven. Neem bijvoorbeeld een PDF-document dat twee handtekeningvelden bevat met de naam form1[0].Form1[0].SignatureField1[0]
en form1[0].Form1[0].SubForm1[0].SignatureField1[0]
en u geeft SignatureField1[0]
op. In dit geval ondertekent de ondertekeningsservice het eerste handtekeningveld dat wordt gevonden terwijl alle handtekeningvelden in het document worden doorlopen.
Als er meerdere handtekeningvelden in een PDF-document staan, is het raadzaam de volledige namen van de handtekeningvelden op te geven. Dat wil zeggen, geef form1[0].Form1[0].SignatureField1[0]
op in plaats van SignatureField1[0]
.
U kunt deze taken uitvoeren met de service Handtekening:
- Digitale handtekeningvelden toevoegen aan en verwijderen uit een PDF-document. (Zie Toevoegend de Gebieden van de Handtekening.)
- Haal de namen van handtekeningvelden op in een PDF-document. (Zie het Terugwinnen van de Namen van het Gebied van de Handtekening.)
- Handtekeningvelden wijzigen. (Zie Wijzend de Gebieden van de Handtekening.)
- PDF-documenten digitaal ondertekenen. (Zie digitaal het Ondertekenen van de Documenten van PDF.)
- PDF-documenten certificeren. (Zie Certificerend de Documenten van PDF.)
- Digitale handtekeningen valideren in een PDF-document. (Zie Verifying Digital Signatures.)
- Alle digitale handtekeningen in een PDF-document valideren. (Zie Verifying Multiple Digital Signatures.)
- Een digitale handtekening verwijderen uit een handtekeningveld. (Zie het Verwijderen van Digitale Handtekeningen.)
Handtekeningvelden toevoegen adding-signature-fields
Digitale handtekeningen worden weergegeven in handtekeningvelden. Dit zijn formuliervelden die een grafische weergave van de handtekening bevatten. Handtekeningvelden kunnen zichtbaar of onzichtbaar zijn. Ondertekenaars kunnen een bestaand handtekeningveld gebruiken of een handtekeningveld programmatisch toevoegen. In beide gevallen moet het handtekeningveld bestaan voordat een PDF-document kan worden ondertekend.
U kunt een handtekeningveld programmatisch toevoegen met de Java API of de API van de Signature-service van de Java-API. U kunt meerdere handtekeningvelden toevoegen aan een PDF-document. Elke handtekeningveldnaam moet echter uniek zijn.
Overzicht van de stappen summary-of-steps
Als u een handtekeningveld wilt toevoegen aan een PDF-document, voert u de volgende taken uit:
- Inclusief projectbestanden.
- Maak een handtekeningclient.
- Hiermee wordt een PDF-document opgehaald waaraan een handtekeningveld wordt toegevoegd.
- Voeg een handtekeningveld toe.
- Sla het PDF-document op als een PDF-bestand.
omvat projectdossiers
Neem de benodigde bestanden op in uw ontwikkelingsproject. Als u een clienttoepassing maakt met Java, neemt u de benodigde JAR-bestanden op. Als u webservices gebruikt, dient u de proxybestanden op te nemen.
De volgende JAR-bestanden moeten worden toegevoegd aan het klassepad van uw project:
- adobe-livecycle-client.jar
- adobe-usermanager-client.jar
- adobe-signatures-client.jar
- adobe-utilities.jar (vereist als AEM Forms wordt geïmplementeerd op JBoss)
- jbossall-client.jar (vereist als AEM Forms wordt geïmplementeerd op JBoss)
creeer een cliënt van de Handtekening
Voordat u programmatically een verrichting van de dienst van de Handtekening kunt uitvoeren, moet u een cliënt van de dienst van de Handtekening tot stand brengen.
krijg een document van de PDF waaraan een handtekeningsgebied wordt toegevoegd
Vraag een PDF-document op waaraan een handtekeningveld is toegevoegd.
voeg een handtekeningsgebied toe
Als u een handtekeningveld aan een PDF-document wilt toevoegen, geeft u coördinaatwaarden op die de locatie van het handtekeningveld aangeven. (Als u een onzichtbaar handtekeningveld toevoegt, zijn deze waarden niet vereist.) U kunt ook opgeven welke velden in het PDF-document worden vergrendeld nadat een handtekening is toegepast op het handtekeningveld.
sparen het document van de PDF als dossier van PDF
Nadat de handtekeningservice een handtekeningveld aan het PDF-document heeft toegevoegd, kunt u het document opslaan als een PDF-bestand zodat gebruikers het kunnen openen in Acrobat of Adobe Reader.
zie ook
Inclusief AEM Forms Java-bibliotheekbestanden
Handtekeningvelden toevoegen met de Java API add-signature-fields-using-the-java-api
Voeg een handtekeningveld toe met de handtekening-API (Java):
-
Projectbestanden opnemen
Neem JAR-bestanden van de client, zoals adobe-signatures-client.jar, op in het klassepad van uw Java-project.
-
Een handtekeningclient maken
- Maak een
ServiceClientFactory
-object dat verbindingseigenschappen bevat. - Maak een
SignatureServiceClient
-object door de constructor ervan te gebruiken en hetServiceClientFactory
-object door te geven.
- Maak een
-
Een PDF-document ophalen waaraan een handtekeningveld wordt toegevoegd
- Maak een
java.io.FileInputStream
-object dat het PDF-document vertegenwoordigt waaraan een handtekeningveld wordt toegevoegd door de constructor ervan te gebruiken en een tekenreekswaarde door te geven die de locatie van het PDF-document aangeeft. - Maak een
com.adobe.idp.Document
-object door de constructor ervan te gebruiken en hetjava.io.FileInputStream
-object door te geven.
- Maak een
-
Een handtekeningveld toevoegen
-
Maak een
PositionRectangle
-object dat de locatie van het handtekeningveld opgeeft met behulp van de constructor. Geef binnen de constructor coördinaatwaarden op. -
Maak desgewenst een
FieldMDPOptions
-object dat de velden opgeeft die zijn vergrendeld wanneer een digitale handtekening wordt toegepast op het handtekeningveld. -
Voeg een handtekeningveld toe aan een PDF-document door de methode
addSignatureField
van het objectSignatureServiceClient
aan te roepen en de volgende waarden door te geven:- A
com.adobe.idp
.Document
-object dat staat voor het PDF-document waaraan een handtekeningveld wordt toegevoegd. - Een tekenreekswaarde die de naam van het handtekeningveld opgeeft.
- Een
java.lang.Integer
-waarde die staat voor het paginanummer waaraan een handtekeningveld wordt toegevoegd. - Een
PositionRectangle
-object dat de locatie van het handtekeningveld opgeeft. - Een
FieldMDPOptions
-object dat velden in het PDF-document opgeeft die worden vergrendeld nadat een digitale handtekening is toegepast op het handtekeningveld. Deze parameterwaarde is optioneel en u kuntnull
doorgeven.
- A
-
Een
PDFSeedValueOptions
-object dat verschillende runtimewaarden opgeeft. Deze parameterwaarde is optioneel en u kuntnull
doorgeven.De methode
addSignatureField
retourneert eencom.adobe.idp
.Document
die een PDF-document vertegenwoordigt dat een handtekeningveld bevat.
note note NOTE U kunt de methode addInvisibleSignatureField
van hetSignatureServiceClient
-object aanroepen om een onzichtbaar handtekeningveld toe te voegen. -
-
Het PDF-document opslaan als een PDF-bestand
- Maak een
java.io.File
-object en controleer of de bestandsextensie .pdf is. - Roep
com.adobe.idp
aan. De methodecopyToFile
van het objectDocument
om de inhoud van het objectDocument
naar het bestand te kopiëren. Zorg ervoor dat ucom.adobe.idp
gebruikt.Document
die door de methodeaddSignatureField
is geretourneerd.
- Maak een
zie ook
Handtekeningvelden toevoegen met de webservice-API add-signature-fields-using-the-web-service-api
Een handtekeningveld toevoegen met de handtekening-API (webservice):
-
Projectbestanden opnemen
Creeer een Microsoft .NET project dat MTOM gebruikt. Gebruik de volgende WSDL-definitie:
http://localhost:8080/soap/services/SignatureService?WSDL&lc_version=9.0.1
.note note NOTE Vervang localhost
door het IP-adres van de server die als host fungeert voor AEM Forms. -
Een handtekeningclient maken
-
Maak een
SignatureServiceClient
-object met de standaardconstructor. -
Maak een
SignatureServiceClient.Endpoint.Address
-object met deSystem.ServiceModel.EndpointAddress
-constructor. Geef een tekenreekswaarde die de WSDL opgeeft door aan de AEM Forms-service (bijvoorbeeldhttp://localhost:8080/soap/services/SignatureService?WSDL
). U hoeft het attribuutlc_version
niet te gebruiken. Dit kenmerk wordt gebruikt wanneer u een serviceverwijzing maakt.) -
Maak een
System.ServiceModel.BasicHttpBinding
-object door de waarde van hetSignatureServiceClient.Endpoint.Binding
-veld op te halen. De geretourneerde waarde wordt gecast naarBasicHttpBinding
. -
Stel het veld
MessageEncoding
van hetSystem.ServiceModel.BasicHttpBinding
-object in opWSMessageEncoding.Mtom
. Deze waarde zorgt ervoor dat MTOM wordt gebruikt. -
Laat basisauthentificatie van HTTP door de volgende taken uit te voeren toe:
- Wijs de gebruikersnaam van het AEM aan het veld
SignatureServiceClient.ClientCredentials.UserName.UserName
toe. - Wijs de bijbehorende wachtwoordwaarde toe aan het veld
SignatureServiceClient.ClientCredentials.UserName.Password
. - Wijs de constante waarde
HttpClientCredentialType.Basic
toe aan het veldBasicHttpBindingSecurity.Transport.ClientCredentialType
. - Wijs de constante waarde
BasicHttpSecurityMode.TransportCredentialOnly
toe aan het veldBasicHttpBindingSecurity.Security.Mode
.
- Wijs de gebruikersnaam van het AEM aan het veld
-
-
Een PDF-document ophalen waaraan een handtekeningveld wordt toegevoegd
- Maak een
BLOB
-object met behulp van de constructor. HetBLOB
-object wordt gebruikt om het PDF-document op te slaan dat een handtekeningveld bevat. - Maak een
System.IO.FileStream
-object door de constructor ervan aan te roepen en een tekenreekswaarde door te geven die de bestandslocatie van het PDF-document en de modus waarin het bestand moet worden geopend, vertegenwoordigt. - Maak een bytearray waarin de inhoud van het object
System.IO.FileStream
wordt opgeslagen. U kunt de grootte van de bytearray bepalen door de eigenschapLength
van het objectSystem.IO.FileStream
op te halen. - Vul de bytearray met streamgegevens door de methode
Read
van het objectSystem.IO.FileStream
aan te roepen en de bytearray, de startpositie en de lengte van de stream door te geven om te lezen. - Vul het object
BLOB
door de eigenschapMTOM
ervan toe te wijzen met de inhoud van de bytearray.
- Maak een
-
Een handtekeningveld toevoegen
Voeg een handtekeningveld toe aan het PDF-document door de methode
addSignatureField
van het objectSignatureServiceClient
aan te roepen en de volgende waarden door te geven:- Een
BLOB
-object dat staat voor het PDF-document waaraan een handtekeningveld wordt toegevoegd. - Een tekenreekswaarde die de naam van het handtekeningveld aangeeft.
- Een geheel getal dat staat voor het paginanummer waaraan een handtekeningveld wordt toegevoegd.
- Een
PositionRect
-object dat de locatie van het handtekeningveld opgeeft. - Een
FieldMDPOptions
-object dat velden in het PDF-document opgeeft die worden vergrendeld nadat een digitale handtekening is toegepast op het handtekeningveld. Deze parameterwaarde is optioneel en u kuntnull
doorgeven. - Een
PDFSeedValueOptions
-object dat verschillende runtimewaarden opgeeft. Deze parameterwaarde is optioneel en u kuntnull
doorgeven.
De methode
addSignatureField
retourneert eenBLOB
-object dat een PDF-document vertegenwoordigt dat een handtekeningveld bevat. - Een
-
Het PDF-document opslaan als een PDF-bestand
- Maak een
System.IO.FileStream
-object door de constructor ervan aan te roepen en een tekenreekswaarde door te geven die de bestandslocatie vertegenwoordigt van het PDF-document dat het handtekeningveld en de modus waarin het bestand moet worden geopend. - Maak een bytearray waarin de inhoud wordt opgeslagen van het
BLOB
-object dat door de methodeaddSignatureField
is geretourneerd. Vul de bytearray met de waarde van het gegevenslidbinaryData
van het objectBLOB
. - Maak een
System.IO.BinaryWriter
-object door de constructor ervan aan te roepen en hetSystem.IO.FileStream
-object door te geven. - Schrijf de inhoud van de bytearray naar een PDF-bestand door de methode
Write
van het objectSystem.IO.BinaryWriter
aan te roepen en de bytearray door te geven.
- Maak een
zie ook
Namen van handtekeningvelden ophalen retrieving-signature-field-names
U kunt de namen ophalen van alle handtekeningvelden in een PDF-document dat u wilt ondertekenen of certificeren. Als u niet zeker weet welke namen van handtekeningvelden zich in een PDF-document bevinden of als u de namen wilt verifiëren, kunt u deze via programmacode ophalen. De service Handtekening retourneert de volledig gekwalificeerde naam van het handtekeningveld, zoals form1[0].grantApplication[0].page1[0].SignatureField1[0]
.
Overzicht van de stappen summary_of_steps-1
Voer de volgende taken uit om de namen van handtekeningvelden op te halen:
- Inclusief projectbestanden.
- Maak een handtekeningclient.
- Hiermee wordt het PDF-document opgehaald dat handtekeningvelden bevat.
- Haal de namen van de handtekeningvelden op.
omvat projectdossiers
Neem de benodigde bestanden op in uw ontwikkelingsproject. Als u een clienttoepassing maakt met Java, neemt u de benodigde JAR-bestanden op. Als u webservices gebruikt, dient u de proxybestanden op te nemen.
De volgende JAR-bestanden moeten worden toegevoegd aan het klassepad van uw project:
- adobe-livecycle-client.jar
- adobe-usermanager-client.jar
- adobe-signatures-client.jar
- adobe-utilities.jar (vereist als AEM Forms wordt geïmplementeerd op JBoss)
- jbossall-client.jar (vereist als AEM Forms wordt geïmplementeerd op JBoss)
Voor informatie over de plaats van deze JAR dossiers, zie Inclusief de bibliotheekdossiers van AEM Forms Java.
creeer een cliënt van de Handtekening
Voordat u programmatically een verrichting van de dienst van de Handtekening kunt uitvoeren, moet u een cliënt van de dienst van de Handtekening tot stand brengen.
krijgt het document van de PDF dat handtekeningsgebieden bevat
Haal een PDF-document op dat handtekeningvelden bevat.
wint de namen van het handtekeningsgebied terug
U kunt namen van handtekeningvelden ophalen nadat u een PDF-document hebt opgehaald dat een of meer handtekeningvelden bevat.
zie ook
Namen van handtekeningvelden ophalen met de Java API
Handtekeningveld ophalen met de webservice-API
Inclusief AEM Forms Java-bibliotheekbestanden
Namen van handtekeningvelden ophalen met de Java API retrieve-signature-field-names-using-the-java-api
Namen van handtekeningvelden ophalen met de handtekening-API (Java):
-
Projectbestanden opnemen
Neem JAR-bestanden van de client, zoals adobe-signatures-client.jar, op in het klassepad van uw Java-project.
-
Een handtekeningclient maken
- Maak een
ServiceClientFactory
-object dat verbindingseigenschappen bevat. - Maak een
SignatureServiceClient
-object door de constructor ervan te gebruiken en hetServiceClientFactory
-object door te geven.
- Maak een
-
Hiermee wordt het PDF-document opgehaald dat handtekeningvelden bevat
- Maak een
java.io.FileInputStream
-object dat staat voor het PDF-document dat handtekeningvelden bevat door de constructor ervan te gebruiken en een tekenreekswaarde door te geven die de locatie van het PDF-document aangeeft. - Maak een
com.adobe.idp.Document
-object door de constructor ervan te gebruiken en hetjava.io.FileInputStream
-object door te geven.
- Maak een
-
De namen van handtekeningvelden ophalen
- Haal de namen van handtekeningvelden op door de methode
getSignatureFieldList
van het objectSignatureServiceClient
aan te roepen en het objectcom.adobe.idp.Document
door te geven dat het PDF-document bevat dat handtekeningvelden bevat. Deze methode retourneert eenjava.util.List
-object, waarin elk element eenPDFSignatureField
-object bevat. Met dit object kunt u aanvullende informatie verkrijgen over een handtekeningveld, bijvoorbeeld of dit zichtbaar is. - Doorloop het
java.util.List
-object om te bepalen of er namen voor handtekeningvelden zijn. Voor elk handtekeningveld in het PDF-document kunt u een apartPDFSignatureField
-object ophalen. Als u de naam van het handtekeningveld wilt verkrijgen, roept u de methodegetName
van het objectPDFSignatureField
aan. Deze methode retourneert een tekenreekswaarde die de naam van het handtekeningveld opgeeft.
- Haal de namen van handtekeningvelden op door de methode
zie ook
Namen van handtekeningvelden ophalen
Snel starten (SOAP modus): namen van handtekeningvelden ophalen met de Java API
Handtekeningveld ophalen met de webservice-API retrieve-signature-field-using-the-web-service-api
Namen van handtekeningvelden ophalen met de handtekening-API (webservice):
-
Projectbestanden opnemen
Creeer een Microsoft .NET project dat MTOM gebruikt. Gebruik de volgende WSDL-definitie:
http://localhost:8080/soap/services/SignatureService?WSDL&lc_version=9.0.1
.note note NOTE Vervang localhost
door het IP-adres van de server die als host fungeert voor AEM Forms. -
Een handtekeningclient maken
-
Maak een
SignatureServiceClient
-object met de standaardconstructor. -
Maak een
SignatureServiceClient.Endpoint.Address
-object met deSystem.ServiceModel.EndpointAddress
-constructor. Geef een tekenreekswaarde die de WSDL opgeeft door aan de AEM Forms-service (bijvoorbeeldhttp://localhost:8080/soap/services/SignatureService?WSDL
). U hoeft het attribuutlc_version
niet te gebruiken. Dit kenmerk wordt gebruikt wanneer u een serviceverwijzing maakt.) -
Maak een
System.ServiceModel.BasicHttpBinding
-object door de waarde van hetSignatureServiceClient.Endpoint.Binding
-veld op te halen. De geretourneerde waarde wordt gecast naarBasicHttpBinding
. -
Stel het veld
MessageEncoding
van hetSystem.ServiceModel.BasicHttpBinding
-object in opWSMessageEncoding.Mtom
. Deze waarde zorgt ervoor dat MTOM wordt gebruikt. -
Laat basisauthentificatie van HTTP door de volgende taken uit te voeren toe:
- Wijs de gebruikersnaam van het AEM aan het veld
SignatureServiceClient.ClientCredentials.UserName.UserName
toe. - Wijs de bijbehorende wachtwoordwaarde toe aan het veld
SignatureServiceClient.ClientCredentials.UserName.Password
. - Wijs de constante waarde
HttpClientCredentialType.Basic
toe aan het veldBasicHttpBindingSecurity.Transport.ClientCredentialType
. - Wijs de constante waarde
BasicHttpSecurityMode.TransportCredentialOnly
toe aan het veldBasicHttpBindingSecurity.Security.Mode
.
- Wijs de gebruikersnaam van het AEM aan het veld
-
-
Hiermee wordt het PDF-document opgehaald dat handtekeningvelden bevat
- Maak een
BLOB
-object met behulp van de constructor. HetBLOB
-object wordt gebruikt om het PDF-document op te slaan dat handtekeningvelden bevat. - Maak een
System.IO.FileStream
-object door de constructor ervan aan te roepen en een tekenreekswaarde door te geven die de bestandslocatie van het PDF-document en de modus waarin het bestand moet worden geopend, vertegenwoordigt. - Maak een bytearray waarin de inhoud van het object
System.IO.FileStream
wordt opgeslagen. U kunt de grootte van de bytearray bepalen door de eigenschapLength
van het objectSystem.IO.FileStream
op te halen. - Vul de bytearray met streamgegevens door de methode
Read
van het objectSystem.IO.FileStream
aan te roepen en de bytearray, de startpositie en de lengte van de stream door te geven om te lezen. - Vul het
BLOB
-object door hetMTOM
-veld ervan de inhoud van de bytearray toe te wijzen.
- Maak een
-
De namen van handtekeningvelden ophalen
- Haal de namen van handtekeningvelden op door de methode
getSignatureFieldList
van hetSignatureServiceClient
-object aan te roepen en hetBLOB
-object door te geven dat het PDF-document bevat dat handtekeningvelden bevat. Deze methode retourneert eenMyArrayOfPDFSignatureField
-verzamelingsobject waarin elk element eenPDFSignatureField
-object bevat. - Doorloop het
MyArrayOfPDFSignatureField
-object om te bepalen of er namen voor handtekeningvelden zijn. Voor elk handtekeningveld in het PDF-document kunt u eenPDFSignatureField
-object ophalen. Als u de naam van het handtekeningveld wilt verkrijgen, roept u de methodegetName
van het objectPDFSignatureField
aan. Deze methode retourneert een tekenreekswaarde die de naam van het handtekeningveld opgeeft.
- Haal de namen van handtekeningvelden op door de methode
zie ook
Handtekeningvelden wijzigen modifying-signature-fields
U kunt handtekeningvelden in een PDF-document wijzigen met de Java API en de webservice-API. Als u een handtekeningveld wijzigt, moet u de vergrendelingswoordenboekwaarden van het handtekeningveld of de waarden van het zaadwaardewoordenboek bewerken.
Het woordenboek van het a gebiedsslot specificeert een lijst van gebieden die worden gesloten wanneer het handtekeningsgebied wordt ondertekend. Een vergrendeld veld voorkomt dat gebruikers wijzigingen in het veld aanbrengen. A zaadwaardewoordenboek bevat het beperken van informatie die op het tijdstip wordt gebruikt de handtekening wordt toegepast. U kunt bijvoorbeeld machtigingen wijzigen die de acties bepalen die kunnen plaatsvinden zonder een handtekening ongeldig te maken.
Door een bestaand handtekeningveld te wijzigen, kunt u het PDF-document aanpassen aan veranderende zakelijke vereisten. Voor een nieuwe bedrijfsvereiste moeten bijvoorbeeld mogelijk alle documentvelden worden vergrendeld nadat het document is ondertekend.
In deze sectie wordt uitgelegd hoe u een handtekeningveld kunt wijzigen door de woordenboekwaarden voor veldvergrendeling en zaadwaarden te wijzigen. Als u wijzigingen aanbrengt in het vergrendelingswoordenboek van het handtekeningveld, worden alle velden in het PDF-document vergrendeld wanneer een handtekeningveld wordt ondertekend. Wijzigingen in het woordenboek voor zaadwaarden staan bepaalde typen wijzigingen in het document niet toe.
Overzicht van de stappen summary_of_steps-2
Voer de volgende taken uit om handtekeningvelden in een PDF-document te wijzigen:
- Inclusief projectbestanden.
- Maak een handtekeningclient.
- Hiermee wordt het PDF-document opgehaald dat het handtekeningveld bevat dat u wilt wijzigen.
- Stel woordenboekwaarden in.
- Wijzig het handtekeningveld.
- Sla het PDF-document op als een PDF-bestand.
omvat projectdossiers
Neem de benodigde bestanden op in uw ontwikkelingsproject. Als u een clienttoepassing maakt met Java, neemt u de benodigde JAR-bestanden op. Als u webservices gebruikt, dient u de proxybestanden op te nemen.
De volgende JAR-bestanden moeten worden toegevoegd aan het klassepad van uw project:
- adobe-livecycle-client.jar
- adobe-usermanager-client.jar
- adobe-signatures-client.jar
- adobe-utilities.jar (vereist als AEM Forms wordt geïmplementeerd op JBoss)
- jbossall-client.jar (vereist als AEM Forms wordt geïmplementeerd op JBoss)
Voor informatie over de plaats van deze JAR dossiers, zie Including de bibliotheekdossiers van Java van de LiveCycle.
creeer een cliënt van de Handtekening
Voordat u programmatically een verrichting van de dienst van de Handtekening kunt uitvoeren, moet u een cliënt van de dienst van de Handtekening tot stand brengen.
krijgt het document van de PDF dat het handtekeningsgebied bevat om te wijzigen
Hiermee wordt een PDF-document opgehaald dat het handtekeningveld bevat dat u wilt wijzigen.
vastgestelde woordenboekwaarden
Als u een handtekeningveld wilt wijzigen, wijst u waarden toe aan het bijbehorende veldvergrendelingswoordenboek of het bijbehorende zaadwaardewoordenboek. Als u woordenboekwaarden voor handtekeningvelden opgeeft, moet u PDF-documentvelden opgeven die zijn vergrendeld wanneer het handtekeningveld wordt ondertekend. (In deze sectie wordt besproken hoe u alle velden kunt vergrendelen.)
U kunt de volgende zaadwaardewoordenboekwaarden instellen:
-
Controle van de Herziening: Specificeert of de herroepingscontrole wordt uitgevoerd wanneer een handtekening op het handtekeningsgebied wordt toegepast.
-
opties van het Certificaat: Wijst waarden aan het woordenboek van de certificaatzaadwaarde toe. Voordat u certificaatopties opgeeft, is het raadzaam bekend te raken met een certificaatzaadwaardewoordenboek. (Zie Verwijzing van de PDF.)
-
de opties van de Samenvatting: Wijst samenvattingsalgoritmen toe die voor het ondertekenen worden gebruikt. Geldige waarden zijn SHA1, SHA256, SHA384, SHA512 en RIPEMD160.
-
Filter: Specificeert de filter die met het handtekeningsgebied wordt gebruikt. U kunt bijvoorbeeld het filter Adobe.PPKLite gebruiken. (Zie Verwijzing van de PDF.)
-
de opties van de Vlag: Specificeert de vlagwaarden die met dit handtekeningsgebied worden geassocieerd. De waarde 1 houdt in dat een ondertekenaar alleen de opgegeven waarden voor het item moet gebruiken. De waarde 0 houdt in dat andere waarden zijn toegestaan. Hier zijn de posities van het Beetje:
- 1 (Filter): De handtekeningsmanager die moet worden gebruikt om het handtekeningsgebied te ondertekenen
- 2 (SubFilter): een serie van namen die op aanvaardbare te gebruiken coderingen wijzen wanneer het ondertekenen
- 3 (V): Het minimum vereiste versieaantal van de handtekeningsmanager dat moet worden gebruikt om het handtekeningsgebied te ondertekenen
- 4 (Redenen): een serie van koorden die mogelijke redenen specificeren om een document te ondertekenen
- 5 (PDFLegalWarnings): een serie van koorden die mogelijke wettelijke verklaringen specificeren
-
Juridische verklaringen: Wanneer een document wordt verklaard, wordt het automatisch gescand voor specifieke soorten inhoud die de zichtbare inhoud van een document ambigu of misleidend kunnen maken. Een annotatie kan bijvoorbeeld tekst die belangrijk is voor het begrijpen van wat wordt gecertificeerd, onduidelijk maken. Tijdens het scanproces worden waarschuwingen gegenereerd die de aanwezigheid van dit type inhoud aangeven. Het verstrekt ook een extra verklaring van de inhoud die waarschuwingen kan hebben veroorzaakt.
-
Toestemmingen: Specificeert toestemmingen die op een document van de PDF kunnen worden gebruikt zonder de handtekening ongeldig te maken.
-
Redenen: Specificeert redenen waarom dit document moet worden ondertekend.
-
de stempel van de Tijd: Specificeert tijd-stempelt opties. U kunt bijvoorbeeld de URL instellen van de gebruikte tijdstempelserver.
-
Versie: Specificeert het minimumversieaantal van de handtekeningsmanager dat moet worden gebruikt om het handtekeningsgebied te ondertekenen.
wijzig het handtekeningsgebied
Nadat u een client voor de handtekeningenservice hebt gemaakt, kunt u het PDF-document ophalen dat het handtekeningveld bevat dat u wilt wijzigen en woordenboekwaarden instellen. Vervolgens kunt u de handtekeningservice de opdracht geven het handtekeningveld te wijzigen. De handtekeningservice retourneert vervolgens een PDF-document dat het gewijzigde handtekeningveld bevat. Dit heeft geen invloed op het oorspronkelijke PDF-document.
sparen het document van de PDF als dossier van PDF
Sla het PDF-document met het gewijzigde handtekeningveld op als een PDF-bestand zodat gebruikers het kunnen openen in Acrobat of Adobe Reader.
zie ook
Inclusief AEM Forms Java-bibliotheekbestanden
Verbindingseigenschappen instellen
Handtekeningvelden wijzigen met de Java API modify-signature-fields-using-the-java-api
Wijzig een handtekeningveld met de handtekening-API (Java):
-
Projectbestanden opnemen
Neem JAR-bestanden van de client, zoals adobe-signatures-client.jar, op in het klassepad van uw Java-project.
-
Een handtekeningclient maken
- Maak een
ServiceClientFactory
-object dat verbindingseigenschappen bevat. - Maak een
SignatureServiceClient
-object door de constructor ervan te gebruiken en hetServiceClientFactory
-object door te geven.
- Maak een
-
Hiermee wordt het PDF-document opgehaald dat het handtekeningveld bevat dat moet worden gewijzigd
- Maak een
java.io.FileInputStream
-object dat staat voor het PDF-document dat het handtekeningveld bevat dat moet worden gewijzigd met de constructor ervan en geef een tekenreekswaarde door die de locatie van het PDF-document aangeeft. - Maak een
com.adobe.idp.Document
-object door de constructor ervan te gebruiken en hetjava.io.FileInputStream
-object door te geven.
- Maak een
-
Woordenboekwaarden instellen
- Maak een
PDFSignatureFieldProperties
-object met behulp van de constructor. In eenPDFSignatureFieldProperties
-object worden het handtekeningveldvergrendelingswoordenboek en de zaadwaardewoordenboekgegevens opgeslagen. - Maak een
PDFSeedValueOptionSpec
-object met behulp van de constructor. Met dit object kunt u woordenboekwaarden voor zaadwaarden instellen. - Wijzigingen in het PDF-document niet toestaan door de methode
setMdpValue
van hetPDFSeedValueOptionSpec
-object aan te roepen en de opsommingswaardeMDPPermissions.NoChanges
door te geven. - Maak een
FieldMDPOptionSpec
-object met behulp van de constructor. Met dit object kunt u woordenboekwaarden voor handtekeningveldvergrendeling instellen. - Vergrendel alle velden in het PDF-document door de methode
setMdpValue
van hetFieldMDPOptionSpec
-object aan te roepen en de opsommingswaardeFieldMDPAction.ALL
door te geven. - Stel de zaadwaardewoordenboekgegevens in door de methode
setSeedValue
van het objectPDFSignatureFieldProperties
aan te roepen en het objectPDFSeedValueOptionSpec
door te geven. - Stel de vergrendelingswoordenboekgegevens voor handtekeningvelden in door de methode
setFieldMDP
van het objectPDFSignatureFieldProperties
aan te roepen en het objectFieldMDPOptionSpec
door te geven.
note note NOTE Zie de klasseverwijzing van PDFSeedValueOptionSpec
voor informatie over alle waarden in het zaadwaardewoordenboek die u kunt instellen. (Zie AEM Forms API Verwijzing.) - Maak een
-
Het handtekeningveld wijzigen
Wijzig het handtekeningveld door de methode
modifySignatureField
van het objectSignatureServiceClient
aan te roepen en de volgende waarden door te geven:- Het
com.adobe.idp.Document
-object dat het PDF-document opslaat dat het handtekeningveld bevat dat moet worden gewijzigd - Een tekenreekswaarde die de naam van het handtekeningveld opgeeft
- Het
PDFSignatureFieldProperties
-object dat het handtekeningveld vergrendelingswoordenboek en de zaadwaardewoordenboekgegevens opslaat
De methode
modifySignatureField
retourneert eencom.adobe.idp.Document
-object dat een PDF-document opslaat dat het gewijzigde handtekeningveld bevat. - Het
-
Het PDF-document opslaan als een PDF-bestand
- Maak een
java.io.File
-object en controleer of de bestandsnaamextensie .pdf is. - Roep de methode
copyToFile
van het objectcom.adobe.idp.Document
aan om de inhoud van het objectcom.adobe.idp.Document
naar het bestand te kopiëren. Zorg ervoor dat u het objectcom.adobe.idp.Document
gebruikt dat de methodemodifySignatureField
heeft geretourneerd.
- Maak een
Handtekeningvelden wijzigen met de webservice-API modify-signature-fields-using-the-web-service-api
Wijzig een handtekeningveld met de handtekening-API (webservice):
-
Projectbestanden opnemen
Creeer een Microsoft .NET project dat MTOM gebruikt. Gebruik de volgende WSDL-definitie:
http://localhost:8080/soap/services/SignatureService?WSDL&lc_version=9.0.1
.note note NOTE Vervang localhost
door het IP-adres van de server die als host fungeert voor AEM Forms. -
Een handtekeningclient maken
-
Maak een
SignatureServiceClient
-object met de standaardconstructor. -
Maak een
SignatureServiceClient.Endpoint.Address
-object met deSystem.ServiceModel.EndpointAddress
-constructor. Geef een tekenreekswaarde die de WSDL opgeeft door aan de AEM Forms-service (bijvoorbeeldhttp://localhost:8080/soap/services/SignatureService?WSDL
). U hoeft het attribuutlc_version
niet te gebruiken. Dit kenmerk wordt gebruikt wanneer u een serviceverwijzing maakt.) -
Maak een
System.ServiceModel.BasicHttpBinding
-object door de waarde van hetSignatureServiceClient.Endpoint.Binding
-veld op te halen. De geretourneerde waarde wordt gecast naarBasicHttpBinding
. -
Stel het veld
MessageEncoding
van hetSystem.ServiceModel.BasicHttpBinding
-object in opWSMessageEncoding.Mtom
. Deze waarde zorgt ervoor dat MTOM wordt gebruikt. -
Laat basisauthentificatie van HTTP door de volgende taken uit te voeren toe:
- Wijs de gebruikersnaam van het AEM aan het veld
SignatureServiceClient.ClientCredentials.UserName.UserName
toe. - Wijs de bijbehorende wachtwoordwaarde toe aan het veld
SignatureServiceClient.ClientCredentials.UserName.Password
. - Wijs de constante waarde
HttpClientCredentialType.Basic
toe aan het veldBasicHttpBindingSecurity.Transport.ClientCredentialType
. - Wijs de constante waarde
BasicHttpSecurityMode.TransportCredentialOnly
toe aan het veldBasicHttpBindingSecurity.Security.Mode
.
- Wijs de gebruikersnaam van het AEM aan het veld
-
-
Hiermee wordt het PDF-document opgehaald dat het handtekeningveld bevat dat moet worden gewijzigd
- Maak een
BLOB
-object met behulp van de constructor. Met hetBLOB
-object wordt het PDF-document opgeslagen dat het handtekeningveld bevat dat moet worden gewijzigd. - Maak een
System.IO.FileStream
-object door de constructor ervan aan te roepen en een tekenreekswaarde door te geven die de bestandslocatie van het PDF-document en de modus waarin het bestand moet worden geopend, vertegenwoordigt. - Maak een bytearray waarin de inhoud van het object
System.IO.FileStream
wordt opgeslagen. U kunt de grootte van de bytearray bepalen door de eigenschapLength
van het objectSystem.IO.FileStream
op te halen. - Vul de bytearray met streamgegevens door de methode
Read
van het objectSystem.IO.FileStream
aan te roepen en de bytearray, de startpositie en de lengte van de stream door te geven om te lezen. - Vul het object
BLOB
door de eigenschapMTOM
ervan toe te wijzen aan de inhoud van de bytearray.
- Maak een
-
Woordenboekwaarden instellen
- Maak een
PDFSignatureFieldProperties
-object met behulp van de constructor. In dit object worden het handtekeningveldvergrendelingswoordenboek en de zaadwaardewoordenboekgegevens opgeslagen. - Maak een
PDFSeedValueOptionSpec
-object met behulp van de constructor. Met dit object kunt u woordenboekwaarden voor zaadwaarden instellen. - Wijzigingen in het PDF-document niet toestaan door de opsommingswaarde
MDPPermissions.NoChanges
toe te wijzen aan het gegevenslid van hetPDFSeedValueOptionSpec
objectmdpValue
. - Maak een
FieldMDPOptionSpec
-object met behulp van de constructor. Met dit object kunt u woordenboekwaarden voor handtekeningveldvergrendeling instellen. - Vergrendel alle velden in het PDF-document door de opsommingswaarde
FieldMDPAction.ALL
toe te wijzen aan het gegevenslid van hetFieldMDPOptionSpec
objectmdpValue
. - Stel zaadwaardewoordenboekgegevens in door het
PDFSeedValueOptionSpec
-object toe te wijzen aan het gegevenslid van hetPDFSignatureFieldProperties
objectseedValue
. - Stel de vergrendelingswoordenboekgegevens voor handtekeningvelden in door het
FieldMDPOptionSpec
-object toe te wijzen aan het gegevenslid van hetPDFSignatureFieldProperties
objectfieldMDP
.
note note NOTE Zie de klasseverwijzing van PDFSeedValueOptionSpec
voor informatie over alle waarden in het zaadwaardewoordenboek die u kunt instellen. (Zie AEM Forms API Verwijzing). - Maak een
-
Het handtekeningveld wijzigen
Wijzig het handtekeningveld door de methode
modifySignatureField
van het objectSignatureServiceClient
aan te roepen en de volgende waarden door te geven:- Het
BLOB
-object dat het PDF-document opslaat dat het handtekeningveld bevat dat moet worden gewijzigd - Een tekenreekswaarde die de naam van het handtekeningveld opgeeft
- Het
PDFSignatureFieldProperties
-object dat het handtekeningveld vergrendelingswoordenboek en de zaadwaardewoordenboekgegevens opslaat
De methode
modifySignatureField
retourneert eenBLOB
-object dat een PDF-document opslaat dat het gewijzigde handtekeningveld bevat. - Het
-
Het PDF-document opslaan als een PDF-bestand
- Maak een
System.IO.FileStream
-object door de constructor ervan aan te roepen en een tekenreekswaarde door te geven die de bestandslocatie vertegenwoordigt van het PDF-document dat het handtekeningveld bevat, en de modus waarin het bestand moet worden geopend. - Maak een bytearray waarin de inhoud wordt opgeslagen van het object
BLOB
dat door de methodeaddSignatureField
wordt geretourneerd. Vul de bytearray met de waarde van het gegevenslidMTOM
van het objectBLOB
. - Maak een
System.IO.BinaryWriter
-object door de constructor ervan aan te roepen en hetSystem.IO.FileStream
-object door te geven. - Schrijf de inhoud van de bytearray naar een PDF-bestand door de methode
Write
van het objectSystem.IO.BinaryWriter
aan te roepen en de bytearray door te geven.
- Maak een
zie ook
PDF-documenten digitaal ondertekenen digitally-signing-pdf-documents
Digitale handtekeningen kunnen op PDF-documenten worden toegepast om een beveiligingsniveau te bieden. Digitale handtekeningen bieden, net als handgeschreven handtekeningen, een manier waarop ondertekenaars zichzelf identificeren en instructies over een document maken. De technologie die wordt gebruikt om documenten digitaal te ondertekenen, helpt ervoor te zorgen dat zowel de ondertekenaar als de ontvangers duidelijk zijn over wat is ondertekend en er zeker van zijn dat het document niet is gewijzigd sinds het werd ondertekend.
De documenten van PDF worden ondertekend door middel van openbare-sleuteltechnologie. Een ondertekenaar heeft twee sleutels: een openbare sleutel en een persoonlijke sleutel. De persoonlijke sleutel wordt opgeslagen in de referentie van een gebruiker die beschikbaar moet zijn op het moment van ondertekening. De openbare sleutel wordt opgeslagen in het certificaat van de gebruiker dat beschikbaar moet zijn aan ontvangers om de handtekening te valideren. Informatie over ingetrokken certificaten vindt u in de certificaatintrekkingslijsten (CRL's) en de online certificaatstatusprotocollen (OCSP's) die door de certificeringsinstanties (CA's) worden verspreid. De tijd van het ondertekenen kan van een vertrouwde op bron worden verkregen die als Tijdstempelinstantie wordt bekend.
U kunt PDF-documenten programmatisch digitaal ondertekenen. Bij het digitaal ondertekenen van een PDF-document moet u verwijzen naar een beveiligingsreferentie die in AEM Forms bestaat. De referentie is de persoonlijke sleutel die wordt gebruikt voor ondertekening.
De handtekeningservice voert de volgende stappen uit wanneer een PDF-document wordt ondertekend:
- De dienst van de Handtekening wint de referentie van Truststore terug door de alias over te gaan die in het verzoek wordt gespecificeerd.
- De Truststore zoekt naar de opgegeven referentie.
- De referentie wordt geretourneerd aan de service Handtekening en wordt gebruikt om het document te ondertekenen. De referentie wordt ook in de cache geplaatst bij de alias voor toekomstige aanvragen.
Voor informatie over de behandeling van de veiligheidsreferentie, zie het Installeren van en het Opstellen van de gids van AEM Forms voor uw toepassingsserver.
PDFOperationException
genereert. Om dit probleem op te lossen, zet het XDP-bestand om in een PDF-bestand met behulp van de service Hulpprogramma's voor PDF en geeft u het geconverteerde PDF-bestand vervolgens door aan een handtekeningservice-bewerking. (Zie Werkend met Hulpmiddelen van de PDF.)nCipher nShield HSM credential
Wanneer u een Cipher nShield HSM-referentie gebruikt om een PDF-document te ondertekenen of certificeren, kan de nieuwe referentie pas worden gebruikt als de J2EE-toepassingsserver waarop AEM Forms is geïmplementeerd, opnieuw is gestart. U kunt echter een configuratiewaarde instellen, wat resulteert in het ondertekenen of certificeren van de bewerking zonder de J2EE-toepassingsserver opnieuw te starten.
U kunt de volgende configuratiewaarde toevoegen in het cknfastrc-bestand, dat zich bevindt op /opt/nfast/cknfastrc (of c:\nfast\cknfastrc):
CKNFAST_ASSUME_SINGLE_PROCESS=0
Nadat u deze configuratiewaarde aan het cknfastrc dossier toevoegt, kan de nieuwe referentie worden gebruikt zonder de J2EE toepassingsserver opnieuw te beginnen.
<div class="extension note">
<div>NOTE</div>
<div>
<p>het wordt geadviseerd om "CTRL + C"bevel te gebruiken om SDK opnieuw te beginnen. Het opnieuw beginnen van de AEM SDK gebruikend alternatieve methodes, bijvoorbeeld, het tegenhouden van processen van Java, kan tot inconsistenties in de AEM ontwikkelomgeving leiden.</p>
</div>
</div>
de handtekening wordt niet vertrouwd op
Als bij het certificeren en ondertekenen van hetzelfde PDF-document de certificerende handtekening niet wordt vertrouwd, wordt bij het openen van het PDF-document in Acrobat of Adobe Reader een geel driehoekje weergegeven naast de eerste handtekening. De handtekening voor certificering moet worden vertrouwd om deze situatie te voorkomen.
het Ondertekenen documenten die op XFA gebaseerde vormen zijn
Als u probeert een XFA-formulier te ondertekenen met de API van de handtekeningenservice, ontbreken de gegevens mogelijk in de View
Signed
Version
in Acrobat. Neem bijvoorbeeld de volgende workflow:
- Met behulp van een XDP-bestand dat met Designer is gemaakt, voegt u een formulierontwerp samen dat een handtekeningveld en XML-gegevens bevat die formuliergegevens bevatten. Met de Forms-service kunt u een interactief PDF-document genereren.
- U ondertekent het PDF-document met de API van de handtekeningenservice.
Overzicht van de stappen summary_of_steps-3
Voer de volgende taken uit om een PDF-document digitaal te ondertekenen:
- Inclusief projectbestanden.
- Maak een handtekeningenservice-client.
- Hiermee wordt het PDF-document ter ondertekening aangeboden.
- Onderteken het PDF-document.
- Sla het ondertekende PDF-document op als een PDF-bestand.
omvat projectdossiers
Neem de benodigde bestanden op in uw ontwikkelingsproject. Als u een clienttoepassing maakt met Java, neemt u de benodigde JAR-bestanden op. Als u webservices gebruikt, dient u de proxybestanden op te nemen.
De volgende JAR-bestanden moeten worden toegevoegd aan het klassepad van uw project:
- adobe-livecycle-client.jar
- adobe-usermanager-client.jar
- adobe-signatures-client.jar
- adobe-utilities.jar (vereist als AEM Forms wordt geïmplementeerd op JBoss)
- jbossall-client.jar (vereist als AEM Forms wordt geïmplementeerd op JBoss)
creeer een cliënt van Handtekeningen
Voordat u programmatically een verrichting van de dienst van de Handtekening kunt uitvoeren, moet u een cliënt van de dienst van de Handtekening tot stand brengen.
krijg het document van de PDF om te ondertekenen
Als u een PDF-document wilt ondertekenen, moet u een PDF-document verkrijgen dat een handtekeningveld bevat. Als een PDF-document geen handtekeningveld bevat, kan het niet worden ondertekend. Een handtekeningveld kan worden toegevoegd met Designer of via programmacode.
teken het document van de PDF
Bij het ondertekenen van een PDF-document kunt u uitvoeringsopties instellen die door de service Handtekening worden gebruikt. U kunt de volgende opties instellen:
- Weergaveopties
- Intrekkingscontrole
- Waarden voor tijdstempels
U stelt vormgevingsopties in met een PDFSignatureAppearanceOptionSpec
-object. U kunt bijvoorbeeld de datum binnen een handtekening weergeven door de methode setShowDate
van het object PDFSignatureAppearanceOptionSpec
aan te roepen en door te geven true
.
U kunt ook opgeven of een intrekkingscontrole moet worden uitgevoerd die bepaalt of het certificaat dat wordt gebruikt om een PDF-document digitaal te ondertekenen, is ingetrokken. Als u de intrekkingscontrole wilt uitvoeren, kunt u een van de volgende waarden opgeven:
- NoCheck: Voer geen controle op intrekking uit.
- BesteEfficiëntie: Probeer altijd om intrekking van alle certificaten in de ketting te controleren. Als er problemen optreden bij de controle, wordt de intrekking als geldig beschouwd. Als er een fout optreedt, moet u ervan uitgaan dat het certificaat niet is ingetrokken.
- CheckIfAvailable: Controle voor intrekking van alle certificaten in de keten als de intrekkingsinformatie beschikbaar is. Als er problemen optreden bij de controle, wordt aangenomen dat de intrekking ongeldig is. Als er een fout optreedt, gaat u ervan uit dat het certificaat is ingetrokken en ongeldig is. (Dit is de standaardwaarde.)
- alwaysCheck: Controle voor intrekking van alle certificaten in de ketting. Als er geen intrekkingsinformatie aanwezig is in een certificaat, wordt aangenomen dat de intrekking ongeldig is.
Als u de intrekkingscontrole op een certificaat wilt uitvoeren, kunt u een URL naar een server met een certificaatintrekkingslijst (CRL) opgeven met behulp van een CRLOptionSpec
-object. Als u echter een intrekkingscontrole wilt uitvoeren en u geen URL opgeeft naar een CRL-server, verkrijgt de ondertekeningsservice de URL van het certificaat.
In plaats van een CRL-server te gebruiken, kunt u een OCSP-server (online certificate Status Protocol) gebruiken bij het controleren van intrekkingen. Doorgaans wordt de intrekkingscontrole sneller uitgevoerd wanneer een OCSP-server wordt gebruikt in tegenstelling tot een CRL-server. (Zie "Online Protocol van de Status van het Certificaat"in https://tools.ietf.org/html/rfc2560.)
U kunt de de serverorde plaatsen CRL en OCSP die de dienst van de Ondertekening gebruikend de Toepassingen en de Diensten van de Adobe gebruikt. Bijvoorbeeld, als de server OCSP eerst in de Toepassingen en de Diensten van de Adobe wordt geplaatst, dan wordt de server OCSP gecontroleerd, die door de server CRL wordt gevolgd. (Zie "Certificaten en gegevens beheren met Betrouwbaarheidsopslag" in de Help van AAC).
Als u opgeeft dat u de intrekkingscontrole niet wilt uitvoeren, controleert de service Handtekening niet of het certificaat dat is gebruikt om een document te ondertekenen of te certificeren, is ingetrokken. Dat wil zeggen dat CRL- en OCSP-serverinformatie wordt genegeerd.
CRLOptionSpec
- en OCSPOptionSpec
-object. Als u bijvoorbeeld de CRL-server wilt overschrijven, kunt u de methode setLocalURI
van het object CRLOptionSpec
aanroepen.Tijdstempel verwijst naar het proces waarbij de tijd wordt bijgehouden waarop een ondertekend of gecertificeerd document is gewijzigd. Nadat een document is ondertekend, mag het niet meer worden gewijzigd, zelfs niet door de eigenaar van het document. Met tijdstempels kunt u de geldigheid van een ondertekend of gecertificeerd document afdwingen. U kunt opties voor tijdstempels instellen met een TSPOptionSpec
-object. U kunt bijvoorbeeld de URL van een server met een tijdstempelprovider (TSP) opgeven.
Als u een PDF-document wilt ondertekenen, kunt u de volledig gekwalificeerde naam opgeven van het handtekeningveld dat de digitale handtekening zal bevatten, zoals form1[0].#subform[1].SignatureField3[3]
. Wanneer u een XFA-formulierveld gebruikt, kunt u ook de gedeeltelijke naam van het handtekeningveld gebruiken: SignatureField3[3]
.
U moet ook verwijzen naar een beveiligingsreferentie om een PDF-document digitaal te ondertekenen. Als u naar een beveiligingsreferentie wilt verwijzen, geeft u een alias op. De alias is een verwijzing naar een werkelijke referentie die kan voorkomen in een PKCS#12-bestand (met de extensie .pfx) of een hardwarebeveiligingsmodule (HSM). Voor informatie over de veiligheidsreferentie, zie het Installeren van en het Opstellen van de gids van AEM Forms voor uw toepassingsserver.
sparen het ondertekende document van PDF
Nadat de handtekeningservice het PDF-document digitaal heeft ondertekend, kunt u het opslaan als een PDF-bestand zodat gebruikers het kunnen openen in Acrobat of Adobe Reader.
zie ook
PDF-documenten digitaal ondertekenen met de Java API
PDF-documenten digitaal ondertekenen met de API voor webservices
Inclusief AEM Forms Java-bibliotheekbestanden
PDF-documenten digitaal ondertekenen met de Java API digitally-sign-pdf-documents-using-the-java-api
Een PDF-document digitaal ondertekenen met de handtekening-API (Java):
-
Projectbestanden opnemen
Neem JAR-bestanden van de client, zoals adobe-signatures-client.jar, op in het klassepad van uw Java-project.
-
Een Signatures-client maken
- Maak een
ServiceClientFactory
-object dat verbindingseigenschappen bevat. - Maak een
SignatureServiceClient
-object door de constructor ervan te gebruiken en hetServiceClientFactory
-object door te geven.
- Maak een
-
Het PDF-document laten ondertekenen
- Maak een
java.io.FileInputStream
-object dat het PDF-document vertegenwoordigt dat digitaal moet worden ondertekend met de constructor ervan en geef een tekenreekswaarde door die de locatie van het PDF-document aangeeft. - Maak een
com.adobe.idp.Document
-object door de constructor ervan te gebruiken en hetjava.io.FileInputStream
-object door te geven.
- Maak een
-
Het PDF-document ondertekenen
Onderteken het PDF-document door de methode
sign
van hetSignatureServiceClient
-object aan te roepen en de volgende waarden door te geven:- Een
com.adobe.idp.Document
-object dat staat voor het PDF-document dat moet worden ondertekend. - Een tekenreekswaarde die de naam vertegenwoordigt van het handtekeningveld dat de digitale handtekening zal bevatten.
- Een
Credential
-object dat de referentie vertegenwoordigt die wordt gebruikt om het PDF-document digitaal te ondertekenen. Maak eenCredential
-object door de statische methode van hetCredential
objectgetInstance
aan te roepen en een tekenreekswaarde door te geven die de aliaswaarde opgeeft die overeenkomt met de beveiligingsreferentie. - Een
HashAlgorithm
-object dat een statisch gegevenslid opgeeft dat het hash-algoritme vertegenwoordigt dat moet worden gebruikt om het PDF-document te digest. U kunt bijvoorbeeldHashAlgorithm.SHA1
opgeven om het algoritme SHA1 te gebruiken. - Een tekenreekswaarde die de reden vertegenwoordigt waarom het PDF-document digitaal is ondertekend.
- Een tekenreekswaarde die de contactgegevens van de ondertekenaar vertegenwoordigt.
- Een
PDFSignatureAppearanceOptions
-object dat de weergave van de digitale handtekening bepaalt. U kunt dit object bijvoorbeeld gebruiken om een aangepast logo toe te voegen aan een digitale handtekening. - Een
java.lang.Boolean
-object dat aangeeft of een intrekkingscontrole moet worden uitgevoerd op het certificaat van de ondertekenaar. - Een
OCSPOptionSpec
-object dat voorkeuren voor ondersteuning van het online certificaatstatusprotocol (OCSP) opslaat. Als de intrekkingscontrole niet is uitgevoerd, wordt deze parameter niet gebruikt en kunt unull
opgeven. - Een
CRLPreferences
-object dat voorkeuren voor certificaatintrekkingslijsten (CRL) opslaat. Als de intrekkingscontrole niet is uitgevoerd, wordt deze parameter niet gebruikt en kunt unull
opgeven. - Een
TSPPreferences
-object dat voorkeuren voor ondersteuning van een tijdstempelprovider (TSP) opslaat. Deze parameter is optioneel en kannull
zijn. Voor meer informatie, zie AEM Forms API Verwijzing.
De methode
sign
retourneert eencom.adobe.idp.Document
-object dat het ondertekende PDF-document vertegenwoordigt. - Een
-
Ondertekend PDF-document opslaan
- Maak een
java.io.File
-object en controleer of de bestandsextensie .pdf is. - Roep de methode
copyToFile
van het objectcom.adobe.idp.Document
aan en geefjava.io.File
door om de inhoud van het objectDocument
naar het bestand te kopiëren. Gebruik het objectcom.adobe.idp.Document
dat door de methodesign
is geretourneerd.
- Maak een
zie ook
PDF-documenten digitaal ondertekenen
Snel starten (SOAP modus): een PDF-document digitaal ondertekenen met de Java API
PDF-documenten digitaal ondertekenen met de API voor webservices digitally-signing-pdf-documents-using-the-web-service-api
U kunt als volgt een PDF-document digitaal ondertekenen met de handtekening-API (webservice):
-
Projectbestanden opnemen
Creeer een Microsoft .NET project dat MTOM gebruikt. Gebruik de volgende WSDL-definitie:
http://localhost:8080/soap/services/SignatureService?WSDL&lc_version=9.0.1
.note note NOTE Vervang localhost
door het IP-adres van de server die als host fungeert voor AEM Forms. -
Een Signatures-client maken
-
Maak een
SignatureServiceClient
-object met de standaardconstructor. -
Maak een
SignatureServiceClient.Endpoint.Address
-object met deSystem.ServiceModel.EndpointAddress
-constructor. Geef een tekenreekswaarde die de WSDL opgeeft door aan de AEM Forms-service (bijvoorbeeldhttp://localhost:8080/soap/services/SignatureService?WSDL
). U hoeft het attribuutlc_version
niet te gebruiken. Dit kenmerk wordt gebruikt wanneer u een serviceverwijzing maakt.) -
Maak een
System.ServiceModel.BasicHttpBinding
-object door de waarde van hetSignatureServiceClient.Endpoint.Binding
-veld op te halen. De geretourneerde waarde wordt gecast naarBasicHttpBinding
. -
Stel het veld
MessageEncoding
van hetSystem.ServiceModel.BasicHttpBinding
-object in opWSMessageEncoding.Mtom
. Deze waarde zorgt ervoor dat MTOM wordt gebruikt. -
Laat basisauthentificatie van HTTP door de volgende taken uit te voeren toe:
- Wijs de gebruikersnaam van het AEM aan het veld
SignatureServiceClient.ClientCredentials.UserName.UserName
toe. - Wijs de bijbehorende wachtwoordwaarde toe aan het veld
SignatureServiceClient.ClientCredentials.UserName.Password
. - Wijs de constante waarde
HttpClientCredentialType.Basic
toe aan het veldBasicHttpBindingSecurity.Transport.ClientCredentialType
. - Wijs de constante waarde
BasicHttpSecurityMode.TransportCredentialOnly
toe aan het veldBasicHttpBindingSecurity.Security.Mode
.
- Wijs de gebruikersnaam van het AEM aan het veld
-
-
Het PDF-document laten ondertekenen
- Maak een
BLOB
-object met behulp van de constructor. Met hetBLOB
-object wordt een ondertekend PDF-document opgeslagen. - Maak een
System.IO.FileStream
-object door de constructor ervan aan te roepen en een tekenreekswaarde door te geven die de bestandslocatie vertegenwoordigt van het te ondertekenen PDF-document en de modus waarin het bestand moet worden geopend. - Maak een bytearray waarin de inhoud van het object
System.IO.FileStream
wordt opgeslagen. U kunt de grootte van de bytearray bepalen door de eigenschapLength
van het objectSystem.IO.FileStream
op te halen. - Vul de bytearray met streamgegevens door de methode
Read
van het objectSystem.IO.FileStream
aan te roepen en de bytearray, de startpositie en de lengte van de stream door te geven om te lezen. - Vul het object
BLOB
door de eigenschapMTOM
ervan toe te wijzen aan de inhoud van de bytearray.
- Maak een
-
Het PDF-document ondertekenen
Onderteken het PDF-document door de methode
sign
van hetSignatureServiceClient
-object aan te roepen en de volgende waarden door te geven:- Een
BLOB
-object dat staat voor het PDF-document dat moet worden ondertekend. - Een tekenreekswaarde die de naam vertegenwoordigt van het handtekeningveld dat de digitale handtekening zal bevatten.
- Een
Credential
-object dat de referentie vertegenwoordigt die wordt gebruikt om het PDF-document digitaal te ondertekenen. Maak eenCredential
-object met behulp van de constructor en geef de alias op door een waarde toe te wijzen aan de eigenschapCredential
objectalias
. - Een
HashAlgorithm
-object dat een statisch gegevenslid opgeeft dat het hash-algoritme vertegenwoordigt dat moet worden gebruikt om het PDF-document te digest. U kunt bijvoorbeeldHashAlgorithm.SHA1
opgeven om het algoritme SHA1 te gebruiken. - Een Booleaanse waarde die opgeeft of het hash-algoritme wordt gebruikt.
- Een tekenreekswaarde die de reden vertegenwoordigt waarom het PDF-document digitaal is ondertekend.
- Een tekenreekswaarde die de locatie van de ondertekenaar vertegenwoordigt.
- Een tekenreekswaarde die de contactgegevens van de ondertekenaar vertegenwoordigt.
- Een
PDFSignatureAppearanceOptions
-object dat de weergave van de digitale handtekening bepaalt. U kunt dit object bijvoorbeeld gebruiken om een aangepast logo toe te voegen aan een digitale handtekening. - Een
System.Boolean
-object dat aangeeft of een intrekkingscontrole moet worden uitgevoerd op het certificaat van de ondertekenaar. Als deze intrekkingscontrole is uitgevoerd, wordt deze ingesloten in de handtekening. De standaardwaarde isfalse
. - Een
OCSPOptionSpec
-object dat voorkeuren voor ondersteuning van het online certificaatstatusprotocol (OCSP) opslaat. Als de intrekkingscontrole niet is uitgevoerd, wordt deze parameter niet gebruikt en kunt unull
opgeven. Voor informatie over dit voorwerp, zie AEM Forms API Verwijzing. - Een
CRLPreferences
-object dat voorkeuren voor certificaatintrekkingslijsten (CRL) opslaat. Als de intrekkingscontrole niet is uitgevoerd, wordt deze parameter niet gebruikt en kunt unull
opgeven. - Een
TSPPreferences
-object dat voorkeuren voor ondersteuning van een tijdstempelprovider (TSP) opslaat. Deze parameter is optioneel en kannull
zijn.
De methode
sign
retourneert eenBLOB
-object dat het ondertekende PDF-document vertegenwoordigt. - Een
-
Ondertekend PDF-document opslaan
- Maak een
System.IO.FileStream
-object door de constructor ervan aan te roepen. Geef een tekenreekswaarde door die staat voor de bestandslocatie van het ondertekende PDF-document en de modus waarin het bestand moet worden geopend. - Maak een bytearray waarin de inhoud wordt opgeslagen van het
BLOB
-object dat door de methodesign
is geretourneerd. Vul de bytearray met de waarde van het gegevenslidMTOM
van het objectBLOB
. - Maak een
System.IO.BinaryWriter
-object door de constructor ervan aan te roepen en hetSystem.IO.FileStream
-object door te geven. - Schrijf de inhoud van de bytearray naar een PDF-bestand door de methode
Write
van het objectSystem.IO.BinaryWriter
aan te roepen en de bytearray door te geven.
- Maak een
zie ook
Interactieve Forms digitaal ondertekenen digitally-signing-interactive-forms
U kunt een interactief formulier ondertekenen dat door de Forms-service wordt gemaakt. Neem bijvoorbeeld de volgende workflow:
- U voegt een op XFA gebaseerd PDF formulier dat is gemaakt met Designer samen en formuliergegevens in een XML-document met de Forms-service. Op de Forms-server wordt een interactief formulier weergegeven.
- U ondertekent het interactieve formulier met de API van de handtekeningenservice.
Het resultaat is een digitaal ondertekend interactief PDF-formulier. Wanneer u een PDF-formulier ondertekent dat is gebaseerd op een XFA-formulier, moet u ervoor zorgen dat u het PDF-bestand opslaat als een Adobe statisch PDF-formulier. Als u een PDF-formulier probeert te ondertekenen dat is opgeslagen als een Adobe dynamisch PDF-formulier, treedt een uitzondering op. Zorg ervoor dat het formulier een handtekeningveld bevat omdat u het formulier ondertekent dat door de Forms-service wordt geretourneerd.
Wanneer u de Forms Service API gebruikt, stelt u de runtime-optie GenerateServerAppearance
in op true
. Met deze uitvoeringsoptie blijft de weergave van het formulier dat op de server wordt gegenereerd geldig wanneer het in Acrobat of Adobe Reader wordt geopend. Het wordt aanbevolen deze uitvoeringsoptie in te stellen wanneer u een interactief formulier genereert ter ondertekening met de Forms API.
Overzicht van de stappen summary_of_steps-4
Voer de volgende taken uit om een interactief formulier dat de Forms-service retourneert, digitaal te ondertekenen:
- Inclusief projectbestanden.
- Maak een Forms- en Signatures-client.
- Vraag het interactieve formulier aan met de Forms-service.
- Onderteken het interactieve formulier.
- Sla het ondertekende PDF-document op als een PDF-bestand.
omvat projectdossiers
Neem de benodigde bestanden op in uw ontwikkelingsproject. Als u een clienttoepassing maakt met Java, neemt u de benodigde JAR-bestanden op. Als u webservices gebruikt, dient u de proxybestanden op te nemen.
De volgende JAR-bestanden moeten worden toegevoegd aan het klassepad van uw project:
- adobe-livecycle-client.jar
- adobe-usermanager-client.jar
- adobe-signatures-client.jar
- adobe-forms-client.jar
- adobe-utilities.jar (vereist als AEM Forms wordt geïmplementeerd op JBoss)
- jbossall-client.jar (vereist als AEM Forms wordt geïmplementeerd op JBoss)
Voor informatie over de plaats van deze JAR dossiers, zie Inclusief de bibliotheekdossiers van AEM Forms Java.
creeer een Forms en de cliënt van Handtekeningen
Omdat bij deze workflow zowel de Forms- als de Signature-services worden aangeroepen, kunt u zowel een Forms-serviceclient als een Signature Service-client maken.
verkrijg de interactieve vorm gebruikend de dienst van Forms
U kunt de Forms-service gebruiken om het interactieve PDF-formulier ter ondertekening te verkrijgen. Vanaf AEM Forms kunt u een com.adobe.idp.Document
-object doorgeven aan de Forms-service die het formulier bevat dat moet worden gegenereerd. De naam van deze methode is renderPDFForm2
. Deze methode retourneert een com.adobe.idp.Document
-object dat het formulier bevat dat moet worden ondertekend. U kunt deze com.adobe.idp.Document
-instantie doorgeven aan de service Handtekening.
Op dezelfde manier kunt u als u webservices gebruikt, de BLOB
-instantie doorgeven die door de Forms-service wordt geretourneerd aan de service Handtekening.
renderPDFForm2
aan.teken de interactieve vorm
Bij het ondertekenen van een PDF-document kunt u uitvoeringsopties instellen die door de handtekeningservice worden gebruikt. U kunt de volgende opties instellen:
- Weergaveopties
- Intrekkingscontrole
- Waarden voor tijdstempels
U stelt vormgevingsopties in met een PDFSignatureAppearanceOptionSpec
-object. U kunt bijvoorbeeld de datum binnen een handtekening weergeven door de methode setShowDate
van het object PDFSignatureAppearanceOptionSpec
aan te roepen en door te geven true
.
sparen het ondertekende document van PDF
Nadat de handtekeningservice het PDF-document digitaal heeft ondertekend, kunt u het opslaan als een PDF-bestand. Het PDF-bestand kan worden geopend in Acrobat of Adobe Reader.
zie ook
Een interactief formulier digitaal ondertekenen met de Java API
Een interactief formulier digitaal ondertekenen met de webservice-API
Inclusief AEM Forms Java-bibliotheekbestanden
Verbindingseigenschappen instellen
Een interactief formulier digitaal ondertekenen met de Java API digitally-sign-an-interactive-form-using-the-java-api
Een interactief formulier digitaal ondertekenen met de API voor Forms en handtekening (Java):
-
Projectbestanden opnemen
Neem JAR-bestanden voor clients, zoals adobe-signatures-client.jar en adobe-forms-client.jar, op in het klassepad van uw Java-project.
-
Een Forms- en Signatures-client maken
- Maak een
ServiceClientFactory
-object dat verbindingseigenschappen bevat. - Maak een
SignatureServiceClient
-object door de constructor ervan te gebruiken en hetServiceClientFactory
-object door te geven. - Maak een
FormsServiceClient
-object door de constructor ervan te gebruiken en hetServiceClientFactory
-object door te geven.
- Maak een
-
Het interactieve formulier ophalen met de Forms-service
-
Maak een
java.io.FileInputStream
-object dat staat voor het PDF-document dat aan de Forms-service moet worden doorgegeven met behulp van de constructor. Geef een tekenreekswaarde door die de locatie van het PDF-document aangeeft. -
Maak een
com.adobe.idp.Document
-object door de constructor ervan te gebruiken en hetjava.io.FileInputStream
-object door te geven. -
Maak een
java.io.FileInputStream
-object dat staat voor het XML-document dat formuliergegevens bevat die met behulp van de constructor aan de Forms-service moeten worden doorgegeven. Geef een tekenreekswaarde door die de locatie van het XML-bestand aangeeft. -
Maak een
com.adobe.idp.Document
-object door de constructor ervan te gebruiken en hetjava.io.FileInputStream
-object door te geven. -
Maak een
PDFFormRenderSpec
-object dat wordt gebruikt om uitvoeringsopties in te stellen. Roep de methodesetGenerateServerAppearance
van het objectPDFFormRenderSpec
aan en geeftrue
door. -
Roep de methode
renderPDFForm2
van het objectFormsServiceClient
aan en geef de volgende waarden door:- Een
com.adobe.idp.Document
-object dat het PDF-formulier bevat dat moet worden gegenereerd. - Een
com.adobe.idp.Document
-object dat gegevens bevat die met het formulier moeten worden samengevoegd. - Een
PDFFormRenderSpec
-object dat uitvoeringsopties opslaat. - Een
URLSpec
-object dat URI-waarden bevat die door de Forms-service worden vereist. U kuntnull
voor deze parameterwaarde specificeren. - Een
java.util.HashMap
-object dat bestandsbijlagen opslaat. Dit is een optionele parameter en u kuntnull
opgeven als u geen bestanden aan het formulier wilt koppelen.
De methode
renderPDFForm2
retourneert eenFormsResult
-object dat een formuliergegevensstroom bevat - Een
-
Haal het PDF-formulier op door de methode
getOutputContent
van het objectFormsResult
aan te roepen. Deze methode retourneert eencom.adobe.idp.Document
-object dat het interactieve formulier vertegenwoordigt.
-
-
Het interactieve formulier ondertekenen
Onderteken het PDF-document door de methode
sign
van hetSignatureServiceClient
-object aan te roepen en de volgende waarden door te geven:- Een
com.adobe.idp.Document
-object dat staat voor het PDF-document dat moet worden ondertekend. Zorg ervoor dat dit object hetcom.adobe.idp.Document
-object is dat is verkregen van de Forms-service. - Een tekenreekswaarde die de naam vertegenwoordigt van het handtekeningveld dat wordt ondertekend.
- Een
Credential
-object dat de referentie vertegenwoordigt die wordt gebruikt om het PDF-document digitaal te ondertekenen. Maak eenCredential
-object door de statische methodeCredential
van het objectgetInstance
aan te roepen. Geef een tekenreekswaarde door die de aliaswaarde opgeeft die overeenkomt met de beveiligingsreferentie. - Een
HashAlgorithm
-object dat een statisch gegevenslid opgeeft dat het hash-algoritme vertegenwoordigt dat moet worden gebruikt om het PDF-document te digest. U kunt bijvoorbeeldHashAlgorithm.SHA1
opgeven om het algoritme SHA1 te gebruiken. - Een tekenreekswaarde die de reden vertegenwoordigt waarom het PDF-document digitaal is ondertekend.
- Een tekenreekswaarde die de contactgegevens van de ondertekenaar vertegenwoordigt.
- Een
PDFSignatureAppearanceOptions
-object dat de weergave van de digitale handtekening bepaalt. U kunt dit object bijvoorbeeld gebruiken om een aangepast logo toe te voegen aan een digitale handtekening. - Een
java.lang.Boolean
-object dat aangeeft of een intrekkingscontrole moet worden uitgevoerd op het certificaat van de ondertekenaar. - Een
OCSPPreferences
-object dat voorkeuren voor ondersteuning van het online certificaatstatusprotocol (OCSP) opslaat. Als de intrekkingscontrole niet is uitgevoerd, wordt deze parameter niet gebruikt en kunt unull
opgeven. - Een
CRLPreferences
-object dat voorkeuren voor certificaatintrekkingslijsten (CRL) opslaat. Als de intrekkingscontrole niet is uitgevoerd, wordt deze parameter niet gebruikt en kunt unull
opgeven. - Een
TSPPreferences
-object dat voorkeuren voor ondersteuning van een tijdstempelprovider (TSP) opslaat. Deze parameter is optioneel en kannull
zijn.
De methode
sign
retourneert eencom.adobe.idp.Document
-object dat het ondertekende PDF-document vertegenwoordigt. - Een
-
Ondertekend PDF-document opslaan
- Maak een
java.io.File
-object en controleer of de bestandsnaamextensie .pdf is. - Roep de methode
copyToFile
van het objectcom.adobe.idp.Document
aan en geefjava.io.File
door om de inhoud van het objectDocument
naar het bestand te kopiëren. Zorg ervoor dat u het objectcom.adobe.idp.Document
gebruikt dat de methodesign
heeft geretourneerd.
- Maak een
zie ook
Interactieve Forms digitaal ondertekenen
Snel starten (SOAP modus): een PDF-document digitaal ondertekenen met de Java API
Een interactief formulier digitaal ondertekenen met de webservice-API digitally-sign-an-interactive-form-using-the-web-service-api
Een interactief formulier digitaal ondertekenen met de API voor Forms en handtekening (webservice):
-
Projectbestanden opnemen
Creeer een Microsoft .NET project dat MTOM gebruikt. Omdat deze cliënttoepassing de twee diensten van AEM Forms aanhaalt, creeer twee de dienstverwijzingen. Gebruik de volgende WSDL-definitie voor de serviceverwijzing die is gekoppeld aan de service Handtekening:
http://localhost:8080/soap/services/SignatureService?WSDL&lc_version=9.0.1
.Gebruik de volgende WSDL-definitie voor de serviceverwijzing die aan de Forms-service is gekoppeld:
http://localhost:8080/soap/services/FormsService?WSDL&lc_version=9.0.1
.Omdat het gegevenstype
BLOB
veel wordt gebruikt voor beide serviceverwijzingen, kunt u het gegevenstype vanBLOB
volledig kwalificeren wanneer u het gebruikt. In de bijbehorende webservice quick start zijn alleBLOB
-instanties volledig gekwalificeerd.note note NOTE Vervang localhost
door het IP-adres van de server die als host fungeert voor AEM Forms. -
Een Forms- en Signatures-client maken
-
Maak een
SignatureServiceClient
-object met de standaardconstructor. -
Maak een
SignatureServiceClient.Endpoint.Address
-object met deSystem.ServiceModel.EndpointAddress
-constructor. Geef een tekenreekswaarde die de WSDL opgeeft door aan de AEM Forms-service (bijvoorbeeldhttp://localhost:8080/soap/services/SignatureService?WSDL
). U hoeft het attribuutlc_version
niet te gebruiken. Dit kenmerk wordt gebruikt wanneer u een serviceverwijzing maakt.) -
Maak een
System.ServiceModel.BasicHttpBinding
-object door de waarde van hetSignatureServiceClient.Endpoint.Binding
-veld op te halen. De geretourneerde waarde wordt gecast naarBasicHttpBinding
. -
Stel het veld
MessageEncoding
van hetSystem.ServiceModel.BasicHttpBinding
-object in opWSMessageEncoding.Mtom
. Deze waarde zorgt ervoor dat MTOM wordt gebruikt. -
Laat basisauthentificatie van HTTP door de volgende taken uit te voeren toe:
- Wijs de gebruikersnaam van het AEM aan het veld
SignatureServiceClient.ClientCredentials.UserName.UserName
toe. - Wijs de bijbehorende wachtwoordwaarde toe aan het veld
SignatureServiceClient.ClientCredentials.UserName.Password
. - Wijs de constante waarde
HttpClientCredentialType.Basic
toe aan het veldBasicHttpBindingSecurity.Transport.ClientCredentialType
.
- Wijs de gebruikersnaam van het AEM aan het veld
-
Wijs de constante waarde
BasicHttpSecurityMode.TransportCredentialOnly
toe aan het veldBasicHttpBindingSecurity.Security.Mode
.
note note NOTE Herhaal deze stappen voor de Forms service client. -
-
Het interactieve formulier ophalen met de Forms-service
-
Maak een
BLOB
-object met behulp van de constructor. Met hetBLOB
-object wordt een ondertekend PDF-document opgeslagen. -
Maak een
System.IO.FileStream
-object door de constructor ervan aan te roepen en een tekenreekswaarde door te geven die de bestandslocatie vertegenwoordigt van het te ondertekenen PDF-document en de modus waarin het bestand moet worden geopend. -
Maak een bytearray waarin de inhoud van het object
System.IO.FileStream
wordt opgeslagen. U kunt de grootte van de bytearray bepalen door de eigenschapLength
van het objectSystem.IO.FileStream
op te halen. -
Vul de bytearray met streamgegevens door de methode
Read
van het objectSystem.IO.FileStream
aan te roepen en de bytearray, de startpositie en de lengte van de stream door te geven om te lezen. -
Vul het object
BLOB
door de eigenschapMTOM
ervan toe te wijzen aan de inhoud van de bytearray. -
Maak een
BLOB
-object met behulp van de constructor. HetBLOB
-object wordt gebruikt om formuliergegevens op te slaan. -
Maak een
System.IO.FileStream
-object door de constructor ervan aan te roepen en een tekenreekswaarde door te geven die de bestandslocatie vertegenwoordigt van het XML-bestand dat formuliergegevens bevat, en de modus waarin het bestand moet worden geopend. -
Maak een bytearray waarin de inhoud van het object
System.IO.FileStream
wordt opgeslagen. U kunt de grootte van de bytearray bepalen door de eigenschapLength
van het objectSystem.IO.FileStream
op te halen. -
Vul de bytearray met streamgegevens door de methode
Read
van het objectSystem.IO.FileStream
aan te roepen en de bytearray, de startpositie en de lengte van de stream door te geven om te lezen. -
Vul het object
BLOB
door de eigenschapMTOM
ervan toe te wijzen aan de inhoud van de bytearray. -
Maak een
PDFFormRenderSpec
-object dat wordt gebruikt om uitvoeringsopties in te stellen. Wijs de waardetrue
toe aan het veldPDFFormRenderSpec
objectgenerateServerAppearance
. -
Roep de methode
renderPDFForm2
van het objectFormsServiceClient
aan en geef de volgende waarden door:- Een
BLOB
-object dat het PDF-formulier bevat dat moet worden gegenereerd. - Een
BLOB
-object dat gegevens bevat die met het formulier moeten worden samengevoegd. - Een
PDFFormRenderSpec
-object dat uitvoeringsopties opslaat. - Een
URLSpec
-object dat URI-waarden bevat die door de Forms-service worden vereist. U kuntnull
voor deze parameterwaarde specificeren. - Een
java.util.HashMap
-object dat bestandsbijlagen opslaat. Dit is een optionele parameter en u kuntnull
opgeven als u geen bestanden aan het formulier wilt koppelen. - Een lange uitvoerparameter die wordt gebruikt om het aantal pagina's in het formulier op te slaan.
- Een tekenreeks-uitvoerparameter die wordt gebruikt voor de landinstellingswaarde.
- Een
FormResult
-waarde die een uitvoerparameter is die wordt gebruikt om het interactieve formulier op te slaan.
- Een
-
Haal het PDF-formulier op door het veld
outputContent
van hetFormsResult
-object op te halen. In dit veld wordt eenBLOB
-object opgeslagen dat het interactieve formulier vertegenwoordigt.
-
-
Het interactieve formulier ondertekenen
Onderteken het PDF-document door de methode
sign
van hetSignatureServiceClient
-object aan te roepen en de volgende waarden door te geven:- Een
BLOB
-object dat staat voor het PDF-document dat moet worden ondertekend. Gebruik deBLOB
-instantie die door de Forms-service wordt geretourneerd. - Een tekenreekswaarde die de naam vertegenwoordigt van het handtekeningveld dat wordt ondertekend.
- Een
Credential
-object dat de referentie vertegenwoordigt die wordt gebruikt om het PDF-document digitaal te ondertekenen. Maak eenCredential
-object met behulp van de constructor en geef de alias op door een waarde toe te wijzen aan de eigenschapCredential
objectalias
. - Een
HashAlgorithm
-object dat een statisch gegevenslid opgeeft dat het hash-algoritme vertegenwoordigt dat moet worden gebruikt om het PDF-document te digest. U kunt bijvoorbeeldHashAlgorithm.SHA1
opgeven om het algoritme SHA1 te gebruiken. - Een Booleaanse waarde die opgeeft of het hash-algoritme wordt gebruikt.
- Een tekenreekswaarde die de reden vertegenwoordigt waarom het PDF-document digitaal is ondertekend.
- Een tekenreekswaarde die de locatie van de ondertekenaar vertegenwoordigt.
- Een tekenreekswaarde die de contactgegevens van de ondertekenaar vertegenwoordigt.
- Een
PDFSignatureAppearanceOptions
-object dat de weergave van de digitale handtekening bepaalt. U kunt dit object bijvoorbeeld gebruiken om een aangepast logo toe te voegen aan een digitale handtekening. - Een
System.Boolean
-object dat aangeeft of een intrekkingscontrole moet worden uitgevoerd op het certificaat van de ondertekenaar. Als deze intrekkingscontrole is uitgevoerd, wordt deze ingesloten in de handtekening. De standaardwaarde isfalse
. - Een
OCSPPreferences
-object dat voorkeuren voor ondersteuning van het online certificaatstatusprotocol (OCSP) opslaat. Als de intrekkingscontrole niet is uitgevoerd, wordt deze parameter niet gebruikt en kunt unull
opgeven. Voor informatie over dit voorwerp, zie AEM Forms API Verwijzing. - Een
CRLPreferences
-object dat voorkeuren voor certificaatintrekkingslijsten (CRL) opslaat. Als de intrekkingscontrole niet is uitgevoerd, wordt deze parameter niet gebruikt en kunt unull
opgeven. - Een
TSPPreferences
-object dat voorkeuren voor ondersteuning van een tijdstempelprovider (TSP) opslaat. Deze parameter is optioneel en kannull
zijn.
De methode
sign
retourneert eenBLOB
-object dat het ondertekende PDF-document vertegenwoordigt. - Een
-
Ondertekend PDF-document opslaan
- Maak een
System.IO.FileStream
-object door de constructor ervan aan te roepen. Geef een tekenreekswaarde door die staat voor de bestandslocatie van het ondertekende PDF-document en de modus waarin het bestand moet worden geopend. - Maak een bytearray waarin de inhoud wordt opgeslagen van het
BLOB
-object dat door de methodesign
is geretourneerd. Vul de bytearray met de waarde van het gegevenslidMTOM
van het objectBLOB
. - Maak een
System.IO.BinaryWriter
-object door de constructor ervan aan te roepen en hetSystem.IO.FileStream
-object door te geven. - Schrijf de inhoud van de bytearray naar een PDF-bestand door de methode
Write
van het objectSystem.IO.BinaryWriter
aan te roepen en de bytearray door te geven.
- Maak een
zie ook
PDF-documenten certificeren certifying-pdf-documents
U kunt een PDF-document beveiligen door het te certificeren met een bepaald type handtekening, een zogenaamde gecertificeerde handtekening. Een gecertificeerde handtekening wordt op de volgende manieren onderscheiden van een digitale handtekening:
- Dit moet de eerste handtekening zijn die op het PDF-document wordt toegepast. Dit betekent dat op het moment dat de gecertificeerde handtekening wordt toegepast, alle andere handtekeningvelden in het document niet-ondertekend moeten zijn. Er is slechts één gecertificeerde handtekening toegestaan in een PDF-document. Als u een PDF-document wilt ondertekenen en certificeren, moet u het certificeren voordat u het ondertekent. Nadat u een PDF-document hebt gecertificeerd, kunt u digitale extra handtekeningvelden ondertekenen.
- De auteur of maker van het document kan opgeven dat het document op bepaalde manieren kan worden gewijzigd zonder de gecertificeerde handtekening ongeldig te maken. Het document kan bijvoorbeeld het invullen van formulieren of het plaatsen van opmerkingen toestaan. Als de auteur aangeeft dat een bepaalde wijziging niet is toegestaan, beperkt Acrobat gebruikers het document op die manier te wijzigen. Als dergelijke wijzigingen worden aangebracht, bijvoorbeeld door een andere toepassing te gebruiken, is de gecertificeerde handtekening ongeldig en geeft Acrobat een waarschuwing wanneer een gebruiker het document opent. (Bij niet-gecertificeerde handtekeningen zijn wijzigingen niet mogelijk en maken normale bewerkingsbewerkingen de oorspronkelijke handtekening niet ongeldig.)
- Op het moment van ondertekening wordt het document gescand op specifieke typen inhoud die de inhoud van een document dubbelzinnig of misleidend kunnen maken. Een annotatie kan bijvoorbeeld bepaalde tekst op een pagina verbergen die belangrijk is voor het begrijpen van wat wordt gecertificeerd. Over deze inhoud kan een toelichting (wettelijke verklaring) worden gegeven.
U kunt PDF-documenten programmatisch certificeren met de Java API voor de handtekeningenservice of de API voor de handtekeningwebservice. Wanneer u een PDF-document certificeert, moet u verwijzen naar een beveiligingsreferentie in de Credential-service. Voor informatie over de veiligheidsreferentie, zie het Installeren van en het Opstellen van de gids van AEM Forms voor uw toepassingsserver.
U kunt de volgende configuratiewaarde toevoegen in het cknfastrc-bestand, dat zich bevindt op /opt/nfast/cknfastrc (of c:\nfast\cknfastrc):
CKNFAST_ASSUME_SINGLE_PROCESS=0
Nadat u deze configuratiewaarde aan het cknfastrc dossier toevoegt, kan de nieuwe referentie worden gebruikt zonder de J2EE toepassingsserver opnieuw te beginnen.
Overzicht van de stappen summary_of_steps-5
Voer de volgende taken uit om een PDF-document te certificeren:
- Inclusief projectbestanden.
- Maak een handtekeningclient.
- Laat het PDF-document certificeren.
- Certificeer het PDF-document.
- Sla het gecertificeerde PDF-document op als een PDF-bestand.
omvat projectdossiers
Neem de benodigde bestanden op in uw ontwikkelingsproject. Als u een clienttoepassing maakt met Java, neemt u de benodigde JAR-bestanden op. Als u webservices gebruikt, dient u de proxybestanden op te nemen.
De volgende JAR-bestanden moeten worden toegevoegd aan het klassepad van uw project:
- adobe-livecycle-client.jar
- adobe-usermanager-client.jar
- adobe-signatures-client.jar
- adobe-utilities.jar (vereist als AEM Forms wordt geïmplementeerd op JBoss)
- jbossall-client.jar (vereist als AEM Forms wordt geïmplementeerd op JBoss)
Voor informatie over de plaats van deze JAR dossiers, zie Inclusief de bibliotheekdossiers van AEM Forms Java.
creeer een cliënt van de Handtekening
Voordat u een handtekeningbewerking programmatisch kunt uitvoeren, moet u een handtekeningclient maken.
krijg het document van de PDF om te verklaren
Als u een PDF-document wilt certificeren, moet u een PDF-document verkrijgen dat een handtekeningveld bevat. Als een PDF-document geen handtekeningveld bevat, kan het niet worden gecertificeerd. Een handtekeningveld kan worden toegevoegd met Designer of via programmacode. Voor informatie over programmatically het toevoegen van een handtekeningsgebied, zie Toevoegend de Gebieden van de Handtekening.
certificeer het document van de PDF
Als u een PDF-document wilt certificeren, hebt u de volgende invoerwaarden nodig die door de service Handtekening worden gebruikt voor de certificering van een PDF-document:
- PDF document: Een document van de PDF dat een handtekeningsgebied bevat, dat een vormgebied is dat een grafische vertegenwoordiging van de verklaarde handtekening bevat. Een PDF-document moet een handtekeningveld bevatten voordat het kan worden gecertificeerd. Een handtekeningveld kan worden toegevoegd met Designer of via programmacode. (Zie Toevoegend de Gebieden van de Handtekening.)
- het gebiedsnaam van de Handtekening: Volledig - gekwalificeerde naam van het handtekeningsgebied dat wordt verklaard. De volgende waarde is een voorbeeld:
form1[0].#subform[1].SignatureField3[3]
. Wanneer u een XFA-formulierveld gebruikt, kunt u ook de gedeeltelijke naam van het handtekeningveld gebruiken:SignatureField3[3]
. Als een null-waarde wordt doorgegeven voor de veldnaam, wordt dynamisch een onzichtbaar handtekeningveld gemaakt en gecertificeerd. - de referentie van de Veiligheid: Een referentie die wordt gebruikt om het document van de PDF te certificeren. Deze veiligheidsreferentie bevat een wachtwoord en een alias, die een alias moeten aanpassen die in de referentie verschijnt die binnen de Credential dienst wordt gevestigd. De alias is een verwijzing naar een werkelijke referentie die kan voorkomen in een PKCS#12-bestand (met de extensie .pfx) of een hardwarebeveiligingsmodule (HSM).
- algoritme van de Hash: Een knoeiboelalgoritme om het document van de PDF te gebruiken te mengen.
- Reden voor het ondertekenen: Een waarde die in Acrobat of Adobe Reader wordt getoond zodat andere gebruikers de reden kennen waarom het document van de PDF werd verklaard.
- Plaats van de ondertekenaar: De plaats van de ondertekenaar die door de referentie wordt gespecificeerd.
- de informatie van het Contact: De informatie van het contact, zoals adres en telefoonnummer, van de ondertekenaar.
- informatie van de Toestemming: Toestemmingen die de acties controleren die een eindgebruiker op een document kan uitvoeren zonder de verklaarde handtekening te veroorzaken ongeldig te zijn. U kunt bijvoorbeeld de machtiging zo instellen dat elke wijziging in het PDF-document ertoe leidt dat de gecertificeerde handtekening ongeldig wordt.
- wettelijke verklaring: Wanneer een document wordt verklaard, wordt het automatisch gescand voor specifieke soorten inhoud die de inhoud van een document ambigu of misleidend zouden kunnen maken. Een annotatie kan bijvoorbeeld bepaalde tekst op een pagina verbergen die belangrijk is voor het begrijpen van wat wordt gecertificeerd. Tijdens het scanproces worden waarschuwingen over dit type inhoud gegenereerd. Deze waarde biedt een aanvullende uitleg van de inhoud die waarschuwingen heeft gegenereerd.
- de opties van de Vormgeving: Opties die de verschijning van de verklaarde handtekening controleren. De gecertificeerde handtekening kan bijvoorbeeld datumgegevens weergeven.
- Revocation het controleren: Deze waarde specificeert of de herroeping het controleren voor het certificaat van de ondertekenaar wordt gedaan. De standaardinstelling van
false
betekent dat de intrekkingscontrole niet is uitgevoerd. - OCSP montages: Montages voor Online steun van de Status van het Certificaat van het Protocol (OCSP), die informatie over de status van de referentie verstrekt die wordt gebruikt om het document van de PDF te certificeren. U kunt bijvoorbeeld de URL van de server opgeven die informatie bevat over de referentie die u gebruikt om u aan te melden bij het PDF-document.
- montages CRL: Montages voor de voorkeur van de certificaatintrekkingslijst (CRL) als de herroepingscontrole wordt gedaan. U kunt bijvoorbeeld opgeven om altijd te controleren of een referentie is ingetrokken.
- Tijd het stempelen: Montages die tijd het stempelen informatie bepalen die op de verklaarde handtekening wordt toegepast. Een tijdstempel geeft aan dat specifieke gegevens voor een bepaald tijdstip zijn vastgesteld. Deze kennis draagt bij tot het opbouwen van een vertrouwensrelatie tussen de ondertekenaar en de verificateur.
sparen het verklaarde document van PDF als dossier van PDF
Nadat de handtekeningservice het PDF-document heeft gecertificeerd, kunt u het opslaan als een PDF-bestand zodat gebruikers het kunnen openen in Acrobat of Adobe Reader.
zie ook
PDF-documenten certificeren met de Java API
PDF-documenten certificeren met de webservice-API
Inclusief AEM Forms Java-bibliotheekbestanden
PDF-documenten certificeren met de Java API certify-pdf-documents-using-the-java-api
Een PDF-document certificeren met de handtekening-API (Java):
-
Projectbestanden opnemen
Neem client-JAR-bestanden, zoals adobe-signatures-client.jar, op in het klassepad van uw Java-project.
-
Een handtekeningclient maken
- Maak een
ServiceClientFactory
-object dat verbindingseigenschappen bevat. - Maak een
SignatureServiceClient
-object door de constructor ervan te gebruiken en hetServiceClientFactory
-object door te geven.
- Maak een
-
Laat het PDF-document certificeren
- Maak een
java.io.FileInputStream
-object dat staat voor het PDF-document dat moet worden gecertificeerd met de constructor ervan en geef een tekenreekswaarde door die de locatie van het PDF-document aangeeft. - Maak een
com.adobe.idp.Document
-object door de constructor ervan te gebruiken en hetjava.io.FileInputStream
-object door te geven.
- Maak een
-
Het PDF-document certificeren
Certificeer het PDF-document door de methode
certify
van hetSignatureServiceClient
-object aan te roepen en de volgende waarden door te geven:- Het
com.adobe.idp.Document
-object dat het te certificeren PDF-document vertegenwoordigt. - Een tekenreekswaarde die de naam vertegenwoordigt van het handtekeningveld dat de handtekening zal bevatten.
- Een
Credential
-object dat de referentie vertegenwoordigt die wordt gebruikt om het PDF-document te certificeren. Maak eenCredential
-object door de statische methode van hetCredential
objectgetInstance
aan te roepen en een tekenreekswaarde door te geven die de aliaswaarde opgeeft die overeenkomt met de beveiligingsreferentie. - Een
HashAlgorithm
-object dat een statisch gegevenslid opgeeft dat het hash-algoritme vertegenwoordigt dat wordt gebruikt om het PDF-document te digest. U kunt bijvoorbeeldHashAlgorithm.SHA1
opgeven om het algoritme SHA1 te gebruiken. - Een tekenreekswaarde die de reden vertegenwoordigt waarom het PDF-document is gecertificeerd.
- Een tekenreekswaarde die de contactgegevens van de ondertekenaar vertegenwoordigt.
- Een
MDPPermissions
-object dat handelingen opgeeft die kunnen worden uitgevoerd op het PDF-document dat de handtekening ongeldig maakt. - Een
PDFSignatureAppearanceOptions
-object dat de weergave van de gecertificeerde handtekening bepaalt. Wijzig desgewenst de weergave van de handtekening door een methode aan te roepen, zoalssetShowDate
. - Een tekenreekswaarde die een uitleg geeft van welke handelingen de handtekening ongeldig maken.
- Een
java.lang.Boolean
-object dat aangeeft of een intrekkingscontrole moet worden uitgevoerd op het certificaat van de ondertekenaar. Als deze intrekkingscontrole is uitgevoerd, wordt deze ingesloten in de handtekening. De standaardwaarde isfalse
. - Een
java.lang.Boolean
-object dat opgeeft of het handtekeningveld dat wordt gecertificeerd, is vergrendeld. Als het veld is vergrendeld, wordt het handtekeningveld gemarkeerd als alleen-lezen, kunnen de eigenschappen ervan niet worden gewijzigd en kan het niet worden gewist door iedereen die niet de vereiste machtigingen heeft. De standaardwaarde isfalse
. - Een
OCSPPreferences
-object dat voorkeuren voor ondersteuning van het online certificaatstatusprotocol (OCSP) opslaat. Als de intrekkingscontrole niet is uitgevoerd, wordt deze parameter niet gebruikt en kunt unull
opgeven. Voor informatie over dit voorwerp, zie AEM Forms API Verwijzing. - Een
CRLPreferences
-object dat voorkeuren voor certificaatintrekkingslijsten (CRL) opslaat. Als de intrekkingscontrole niet is uitgevoerd, wordt deze parameter niet gebruikt en kunt unull
opgeven. - Een
TSPPreferences
-object dat voorkeuren voor ondersteuning van een tijdstempelprovider (TSP) opslaat. Nadat u bijvoorbeeld eenTSPPreferences
-object hebt gemaakt, kunt u de URL van de TSP-server instellen door de methodeTSPPreferences
objectsetTspServerURL
aan te roepen. Deze parameter is optioneel en kannull
zijn. Voor meer informatie, zie Verwijzing van de Diensten voor AEM Forms.
De methode
certify
retourneert eencom.adobe.idp.Document
-object dat het gecertificeerde PDF-document vertegenwoordigt. - Het
-
Het gecertificeerde PDF-document opslaan als een PDF-bestand
- Maak een
java.io.File
-object en controleer of de bestandsextensie .pdf is. - Roep de methode
copyToFile
van het objectcom.adobe.idp.Document
aan om de inhoud van het objectcom.adobe.idp.Document
naar het bestand te kopiëren.
- Maak een
zie ook
Snel starten (SOAP modus): Een PDF-document certificeren met de Java API
PDF-documenten certificeren met de webservice-API certify-pdf-documents-using-the-web-service-api
Certificeer een PDF-document met de handtekening-API (webservice):
-
Projectbestanden opnemen
Creeer een Microsoft .NET project dat MTOM gebruikt. Gebruik de volgende WSDL-definitie:
http://localhost:8080/soap/services/SignatureService?WSDL&lc_version=9.0.1
.note note NOTE Vervang localhost
door het IP-adres van de server die als host fungeert voor AEM Forms. -
Een handtekeningclient maken
-
Maak een
SignatureServiceClient
-object met de standaardconstructor. -
Maak een
SignatureServiceClient.Endpoint.Address
-object met deSystem.ServiceModel.EndpointAddress
-constructor. Geef een tekenreekswaarde die de WSDL opgeeft door aan de AEM Forms-service (bijvoorbeeldhttp://localhost:8080/soap/services/SignatureService?WSDL
). U hoeft het attribuutlc_version
niet te gebruiken. Dit kenmerk wordt gebruikt wanneer u een serviceverwijzing maakt.) -
Maak een
System.ServiceModel.BasicHttpBinding
-object door de waarde van hetSignatureServiceClient.Endpoint.Binding
-veld op te halen. De geretourneerde waarde wordt gecast naarBasicHttpBinding
. -
Stel het veld
MessageEncoding
van hetSystem.ServiceModel.BasicHttpBinding
-object in opWSMessageEncoding.Mtom
. Deze waarde zorgt ervoor dat MTOM wordt gebruikt. -
Laat basisauthentificatie van HTTP door de volgende taken uit te voeren toe:
- Wijs de gebruikersnaam van het AEM aan het veld
SignatureServiceClient.ClientCredentials.UserName.UserName
toe. - Wijs de bijbehorende wachtwoordwaarde toe aan het veld
SignatureServiceClient.ClientCredentials.UserName.Password
. - Wijs de constante waarde
HttpClientCredentialType.Basic
toe aan het veldBasicHttpBindingSecurity.Transport.ClientCredentialType
. - Wijs de constante waarde
BasicHttpSecurityMode.TransportCredentialOnly
toe aan het veldBasicHttpBindingSecurity.Security.Mode
.
- Wijs de gebruikersnaam van het AEM aan het veld
-
-
Laat het PDF-document certificeren
- Maak een
BLOB
-object met behulp van de constructor. Met hetBLOB
-object wordt een gecertificeerd PDF-document opgeslagen. - Maak een
System.IO.FileStream
-object door de constructor ervan aan te roepen en een tekenreekswaarde door te geven die de bestandslocatie vertegenwoordigt van het te certificeren PDF-document en de modus waarin het bestand moet worden geopend. - Maak een bytearray waarin de inhoud van het object
System.IO.FileStream
wordt opgeslagen. U kunt de grootte van de bytearray bepalen door de eigenschapLength
van het objectSystem.IO.FileStream
op te halen. - Vul de bytearray met streamgegevens door de methode
Read
van het objectSystem.IO.FileStream
aan te roepen en de bytearray, de startpositie en de lengte van de stream door te geven om te lezen. - Vul het
BLOB
-object door hetMTOM
-gegevenslid ervan toe te wijzen aan de inhoud van de bytearray.
- Maak een
-
Het PDF-document certificeren
Certificeer het PDF-document door de methode
certify
van hetSignatureServiceClient
-object aan te roepen en de volgende waarden door te geven:- Het
BLOB
-object dat het te certificeren PDF-document vertegenwoordigt. - Een tekenreekswaarde die de naam vertegenwoordigt van het handtekeningveld dat de handtekening zal bevatten.
- Een
Credential
-object dat de referentie vertegenwoordigt die wordt gebruikt om het PDF-document te certificeren. Maak eenCredential
-object met behulp van de constructor en geef de alias op door een waarde toe te wijzen aan de eigenschapCredential
objectalias
. - Een
HashAlgorithm
-object dat een statisch gegevenslid opgeeft dat het hash-algoritme vertegenwoordigt dat wordt gebruikt om het PDF-document te digest. U kunt bijvoorbeeldHashAlgorithm.SHA1
opgeven om het algoritme SHA1 te gebruiken. - Een Booleaanse waarde die opgeeft of het hash-algoritme wordt gebruikt.
- Een tekenreekswaarde die de reden vertegenwoordigt waarom het PDF-document is gecertificeerd.
- Een tekenreekswaarde die de locatie van de ondertekenaar vertegenwoordigt.
- Een tekenreekswaarde die de contactgegevens van de ondertekenaar vertegenwoordigt.
- Een
MDPPermissions
-objectlid met statische gegevens dat handelingen opgeeft die kunnen worden uitgevoerd op het PDF-document waardoor de handtekening ongeldig wordt gemaakt. - Een Booleaanse waarde die opgeeft of het object
MDPPermissions
moet worden gebruikt dat als de vorige parameterwaarde is doorgegeven. - Een tekenreekswaarde die aangeeft welke handelingen de handtekening ongeldig maken.
- Een
PDFSignatureAppearanceOptions
-object dat de weergave van de gecertificeerde handtekening bepaalt. Maak eenPDFSignatureAppearanceOptions
-object met behulp van de constructor. U kunt de weergave van de handtekening wijzigen door een van de gegevensleden in te stellen. - Een
System.Boolean
-object dat aangeeft of een intrekkingscontrole moet worden uitgevoerd op het certificaat van de ondertekenaar. Als deze intrekkingscontrole is uitgevoerd, wordt deze ingesloten in de handtekening. De standaardwaarde isfalse
. - Een
System.Boolean
-object dat opgeeft of het handtekeningveld dat wordt gecertificeerd, is vergrendeld. Als het veld is vergrendeld, wordt het handtekeningveld gemarkeerd als alleen-lezen, kunnen de eigenschappen ervan niet worden gewijzigd en kan het niet worden gewist door iedereen die niet de vereiste machtigingen heeft. De standaardwaarde isfalse
. - Een
System.Boolean
-object dat opgeeft of het handtekeningveld is vergrendeld. Wanneer utrue
doorgeeft aan de vorige parameter, geeft utrue
door aan deze parameter. - Een
OCSPPreferences
-object dat voorkeuren voor ondersteuning van het online certificaatstatusprotocol (OCSP) opslaat. Hiermee wordt informatie gegeven over de status van de referentie die wordt gebruikt om het PDF-document te certificeren. Als de intrekkingscontrole niet is uitgevoerd, wordt deze parameter niet gebruikt en kunt unull
opgeven. - Een
CRLPreferences
-object dat voorkeuren voor certificaatintrekkingslijsten (CRL) opslaat. Als de intrekkingscontrole niet is uitgevoerd, wordt deze parameter niet gebruikt en kunt unull
opgeven. - Een
TSPPreferences
-object dat voorkeuren voor ondersteuning van een tijdstempelprovider (TSP) opslaat. Nadat u bijvoorbeeld eenTSPPreferences
-object hebt gemaakt, kunt u de URL van de TSP instellen door het gegevenslid van hetTSPPreferences
objecttspServerURL
in te stellen. Deze parameter is optioneel en kannull
zijn.
De methode
certify
retourneert eenBLOB
-object dat het gecertificeerde PDF-document vertegenwoordigt. - Het
-
Het gecertificeerde PDF-document opslaan als een PDF-bestand
- Maak een
System.IO.FileStream
-object door de constructor ervan aan te roepen en een tekenreekswaarde door te geven die de bestandslocatie vertegenwoordigt van het PDF-document dat het gecertificeerde PDF-document zal bevatten en de modus waarin het bestand moet worden geopend. - Maak een bytearray waarin de inhoud wordt opgeslagen van het
BLOB
-object dat door de methodecertify
is geretourneerd. Vul de bytearray met de waarde van het gegevenslidbinaryData
van het objectBLOB
. - Maak een
System.IO.BinaryWriter
-object door de constructor ervan aan te roepen en hetSystem.IO.FileStream
-object door te geven. - Schrijf de inhoud van de bytearray naar een PDF-bestand door de methode
Write
van het objectSystem.IO.BinaryWriter
aan te roepen en de bytearray door te geven.
- Maak een
zie ook
Digitale handtekeningen verifiëren verifying-digital-signatures
Digitale handtekeningen kunnen worden geverifieerd om ervoor te zorgen dat een ondertekend PDF-document niet is gewijzigd en dat de digitale handtekening geldig is. Wanneer u een digitale handtekening verifieert, kunt u de status van de handtekening en de eigenschappen van de handtekening controleren, zoals de identiteit van de ondertekenaar. Voordat u een digitale handtekening vertrouwt, is het raadzaam deze te controleren. Wanneer u een digitale handtekening verifieert, verwijst u naar een PDF-document dat een digitale handtekening bevat.
Stel dat de identiteit van de ondertekenaar onbekend is. Wanneer u het PDF-document opent in Acrobat, wordt in een waarschuwingsbericht aangegeven dat de identiteit van de ondertekenaar onbekend is, zoals in de volgende afbeelding wordt getoond.
Op dezelfde manier kunt u, wanneer u programmatisch een digitale handtekening verifieert, de status van de identiteit van de ondertekenaar bepalen. Als u bijvoorbeeld de digitale handtekening verifieert in het document dat in de vorige illustratie wordt weergegeven, resulteert dit in het feit dat de identiteit van de ondertekenaar onbekend is.
Overzicht van de stappen summary_of_steps-6
Voer de volgende taken uit om een digitale handtekening te verifiëren:
- Inclusief projectbestanden.
- Maak een handtekeningclient.
- Hiermee wordt het PDF-document opgehaald dat de te verifiëren handtekening bevat.
- Stel PKI-runtime-opties in.
- Controleer de digitale handtekening.
- Bepaal de status van de handtekening.
- Bepaal de identiteit van de ondertekenaar.
omvat projectdossiers
Neem de benodigde bestanden op in uw ontwikkelingsproject. Als u een clienttoepassing maakt met Java, neemt u de benodigde JAR-bestanden op. Als u webservices gebruikt, neemt u de proxybestanden op.
De volgende JAR-bestanden moeten worden toegevoegd aan het klassepad van uw project:
- adobe-livecycle-client.jar
- adobe-usermanager-client.jar
- adobe-signatures-client.jar
- adobe-utilities.jar (vereist als AEM Forms wordt geïmplementeerd op JBoss)
- jbossall-client.jar (vereist als AEM Forms wordt geïmplementeerd op JBoss)
Voor informatie over de plaats van deze JAR dossiers, zie Inclusief de bibliotheekdossiers van AEM Forms Java.
creeer een cliënt van de Handtekening
Voordat u via programmacode een bewerking in de handtekeningenservice uitvoert, moet u een client voor de handtekeningenservice maken.
krijgt het document van de PDF dat de te verifiëren handtekening bevat
Als u een PDF-document digitaal wilt ondertekenen of certificeren met een handtekening, vraagt u een PDF-document op dat een handtekening bevat.
vastgestelde PKI runtime opties
Stel de volgende PKI-runtimeopties in die de handtekeningservice gebruikt bij het controleren van handtekeningen in een PDF-document:
- Verificatietijd
- Intrekkingscontrole
- Waarden voor tijdstempels
Als onderdeel van het instellen van deze opties kunt u een verificatietijd opgeven. U kunt bijvoorbeeld de huidige tijd selecteren (de tijd op de computer van de validator), die aangeeft dat de huidige tijd moet worden gebruikt. Voor informatie over de verschillende tijdwaarden, zie de VerificationTime
opsommingswaarde in AEM Forms API Verwijzing.
U kunt ook opgeven of de intrekkingscontrole moet worden uitgevoerd tijdens het verificatieproces. U kunt bijvoorbeeld een intrekkingscontrole uitvoeren om te bepalen of het certificaat wordt ingetrokken. Voor informatie over de herroeping-controlerende opties, zie de RevocationCheckStyle
opsommingswaarde in AEM Forms API Verwijzing.
Als u intrekkingscontrole wilt uitvoeren op een certificaat, geeft u een URL op naar een server met een certificaatintrekkingslijst (CRL) met behulp van een CRLOptionSpec
-object. Als u echter geen URL opgeeft naar de CRL-server, verkrijgt de handtekeningservice de URL van het certificaat.
In plaats van een CRL-server te gebruiken, kunt u een OCSP-server (online certificate Status Protocol) gebruiken bij het controleren van intrekkingen. Wanneer u een OCSP-server gebruikt in tegenstelling tot een CRL-server, wordt de intrekkingscontrole meestal sneller uitgevoerd. (Zie Online Protocol van de Status van het Certificaat.)
U kunt de de serverorde plaatsen CRL en OCSP die de dienst van de Ondertekening door de Toepassingen en de Diensten van de Adobe te gebruiken gebruikt. Bijvoorbeeld, als de server OCSP eerst in de Toepassingen en de Diensten van de Adobe wordt geplaatst, dan wordt de server OCSP gecontroleerd, die door de server CRL wordt gevolgd.
Als u de intrekkingscontrole niet uitvoert, controleert de service Handtekening niet of het certificaat is ingetrokken. Dat wil zeggen dat CRL- en OCSP-serverinformatie wordt genegeerd.
CRLOptionSpec
en OCSPOptionSpec
. Als u bijvoorbeeld de CRL-server wilt overschrijven, kunt u de methode setLocalURI
van het object CRLOptionSpec
aanroepen.Tijdstempel is het proces waarbij de tijd wordt bijgehouden waarop een ondertekend of gecertificeerd document is gewijzigd. Nadat een document is ondertekend, kan niemand het wijzigen. Met tijdstempels kunt u de geldigheid van een ondertekend of gecertificeerd document afdwingen. U kunt opties voor tijdstempels instellen met een TSPOptionSpec
-object. U kunt bijvoorbeeld de URL van een server met een tijdstempelprovider (TSP) opgeven.
VerificationTime.CURRENT_TIME
en wordt de intrekkingscontrole ingesteld op RevocationCheckStyle.BestEffort
. Omdat er geen CRL- of OCSP-serverinformatie is opgegeven, wordt de serverinformatie opgehaald uit het certificaat.verifieer de digitale handtekening
Als u een handtekening wilt verifiëren, geeft u de volledig gekwalificeerde naam op van het handtekeningveld dat de handtekening bevat, bijvoorbeeld form1[0].#subform[1].SignatureField3[3]
. Wanneer u een XFA-formulierveld gebruikt, kunt u ook de gedeeltelijke naam van het handtekeningveld gebruiken: SignatureField3
.
De service Handtekening beperkt standaard de tijd die een document na de validatietijd kan worden ondertekend tot 65 minuten. Als een gebruiker probeert een handtekening op het huidige tijdstip te verifiëren en de ondertekeningstijd later is dan de huidige tijd en binnen 65 minuten, genereert de handtekeningservice geen verificatiefout.
bepaal het statuut van de handtekening
Als onderdeel van de verificatie van een digitale handtekening, kunt u de status van de handtekening controleren.
bepaalt de identiteit van de ondertekenaar
U kunt de identiteit van de ondertekenaar bepalen. Dit kan een van de volgende waarden zijn:
- Onbekend: Deze ondertekenaar is onbekend omdat de ondertekenaarverificatie niet kan worden uitgevoerd.
- Vertrouwd: Deze ondertekenaar wordt vertrouwd.
- niet vertrouwd op: Deze ondertekenaar wordt niet vertrouwd.
zie ook
Digitale handtekeningen verifiëren met de Java API
Digitale handtekeningen verifiëren met de webservice-API
Digitale handtekeningen verifiëren met de Java API verify-digital-signatures-using-the-java-api
Verifieer een digitale handtekening met de API van de Handtekeningenservice (Java):
-
Projectbestanden opnemen
Neem JAR-bestanden van de client, zoals adobe-signatures-client.jar, op in het klassepad van uw Java-project.
-
Een handtekeningclient maken
- Maak een
ServiceClientFactory
-object dat verbindingseigenschappen bevat. - Maak een
SignatureServiceClient
-object door de constructor ervan te gebruiken en hetServiceClientFactory
-object door te geven.
- Maak een
-
Hiermee wordt het PDF-document opgehaald dat de handtekening bevat die moet worden geverifieerd
- Maak een
java.io.FileInputStream
-object dat staat voor het PDF-document dat de handtekening bevat die moet worden geverifieerd met behulp van de constructor ervan. Geef een tekenreekswaarde door die de locatie van het PDF-document aangeeft. - Maak een
com.adobe.idp.Document
-object door de constructor ervan te gebruiken en hetjava.io.FileInputStream
-object door te geven.
- Maak een
-
PKI-runtime-opties instellen
- Maak een
PKIOptions
-object met behulp van de constructor. - Stel de verificatietijd in door de methode
setVerificationTime
van het objectPKIOptions
aan te roepen en een opsommingswaardeVerificationTime
door te geven die de verificatietijd opgeeft. - Stel de optie voor intrekkingscontrole in door de methode
setRevocationCheckStyle
van het objectPKIOptions
aan te roepen en een opsommingswaardeRevocationCheckStyle
door te geven die aangeeft of een intrekkingscontrole moet worden uitgevoerd.
- Maak een
-
De digitale handtekening verifiëren
Verifieer de handtekening door de methode
verify2
van het objectSignatureServiceClient
aan te roepen en de volgende waarden door te geven:- Een
com.adobe.idp.Document
-object dat een digitaal ondertekend of gecertificeerd PDF-document bevat. - Een tekenreekswaarde die staat voor de naam van het handtekeningveld dat de te controleren handtekening bevat.
- Een
PKIOptions
-object dat PKI-runtime-opties bevat. - Een
VerifySPIOptions
-instantie die SPI-informatie bevat. U kuntnull
voor deze parameter opgeven.
De methode
verify2
retourneert eenPDFSignatureVerificationInfo
-object dat informatie bevat die kan worden gebruikt om de digitale handtekening te verifiëren. - Een
-
De status van de handtekening bepalen
- Bepaal de status van de handtekening door de methode
getStatus
van het objectPDFSignatureVerificationInfo
aan te roepen. Deze methode retourneert eenSignatureStatus
-object dat de status van de handtekening opgeeft. Als een ondertekend PDF-document bijvoorbeeld niet wordt gewijzigd, retourneert deze methodeSignatureStatus.DocumentSigNoChanges
.
- Bepaal de status van de handtekening door de methode
-
De identiteit van de ondertekenaar bepalen
- Bepaal de identiteit van de ondertekenaar door de methode
getSigner
van het objectPDFSignatureVerificationInfo
aan te roepen. Deze methode retourneert eenIdentityInformation
-object. - Roep de methode
getStatus
van hetIdentityInformation
-object aan om de identiteit van de ondertekenaar te bepalen. Deze methode retourneert een opsommingswaardeIdentityStatus
die de identiteit opgeeft. Als de ondertekenaar bijvoorbeeld wordt vertrouwd, retourneert deze methodeIdentityStatus.TRUSTED
.
- Bepaal de identiteit van de ondertekenaar door de methode
zie ook
Digitale handtekeningen verifiëren
Snel starten (SOAP modus): een digitale handtekening controleren met de Java API
Digitale handtekeningen verifiëren met de webservice-API verify-digital-signatures-using-the-web-service-api
Verifieer een digitale handtekening met behulp van de Signature Service API (webservice):
-
Projectbestanden opnemen
Creeer een Microsoft .NET project dat MTOM gebruikt. Gebruik de volgende WSDL-definitie:
http://localhost:8080/soap/services/SignatureService?WSDL&lc_version=9.0.1
.note note NOTE Vervang localhost
door het IP-adres van de server die als host fungeert voor AEM Forms. -
Een handtekeningclient maken
-
Maak een
SignatureServiceClient
-object met de standaardconstructor. -
Maak een
SignatureServiceClient.Endpoint.Address
-object met deSystem.ServiceModel.EndpointAddress
-constructor. Geef een tekenreekswaarde die de WSDL opgeeft door aan de AEM Forms-service (bijvoorbeeldhttp://localhost:8080/soap/services/SignatureService?WSDL
). U hoeft het attribuutlc_version
niet te gebruiken. Dit kenmerk wordt gebruikt wanneer u een serviceverwijzing maakt.) -
Maak een
System.ServiceModel.BasicHttpBinding
-object door de waarde van hetSignatureServiceClient.Endpoint.Binding
-veld op te halen. De geretourneerde waarde wordt gecast naarBasicHttpBinding
. -
Stel het veld
MessageEncoding
van hetSystem.ServiceModel.BasicHttpBinding
-object in opWSMessageEncoding.Mtom
. Deze waarde zorgt ervoor dat MTOM wordt gebruikt. -
Laat basisauthentificatie van HTTP door de volgende taken uit te voeren toe:
- Wijs de gebruikersnaam van het AEM aan het veld
SignatureServiceClient.ClientCredentials.UserName.UserName
toe. - Wijs de bijbehorende wachtwoordwaarde toe aan het veld
SignatureServiceClient.ClientCredentials.UserName.Password
. - Wijs de constante waarde
HttpClientCredentialType.Basic
toe aan het veldBasicHttpBindingSecurity.Transport.ClientCredentialType
. - Wijs de constante waarde
BasicHttpSecurityMode.TransportCredentialOnly
toe aan het veldBasicHttpBindingSecurity.Security.Mode
.
- Wijs de gebruikersnaam van het AEM aan het veld
-
-
Hiermee wordt het PDF-document opgehaald dat de handtekening bevat die moet worden geverifieerd
- Maak een
BLOB
-object met behulp van de constructor. HetBLOB
-object wordt gebruikt om een PDF-document op te slaan dat een digitale of gecertificeerde handtekening bevat die moet worden geverifieerd. - Maak een
System.IO.FileStream
-object door de constructor ervan aan te roepen. Geef een tekenreekswaarde door die staat voor de bestandslocatie van het ondertekende PDF-document en de modus waarin het bestand moet worden geopend. - Maak een bytearray waarin de inhoud van het object
System.IO.FileStream
wordt opgeslagen. U kunt de grootte van de bytearray bepalen door de eigenschapLength
van het objectSystem.IO.FileStream
op te halen. - Vul de bytearray met streamgegevens door de methode
Read
van het objectSystem.IO.FileStream
aan te roepen. Geef de bytearray, de startpositie en de streamlengte door om te lezen. - Vul het object
BLOB
door de eigenschapMTOM
ervan toe te wijzen aan de inhoud van de bytearray.
- Maak een
-
PKI-runtime-opties instellen
- Maak een
PKIOptions
-object met behulp van de constructor. - Stel de verificatietijd in door de opsommingswaarde
verificationTime
data memberVerificationTime
van hetPKIOptions
-object toe te wijzen die de verificatietijd opgeeft. - Stel de optie voor intrekkingscontrole in door de opsommingswaarde
revocationCheckStyle
data memberRevocationCheckStyle
van hetPKIOptions
-object toe te wijzen die aangeeft of een intrekkingscontrole moet worden uitgevoerd.
- Maak een
-
De digitale handtekening verifiëren
Verifieer de handtekening door de methode
verify2
van het objectSignatureServiceClient
aan te roepen en de volgende waarden door te geven:- Het
BLOB
-object dat een digitaal ondertekend of gecertificeerd PDF-document bevat. - Een tekenreekswaarde die staat voor de naam van het handtekeningveld dat de te controleren handtekening bevat.
- Een
PKIOptions
-object dat PKI-runtime-opties bevat. - Een
VerifySPIOptions
-instantie die SPI-informatie bevat. U kuntnull
voor deze parameter opgeven.
De methode
verify2
retourneert eenPDFSignatureVerificationInfo
-object dat informatie bevat die kan worden gebruikt om de digitale handtekening te verifiëren. - Het
-
De status van de handtekening bepalen
Bepaal de status van de handtekening door de waarde van het gegevenslid
status
van hetPDFSignatureVerificationInfo
-object op te halen. Dit gegevenslid slaat eenSignatureStatus
-object op dat de status van de handtekening opgeeft. Als bijvoorbeeld een ondertekend PDF-document wordt gewijzigd, slaat hetstatus
-gegevenslid de waardeSignatureStatus.DocumentSigNoChanges
op. -
De identiteit van de ondertekenaar bepalen
- Bepaal de identiteit van de ondertekenaar door de waarde van het gegevenslid
signer
van hetPDFSignatureVerificationInfo
-object op te halen. Dit lid retourneert eenIdentityInformation
-object. - Haal het gegevenslid
status
van hetIdentityInformation
-object op om de identiteit van de ondertekenaar te bepalen. Dit gegevenslid retourneert eenIdentityStatus
opsommingswaarde die de identiteit opgeeft. Als de ondertekenaar bijvoorbeeld wordt vertrouwd, retourneert dit lidIdentityStatus.TRUSTED
.
- Bepaal de identiteit van de ondertekenaar door de waarde van het gegevenslid
zie ook
Meerdere digitale handtekeningen controleren verifying-multiple-digital-signatures
AEM Forms biedt de mogelijkheid om alle digitale handtekeningen in een PDF-document te verifiëren. Stel dat een PDF-document meerdere digitale handtekeningen bevat als resultaat van een bedrijfsproces waarvoor handtekeningen van meerdere ondertekenaars nodig zijn. Neem bijvoorbeeld een financiële transactie waarvoor zowel de handtekening van een medewerker als die van een manager is vereist. Met de Java API of de webservice-API van de handtekeningenservice kunt u alle handtekeningen in het PDF-document verifiëren. Wanneer u meerdere digitale handtekeningen controleert, kunt u de status en eigenschappen van elke handtekening controleren. Voordat u een digitale handtekening vertrouwt, is het raadzaam deze te verifiëren. U wordt aangeraden bekend te zijn met het controleren van één digitale handtekening.
Overzicht van de stappen summary_of_steps-7
Voer de volgende taken uit om meerdere digitale handtekeningen te verifiëren:
- Inclusief projectbestanden.
- Maak een handtekeningclient.
- Hiermee wordt het PDF-document opgehaald dat de handtekeningen bevat die moeten worden geverifieerd.
- Stel PKI-runtime-opties in.
- Alle digitale handtekeningen ophalen.
- Alle handtekeningen doorlopen.
omvat projectdossiers
Neem de benodigde bestanden op in uw ontwikkelingsproject. Als u een clienttoepassing maakt met Java, neemt u de benodigde JAR-bestanden op. Als u webservices gebruikt, neemt u de proxybestanden op.
De volgende JAR-bestanden moeten worden toegevoegd aan het klassepad van uw project:
- adobe-livecycle-client.jar
- adobe-usermanager-client.jar
- adobe-signatures-client.jar
- adobe-utilities.jar (vereist als AEM Forms wordt geïmplementeerd op JBoss)
- jbossall-client.jar (vereist als AEM Forms wordt geïmplementeerd op JBoss)
Voor informatie over de plaats van deze JAR dossiers, zie Inclusief de bibliotheekdossiers van AEM Forms Java.
creeer een cliënt van de Handtekening
Voordat u via programmacode een bewerking in de handtekeningenservice uitvoert, moet u een client voor de handtekeningenservice maken.
krijgt het document van de PDF dat de handtekeningen bevat om te verifiëren
Als u een PDF-document digitaal wilt ondertekenen of certificeren met een handtekening, vraagt u een PDF-document op dat een handtekening bevat.
Vastgestelde PKI runtime opties
Stel de volgende PKI-runtimeopties in die de handtekeningservice gebruikt bij het controleren van alle handtekeningen in een PDF-document:
- Verificatietijd
- Intrekkingscontrole
- Waarden voor tijdstempels
Als onderdeel van het instellen van deze opties kunt u een verificatietijd opgeven. U kunt bijvoorbeeld de huidige tijd selecteren (de tijd op de computer van de validator), die aangeeft dat de huidige tijd moet worden gebruikt. Voor informatie over de verschillende tijdwaarden, zie de VerificationTime
opsommingswaarde in AEM Forms API Verwijzing.
U kunt ook opgeven of de intrekkingscontrole moet worden uitgevoerd tijdens het verificatieproces. U kunt bijvoorbeeld een intrekkingscontrole uitvoeren om te bepalen of het certificaat wordt ingetrokken. Voor informatie over de herroeping-controlerende opties, zie de RevocationCheckStyle
opsommingswaarde in AEM Forms API Verwijzing.
Als u intrekkingscontrole wilt uitvoeren op een certificaat, geeft u een URL op naar een server met een certificaatintrekkingslijst (CRL) met behulp van een CRLOptionSpec
-object. Als u echter geen URL opgeeft naar een CRL-server, verkrijgt de handtekeningservice de URL van het certificaat.
In plaats van een CRL-server te gebruiken, kunt u een OCSP-server (online certificate Status Protocol) gebruiken bij het controleren van intrekkingen. Wanneer u een OCSP-server gebruikt in plaats van een CRL-server, wordt de intrekkingscontrole meestal sneller uitgevoerd. (Zie Online Protocol van de Status van het Certificaat.)
U kunt de de serverorde plaatsen CRL en OCSP die de dienst van de Ondertekening door de Toepassingen en de Diensten van de Adobe te gebruiken gebruikt. Bijvoorbeeld, als de OCSP server eerst in de Toepassingen en de Diensten van de Adobe wordt geplaatst, wordt de server OCSP gecontroleerd, die door de server CRL wordt gevolgd.
Als u de intrekkingscontrole niet uitvoert, controleert de service Handtekening niet of het certificaat is ingetrokken. Dat wil zeggen dat CRL- en OCSP-serverinformatie wordt genegeerd.
CRLOptionSpec
en OCSPOptionSpec
. Als u bijvoorbeeld de CRL-server wilt overschrijven, kunt u de methode setLocalURI
van het object CRLOptionSpec
aanroepen.Tijdstempel is het proces waarbij de tijd wordt bijgehouden waarop een ondertekend of gecertificeerd document is gewijzigd. Nadat een document is ondertekend, kan niemand het wijzigen. Met tijdstempels kunt u de geldigheid van een ondertekend of gecertificeerd document afdwingen. U kunt opties voor tijdstempels instellen met een TSPOptionSpec
-object. U kunt bijvoorbeeld de URL van een server met een tijdstempelprovider (TSP) opgeven.
VerificationTime.CURRENT_TIME
en wordt de intrekkingscontrole ingesteld op RevocationCheckStyle.BestEffort
. Omdat er geen CRL- of OCSP-serverinformatie is opgegeven, wordt de serverinformatie opgehaald uit het certificaat.wint alle digitale handtekeningen terug
Als u alle digitale handtekeningen in een PDF-document wilt verifiëren, haalt u de digitale handtekeningen op uit het PDF-document. Alle handtekeningen worden geretourneerd in een lijst. Controleer als onderdeel van de verificatie van een digitale handtekening de status van de handtekening.
Interactief door alle handtekeningen
Doorloop elke handtekening. Dat wil zeggen dat voor elke handtekening de digitale handtekening wordt geverifieerd en dat de identiteit van de ondertekenaar en de status van elke handtekening worden gecontroleerd. (Zie Verifying Digital Signatures.)
zie ook
Meerdere digitale handtekeningen verifiëren met de Java API
Meerdere digitale handtekeningen verifiëren met de webservice-API
Meerdere digitale handtekeningen verifiëren met de Java API verify-multiple-digital-signatures-using-the-java-api
Verifieer meerdere digitale handtekeningen met de API voor handtekeningenservice (Java):
-
Projectbestanden opnemen
Neem JAR-bestanden van de client, zoals adobe-signatures-client.jar, op in het klassepad van uw Java-project.
-
Een handtekeningclient maken
- Maak een
ServiceClientFactory
-object dat verbindingseigenschappen bevat. - Maak een
SignatureServiceClient
-object door de constructor ervan te gebruiken en hetServiceClientFactory
-object door te geven.
- Maak een
-
Hiermee wordt het PDF-document opgehaald dat de handtekeningen bevat die moeten worden gecontroleerd
- Maak een
java.io.FileInputStream
-object dat het PDF-document vertegenwoordigt dat meerdere digitale handtekeningen bevat die u met de constructor ervan kunt controleren. Geef een tekenreekswaarde door die de locatie van het PDF-document aangeeft. - Maak een
com.adobe.idp.Document
-object door de constructor ervan te gebruiken en hetjava.io.FileInputStream
-object door te geven.
- Maak een
-
PKI-runtime-opties instellen
- Maak een
PKIOptions
-object met behulp van de constructor. - Stel de verificatietijd in door de methode
setVerificationTime
van het objectPKIOptions
aan te roepen en een opsommingswaardeVerificationTime
door te geven die de verificatietijd opgeeft. - Stel de optie voor intrekkingscontrole in door de methode
setRevocationCheckStyle
van het objectPKIOptions
aan te roepen en een opsommingswaardeRevocationCheckStyle
door te geven die aangeeft of een intrekkingscontrole moet worden uitgevoerd.
- Maak een
-
Alle digitale handtekeningen ophalen
Roep de methode
verifyPDFDocument
van het objectSignatureServiceClient
aan en geef de volgende waarden door:- Een
com.adobe.idp.Document
-object dat een PDF-document bevat dat meerdere digitale handtekeningen bevat. - Een
PKIOptions
-object dat PKI-runtime-opties bevat. - Een
VerifySPIOptions
-instantie die SPI-informatie bevat. U kuntnull
voor deze parameter opgeven.
De methode
verifyPDFDocument
retourneert eenPDFDocumentVerificationInfo
-object dat informatie bevat over alle digitale handtekeningen in het PDF-document. - Een
-
Alle handtekeningen doorlopen
- Doorloop alle handtekeningen door de methode
getVerificationInfos
van het objectPDFDocumentVerificationInfo
aan te roepen. Deze methode retourneert eenjava.util.List
-object waarbij elk element eenPDFSignatureVerificationInfo
-object is. Gebruik eenjava.util.Iterator
-object om de lijst met handtekeningen te doorlopen. - Met behulp van het
PDFSignatureVerificationInfo
-object kunt u taken uitvoeren zoals het bepalen van de status van de handtekening door de methodePDFSignatureVerificationInfo
objectgetStatus
aan te roepen. Deze methode retourneert eenSignatureStatus
-object waarvan het lid met statische gegevens u op de hoogte stelt van de status van de handtekening. Als de handtekening bijvoorbeeld onbekend is, retourneert deze methodeSignatureStatus.DocumentSignatureUnknown
.
- Doorloop alle handtekeningen door de methode
zie ook
Meerdere digitale handtekeningen controleren
Snel starten (SOAP modus): meerdere digitale handtekeningen controleren met de Java API
Inclusief AEM Forms Java-bibliotheekbestanden
Meerdere digitale handtekeningen verifiëren met de webservice-API verifying-multiple-digital-signatures-using-the-web-service-api
Verifieer veelvoudige digitale handtekeningen door de Dienst API van de Handtekening (Webdienst te gebruiken):
-
Projectbestanden opnemen
Creeer een Microsoft .NET project dat MTOM gebruikt. Gebruik de volgende WSDL-definitie:
http://localhost:8080/soap/services/SignatureService?WSDL&lc_version=9.0.1
.note note NOTE Vervang localhost
door het IP-adres van de server die als host fungeert voor AEM Forms. -
Een handtekeningclient maken
-
Maak een
SignatureServiceClient
-object met de standaardconstructor. -
Maak een
SignatureServiceClient.Endpoint.Address
-object met deSystem.ServiceModel.EndpointAddress
-constructor. Geef een tekenreekswaarde die de WSDL opgeeft door aan de AEM Forms-service (bijvoorbeeldhttp://localhost:8080/soap/services/SignatureService?WSDL
). U hoeft het attribuutlc_version
niet te gebruiken. Dit kenmerk wordt gebruikt wanneer u een serviceverwijzing maakt.) -
Maak een
System.ServiceModel.BasicHttpBinding
-object door de waarde van hetSignatureServiceClient.Endpoint.Binding
-veld op te halen. De geretourneerde waarde wordt gecast naarBasicHttpBinding
. -
Stel het veld
MessageEncoding
van hetSystem.ServiceModel.BasicHttpBinding
-object in opWSMessageEncoding.Mtom
. Deze waarde zorgt ervoor dat MTOM wordt gebruikt. -
Laat basisauthentificatie van HTTP door de volgende taken uit te voeren toe:
- Wijs de gebruikersnaam van het AEM aan het veld
SignatureServiceClient.ClientCredentials.UserName.UserName
toe. - Wijs de bijbehorende wachtwoordwaarde toe aan het veld
SignatureServiceClient.ClientCredentials.UserName.Password
. - Wijs de constante waarde
HttpClientCredentialType.Basic
toe aan het veldBasicHttpBindingSecurity.Transport.ClientCredentialType
. - Wijs de constante waarde
BasicHttpSecurityMode.TransportCredentialOnly
toe aan het veldBasicHttpBindingSecurity.Security.Mode
.
- Wijs de gebruikersnaam van het AEM aan het veld
-
-
Hiermee wordt het PDF-document opgehaald dat de handtekeningen bevat die moeten worden gecontroleerd
- Maak een
BLOB
-object met behulp van de constructor. In hetBLOB
-object wordt een PDF-document opgeslagen dat meerdere digitale handtekeningen bevat om te controleren. - Maak een
System.IO.FileStream
-object door de constructor ervan aan te roepen. Geef een tekenreekswaarde door die staat voor de bestandslocatie van het PDF-document en de modus waarin het bestand moet worden geopend. - Maak een bytearray waarin de inhoud van het object
System.IO.FileStream
wordt opgeslagen. U kunt de grootte van de bytearray bepalen door de eigenschapLength
van het objectSystem.IO.FileStream
op te halen. - Vul de bytearray met streamgegevens door de methode
Read
van het objectSystem.IO.FileStream
aan te roepen. Geef de bytearray, de startpositie en de streamlengte door om te lezen. - Vul het object
BLOB
door de eigenschapMTOM
ervan toe te wijzen aan de inhoud van de bytearray.
- Maak een
-
PKI-runtime-opties instellen
- Maak een
PKIOptions
-object met behulp van de constructor. - Stel de verificatietijd in door de opsommingswaarde
verificationTime
data memberVerificationTime
van hetPKIOptions
-object toe te wijzen die de verificatietijd opgeeft. - Stel de optie voor intrekkingscontrole in door het gegevenslid van het
revocationCheckStyle
data memberRevocationCheckStyle
-object een opsommingswaarde toe te wijzen die aangeeft of een intrekkingscontrole moet worden uitgevoerd.PKIOptions
- Maak een
-
Alle digitale handtekeningen ophalen
Roep de methode
verifyPDFDocument
van het objectSignatureServiceClient
aan en geef de volgende waarden door:- Een
BLOB
-object dat een PDF-document bevat dat meerdere digitale handtekeningen bevat. - Een
PKIOptions
-object dat PKI-runtime-opties bevat. - Een
VerifySPIOptions
-instantie die SPI-informatie bevat. U kunt null opgeven voor deze parameter.
De methode
verifyPDFDocument
retourneert eenPDFDocumentVerificationInfo
-object dat informatie bevat over alle digitale handtekeningen in het PDF-document. - Een
-
Alle handtekeningen doorlopen
- Doorloop alle handtekeningen door het gegevenslid
verificationInfos
van het objectPDFDocumentVerificationInfo
op te halen. Dit gegevenslid retourneert eenObject
-array waarbij elk element eenPDFSignatureVerificationInfo
-object is. - Met het
PDFSignatureVerificationInfo
-object kunt u taken uitvoeren zoals het bepalen van de status van de handtekening door het gegevenslid van hetPDFSignatureVerificationInfo
objectstatus
op te halen. Dit gegevenslid retourneert eenSignatureStatus
-object waarvan het lid met statische gegevens u op de hoogte stelt van de status van de handtekening. Als de handtekening bijvoorbeeld onbekend is, retourneert deze methodeSignatureStatus.DocumentSignatureUnknown
.
- Doorloop alle handtekeningen door het gegevenslid
zie ook
Digitale handtekeningen verwijderen removing-digital-signatures
Digitale handtekeningen moeten uit een handtekeningveld worden verwijderd voordat een nieuwere digitale handtekening kan worden toegepast. Een digitale handtekening kan niet worden overschreven. Als u probeert een digitale handtekening toe te passen op een handtekeningveld dat een handtekening bevat, treedt een uitzondering op.
Overzicht van de stappen summary_of_steps-8
Als u een digitale handtekening uit een handtekeningveld wilt verwijderen, voert u de volgende taken uit:
- Inclusief projectbestanden.
- Maak een handtekeningclient.
- Hiermee wordt het PDF-document opgehaald dat een handtekening bevat die u wilt verwijderen.
- Verwijder de digitale handtekening uit het handtekeningveld.
- Sla het PDF-document op als een PDF-bestand.
omvat projectdossiers
Neem de benodigde bestanden op in uw ontwikkelingsproject. Als u een clienttoepassing maakt met Java, neemt u de benodigde JAR-bestanden op. Als u webservices gebruikt, moet u ervoor zorgen dat u de proxybestanden opneemt.
De volgende JAR-bestanden moeten worden toegevoegd aan het klassepad van uw project:
- adobe-livecycle-client.jar
- adobe-usermanager-client.jar
- adobe-signatures-client.jar
- adobe-utilities.jar (vereist als AEM Forms wordt geïmplementeerd op JBoss)
- jbossall-client.jar (vereist als AEM Forms wordt geïmplementeerd op JBoss)
Voor informatie over de plaats van deze JAR dossiers, zie Inclusief de bibliotheekdossiers van AEM Forms Java.
creeer een cliënt van de Handtekening
Voordat u programmatically een verrichting van de dienst van de Handtekening kunt uitvoeren, moet u een cliënt van de dienst van de Handtekening tot stand brengen.
krijgt het document van de PDF dat een handtekening bevat om te verwijderen
Als u een handtekening uit een PDF-document wilt verwijderen, moet u een PDF-document met een handtekening verkrijgen.
verwijder de digitale handtekening uit het handtekeningsgebied
Als u een digitale handtekening uit een PDF-document wilt verwijderen, moet u de naam opgeven van het handtekeningveld dat de digitale handtekening bevat. Bovendien moet u toestemming hebben om de digitale handtekening te verwijderen. Anders treedt een uitzondering op.
sparen het document van de PDF als dossier van PDF
Nadat de handtekeningservice een digitale handtekening uit een handtekeningveld heeft verwijderd, kunt u het PDF-document opslaan als een PDF-bestand, zodat gebruikers het kunnen openen in Acrobat of Adobe Reader.
zie ook
Digitale handtekeningen verwijderen met de Java API
Digitale handtekeningen verwijderen met de webservice-API
Inclusief AEM Forms Java-bibliotheekbestanden
Digitale handtekeningen verwijderen met de Java API remove-digital-signatures-using-the-java-api
Een digitale handtekening verwijderen met de handtekening-API (Java):
-
Projectbestanden opnemen
Neem client-JAR-bestanden, zoals adobe-signatures-client.jar, op in het klassepad van uw Java-project.
-
Maak een handtekeningclient.
- Maak een
ServiceClientFactory
-object dat verbindingseigenschappen bevat. - Maak een
SignatureServiceClient
-object door de constructor ervan te gebruiken en hetServiceClientFactory
-object door te geven.
- Maak een
-
Het PDF-document ophalen dat een handtekening bevat die moet worden verwijderd
- Maak een
java.io.FileInputStream
-object dat staat voor het PDF-document dat de handtekening bevat die moet worden verwijderd met behulp van de constructor ervan en geef een tekenreekswaarde door die de locatie van het PDF-document aangeeft. - Maak een
com.adobe.idp.Document
-object door de constructor ervan te gebruiken en hetjava.io.FileInputStream
-object door te geven.
- Maak een
-
De digitale handtekening verwijderen uit het handtekeningveld
Verwijder een digitale handtekening uit een handtekeningveld door de methode
clearSignatureField
van het objectSignatureServiceClient
aan te roepen en de volgende waarden door te geven:- Een
com.adobe.idp.Document
-object dat staat voor het PDF-document dat de te verwijderen handtekening bevat. - Een tekenreekswaarde die de naam aangeeft van het handtekeningveld dat de digitale handtekening bevat.
De methode
clearSignatureField
retourneert eencom.adobe.idp.Document
-object dat het PDF-document vertegenwoordigt waaruit de digitale handtekening is verwijderd. - Een
-
Het PDF-document opslaan als een PDF-bestand
- Maak een
java.io.File
-object en controleer of de bestandsextensie .pdf is. - Roep de methode
copyToFile
van het objectcom.adobe.idp.Document
aan. Geef het objectjava.io.File
door om de inhoud van het objectcom.adobe.idp.Document
naar het bestand te kopiëren. Gebruik het objectDocument
dat door de methodeclearSignatureField
is geretourneerd.
- Maak een
zie ook
Digitale handtekeningen verwijderen
Snel starten (SOAP modus): een digitale handtekening verwijderen met de Java API
Digitale handtekeningen verwijderen met de webservice-API remove-digital-signatures-using-the-web-service-api
Een digitale handtekening verwijderen met de handtekening-API (webservice):
-
Projectbestanden opnemen
Creeer een Microsoft .NET project dat MTOM gebruikt. Gebruik de volgende WSDL-definitie:
http://localhost:8080/soap/services/SignatureService?WSDL&lc_version=9.0.1
.note note NOTE Vervang localhost
door het IP-adres van de server die als host fungeert voor AEM Forms. -
Een handtekeningclient maken
-
Maak een
SignatureServiceClient
-object met de standaardconstructor. -
Maak een
SignatureServiceClient.Endpoint.Address
-object met deSystem.ServiceModel.EndpointAddress
-constructor. Geef een tekenreekswaarde die de WSDL opgeeft door aan de AEM Forms-service (bijvoorbeeldhttp://localhost:8080/soap/services/SignatureService?WSDL
). U hoeft het attribuutlc_version
niet te gebruiken. Dit kenmerk wordt gebruikt wanneer u een serviceverwijzing maakt.) -
Maak een
System.ServiceModel.BasicHttpBinding
-object door de waarde van hetSignatureServiceClient.Endpoint.Binding
-veld op te halen. De geretourneerde waarde wordt gecast naarBasicHttpBinding
. -
Stel het veld
MessageEncoding
van hetSystem.ServiceModel.BasicHttpBinding
-object in opWSMessageEncoding.Mtom
. Deze waarde zorgt ervoor dat MTOM wordt gebruikt. -
Laat basisauthentificatie van HTTP door de volgende taken uit te voeren toe:
- Wijs de gebruikersnaam van het AEM aan het veld
SignatureServiceClient.ClientCredentials.UserName.UserName
toe. - Wijs de bijbehorende wachtwoordwaarde toe aan het veld
SignatureServiceClient.ClientCredentials.UserName.Password
. - Wijs de constante waarde
HttpClientCredentialType.Basic
toe aan het veldBasicHttpBindingSecurity.Transport.ClientCredentialType
. - Wijs de constante waarde
BasicHttpSecurityMode.TransportCredentialOnly
toe aan het veldBasicHttpBindingSecurity.Security.Mode
.
- Wijs de gebruikersnaam van het AEM aan het veld
-
-
Het PDF-document ophalen dat een handtekening bevat die moet worden verwijderd
- Maak een
BLOB
-object met behulp van de constructor. Met hetBLOB
-object wordt een PDF-document opgeslagen dat een digitale handtekening bevat die moet worden verwijderd. - Maak een
System.IO.FileStream
-object door de constructor ervan aan te roepen en een tekenreekswaarde door te geven die de bestandslocatie van het ondertekende PDF-document en de modus waarin het bestand moet worden geopend, vertegenwoordigt. - Maak een bytearray waarin de inhoud van het object
System.IO.FileStream
wordt opgeslagen. U kunt de grootte van de bytearray bepalen door de eigenschapLength
van het objectSystem.IO.FileStream
op te halen. - Vul de bytearray met streamgegevens door de methode
Read
van het objectSystem.IO.FileStream
aan te roepen. Geef de bytearray, de startpositie en de streamlengte door om te lezen. - Vul het object
BLOB
door de eigenschapMTOM
ervan toe te wijzen met de inhoud van de bytearray.
- Maak een
-
De digitale handtekening verwijderen uit het handtekeningveld
Verwijder de digitale handtekening door de methode
clearSignatureField
van het objectSignatureServiceClient
aan te roepen en de volgende waarden door te geven:- Een
BLOB
-object dat het ondertekende PDF-document bevat. - Een tekenreekswaarde die de naam vertegenwoordigt van het handtekeningveld dat de digitale handtekening bevat die moet worden verwijderd.
De methode
clearSignatureField
retourneert eenBLOB
-object dat het PDF-document vertegenwoordigt waaruit de digitale handtekening is verwijderd. - Een
-
Het PDF-document opslaan als een PDF-bestand
- Maak een
System.IO.FileStream
-object door de constructor ervan aan te roepen en een tekenreekswaarde door te geven die de bestandslocatie vertegenwoordigt van het PDF-document dat een leeg handtekeningveld bevat en de modus waarin het bestand moet worden geopend. - Maak een bytearray waarin de inhoud wordt opgeslagen van het
BLOB
-object dat door de methodesign
is geretourneerd. Vul de bytearray met de waarde van het gegevenslidMTOM
van het objectBLOB
. - Maak een
System.IO.BinaryWriter
-object door de constructor ervan aan te roepen en hetSystem.IO.FileStream
-object door te geven. - Schrijf de inhoud van de bytearray naar het PDF-bestand door de methode
Write
van het objectSystem.IO.BinaryWriter
aan te roepen en de bytearray door te geven.
- Maak een
zie ook
Digitale handtekeningen verwijderen
AEM Forms aanroepen met SwaRef