... |
... |
@@ -18,15
+18,40 @@ |
18 |
18 |
|
19 |
19 |
== Plugin-Konfiguration == |
20 |
20 |
|
21 |
|
-Am Plugin selber kann konfiguriert werden, ob das Deploy-Servlet durch ein Passwort geschützt werden soll. Dazu gibt es die eine Plugin-Eigenschaft //token//, diese hat das folgende Format |
|
21 |
+Am Plugin selber kann konfiguriert werden, ob das Deploy-Servlet durch ein Passwort geschützt werden soll. Dieses Passwort muss dann im Klartext beim HTTP-POST-Request mit angegeben werden. |
22 |
22 |
|
23 |
|
-> hash_method:hashed_value |
|
23 |
+Zur Konfiguration des Passworts gibt es die eine Plugin-Eigenschaft //token//, diese hat das folgende Format |
24 |
24 |
|
|
25 |
+{{code language="none"}} |
|
26 |
+hash_method:hashed_value |
|
27 |
+{{/code}} |
|
28 |
+ |
25 |
25 |
Folgende Hash-Methoden stehen zur Verfügung: |
26 |
26 |
|
27 |
27 |
; plain |
28 |
|
-: asd |
|
32 |
+: Identitätsfunktion, das Passwort im Klartext angegeben. |
|
33 |
+; sha256 |
|
34 |
+: SHA-256-Algorithmus. |
|
35 |
+; sha384 |
|
36 |
+: SHA-384-Algorithmus. |
|
37 |
+; sha512 |
|
38 |
+: SHA-512-Algorithmus. |
29 |
29 |
|
|
40 |
+Um das Passwort im Klartext beispielsweise auf //admin// festzulegen, wird der folgende Wert für die Plugin-Eigenschaft //token// eingegeben: |
|
41 |
+ |
|
42 |
+{{code language="none"}} |
|
43 |
+plain:admin |
|
44 |
+{{/code}} |
|
45 |
+ |
|
46 |
+Um das Passwort mit SHA-256 beispielsweise auf //admin// festzulegen, wird der folgende Wert für die Plugin-Eigenschaft //token// eingegeben: |
|
47 |
+ |
|
48 |
+{{code language="none"}} |
|
49 |
+sha256:S+32GI3fWXwHHulUMtWmjpQ15EqMvgVYguuO9SKxfNw+ckAGQljP6tKlf1EITnU7 |
|
50 |
+{{/code}} |
|
51 |
+ |
|
52 |
+Der Hash ist gesalzen. Ein gültiger Hash für ein bestimmtes Passwort kann mit dem //create-token//-Servlet erzeugt werden, siehe unten. |
|
53 |
+ |
|
54 |
+ |
30 |
30 |
== Deploy-Servlet == |
31 |
31 |
|
32 |
32 |
Im Folgenden wird der Aufbau des HTTP-Requests beschrieben, um ein Plugin zu installieren, zu aktualisieren oder zu löschen. |
... |
... |
@@ -33,7
+33,9 @@ |
33 |
33 |
|
34 |
34 |
Es muss immer ein HTTP-Post-Request verwendet werden und [[sich an folgende URL richten>>doc:Formcycle.PluginDevelopment.Types.IPluginServletAction]] (Namen des FORMCYCLE-Servers entsprechend anpassen): |
35 |
35 |
|
36 |
|
-> POST http://localhost:8080/formcycle/plugin?name=deploy-plugin&client-id=154 HTTP/1.1 |
|
61 |
+{{code language="none"}} |
|
62 |
+POST http://localhost:8080/formcycle/plugin?name=deploy-plugin&client-id=154 HTTP/1.1 |
|
63 |
+{{/code}} |
37 |
37 |
|
38 |
38 |
Die //client-id// muss nicht angegeben werden, wenn das Plugin als System-Plugin installiert ist. |
39 |
39 |
|
... |
... |
@@ -161,7
+161,7 @@ |
161 |
161 |
{{/code}} |
162 |
162 |
))) |
163 |
163 |
|
164 |
|
-== Response == |
|
191 |
+=== Response === |
165 |
165 |
|
166 |
166 |
Das Deploy-Plugin liefert einen Statuscode und ein JSON-Objekt mit den Details zurück. Der Status-Code ist 2xx, falls das Deploy-Plugin erfolgreich ausgeführt wurde. |
167 |
167 |
|
... |
... |
@@ -314,5
+314,92 @@ |
314 |
314 |
{{/code}} |
315 |
315 |
|
316 |
316 |
|
317 |
|
-== Beispiel für Maven == |
|
344 |
+== Create-Token-Servlet == |
318 |
318 |
|
|
346 |
+Mit diesem Servlet kann ein Hash für ein bestimmtes Klartextpasswort erzeugt werden, welcher dann in der Plugin-Eigenschaft //token// hinterlegt werden kann. Es muss hierbei ein HTTP-GET-Request verwendet werden (Pfad auf den FORMCYCLE-Servet und die Mandant-ID entsprechend ersetzen): |
|
347 |
+ |
|
348 |
+{{code language="none"}} |
|
349 |
+http://localhost:8080/formcycle/plugin?client-id=1&name=create-token&token=<PASSWORT>&method=<METHOD> |
|
350 |
+{{/code}} |
|
351 |
+ |
|
352 |
+; token |
|
353 |
+: Der Klartext des Passwort, zu dem ein Hash ermittelt werden soll. |
|
354 |
+; method |
|
355 |
+: Methode zum Berechnen des Hashes. Erlaubte Werte sind //plain//, //sha256//, //sha384// und //sha512//. Optional, Standardwert ist //sha256//. |
|
356 |
+ |
|
357 |
+Als Antwort wird ein JSON zurückgeliefert, welches das gleiche Format wie die Antwort des Deploy-Plugins hat. Beispiel für eine Antwort: |
|
358 |
+ |
|
359 |
+{{code language="json"}} |
|
360 |
+{ |
|
361 |
+ "success": true, |
|
362 |
+ "requestParameters": { |
|
363 |
+ "name": ["create-token"], |
|
364 |
+ "client-id": ["1"], |
|
365 |
+ "token": ["admin"] |
|
366 |
+ }, |
|
367 |
+ "details": { |
|
368 |
+ "method": "sha256", |
|
369 |
+ "token": "sha256:S+32GI3fWXwHHulUMtWmjpQ15EqMvgVYguuO9SKxfNw+ckAGQljP6tKlf1EITnU7" |
|
370 |
+ }, |
|
371 |
+ "message": "Hash token created successfully", |
|
372 |
+ "statusCode": 200 |
|
373 |
+} |
|
374 |
+{{/code}} |
|
375 |
+ |
|
376 |
+== Maven-Deploy-Plugin == |
|
377 |
+ |
|
378 |
+Um ein Plugin nach dem Bauen über Maven in FORMCYCLE hochzuladen, gibt es auch ein Maven-Plugin, welches das Deploy-Servlet anspricht. Dieses ist über die Artifactory von XIMA erhältlich, falls man die entsprechenden Rechte hierfür hat: |
|
379 |
+ |
|
380 |
+{{code language="xml"}} |
|
381 |
+<plugin> |
|
382 |
+ <groupId>de.xima.fc.maven.plugin</groupId> |
|
383 |
+ <artifactId>fc-deploy-plugin-maven-plugin</artifactId> |
|
384 |
+ <version>1.1.0</version> |
|
385 |
+ <configuration> |
|
386 |
+ <url>http://localhost:8080/formcycle</url> |
|
387 |
+ <pluginName>deploy-plugin</pluginName> |
|
388 |
+ <clientId>52</clientId> |
|
389 |
+ <token>admin</token> |
|
390 |
+ <deployAction>save</deployAction> |
|
391 |
+ <pluginIdent>name</manifest> |
|
392 |
+ <pluginIdentifier>my-plugin.jar</pluginIdentifier> |
|
393 |
+ <jarFile></jarFile> |
|
394 |
+ <disallowInstall>false</disallowInstall> |
|
395 |
+ <locale>en</locale> |
|
396 |
+ <clearProperties>true</clearProperties> |
|
397 |
+ <properties> |
|
398 |
+ <property1>value1</property1> |
|
399 |
+ <property2>value2</property2> |
|
400 |
+ <properties> |
|
401 |
+ </configuration> |
|
402 |
+</plugin |
|
403 |
+{{/code}} |
|
404 |
+ |
|
405 |
+Das Plugin hat die folgenden Optionen zur Konfiguration: |
|
406 |
+ |
|
407 |
+; url [Standardwert: //${fcDeployUrl}//] |
|
408 |
+: URL mit Kontextpfad zum FORMCYCLE-Server, etwa //http://localhost:8080/formcycle// |
|
409 |
+; pluginName [Standardwert: //deploy-plugin//] |
|
410 |
+: Der Name des Deploy-Plugins für den URL-Parameter //name//. In der Regel muss diese Option nicht gesetzt werden, der Standardwert ist ausreichend. |
|
411 |
+; clientId [Standardwert: //${fcDeployClientId}//] |
|
412 |
+: ID des Mandanten, für den das Plugin installiert, aktualisiert oder gelöscht werden soll. Entspricht dem Parameter //client-id// des Deploy-Plugins, siehe oben. |
|
413 |
+; clientUuid |
|
414 |
+: UUID des Mandanten, für den das Plugin installiert, aktualisiert oder gelöscht werden soll. Entspricht dem Parameter //client-uuid// des Deploy-Plugins, siehe oben. |
|
415 |
+; token [Standardwert: ${fcDeployToken}] |
|
416 |
+: Passwort für das Servlet-Plugin, falls in der Konfiguration des Deploy-Plugins ein Passwort gesetzt wurde. |
|
417 |
+; deployAction [Standardwert: //save//] |
|
418 |
+: Aktion, welche mit dem Plugin durchgeführt werden soll. Erlaubte Werte sind //save//, //update-properties//, //activate//, //deactivate// und //delete//. Entspricht dem Parameter //deploy-action// des Deploy-Plugins, siehe oben. |
|
419 |
+; pluginIdent [Standardwert: //manifest//] |
|
420 |
+: Die Art, wie nach einem vorhandenen Plugin gesucht wird. Entspricht dem Parameter //plugin-ident// des Deploy-Plugins, siehe oben. |
|
421 |
+; pluginIdentifier [Standardwert: //Implementation-Title=${project.groupId}:${project.artifactId}//] |
|
422 |
+: Identifikator des Plugins, welches aktualisiert oder gelöscht werden soll. Entspricht dem Parameter //plugin-identifier// des Deploy-Plugins, siehe oben. |
|
423 |
+; jarFile [Standartwert: Haupt-Build-Artifakt des Maven-Projekts] |
|
424 |
+: Pfad zur JAR-Datei, die hochgeladen werden soll, relativ zum Basisverzeichnis des Maven-Projekts. |
|
425 |
+; disallowInstall [Standardwert: //false//] |
|
426 |
+: Wenn //true// und das Plugin noch nicht existiert, wird abgebrochen und ein Fehler zurückgegeben. Entspricht dem Parameter //disallow-install// des Deploy-Plugins, siehe oben. |
|
427 |
+; locale [Standardwert: //en//] |
|
428 |
+: Sprache, die für die Installation, Aktualisierung oder Löschung des Plugins genutzt wird. Entspricht dem Parameter //locale// des Deploy-Plugins, siehe oben. |
|
429 |
+; clearProperties [Standardwert: //false//] |
|
430 |
+: Löscht die Werte aller Plugin-Eigenschaften. Entspricht dem Parameter //clear-properties// des Deploy-Plugins, siehe oben. |
|
431 |
+; properties |
|
432 |
+: Key-Value-Paare mit Eigenschaften, die an dem Plugin gesetzt werden sollen. Entspricht dem Parameter //clear-properties// des Deploy-Plugins, siehe oben. |