feat: added initial password creation to portal

- randomize passwords according to password policies
  2 Uppercase Characters
  2 Lowercase Characters
  2 Special Characters
  1 Digits
feature/DEV-470_2nd
Sven Ketelsen 4 years ago
parent 05ccebc851
commit 1ad63bf864

@ -50,7 +50,40 @@
"label" : "Columns",
"columns" : [ {
"components" : [ {
"label" : "connect_client_admin_password",
"label" : "connect_admin_username",
"allowMultipleMasks" : false,
"showWordCount" : false,
"showCharCount" : false,
"clearOnHide" : false,
"disabled" : true,
"tableView" : true,
"alwaysEnabled" : false,
"type" : "textfield",
"input" : true,
"key" : "connect_admin_username",
"defaultValue" : "",
"validate" : {
"customMessage" : "",
"json" : ""
},
"conditional" : {
"show" : "",
"when" : "",
"json" : ""
},
"tabs" : null,
"inputFormat" : "plain",
"encrypted" : false,
"properties" : { },
"tags" : [ ],
"customConditional" : "",
"logic" : [ ],
"widget" : {
"type" : ""
},
"reorder" : false
}, {
"label" : "connect_admin_password",
"hideLabel" : true,
"labelPosition" : "left-left",
"showWordCount" : false,
@ -61,7 +94,7 @@
"alwaysEnabled" : false,
"type" : "textfield",
"input" : true,
"key" : "connect_client_admin_password",
"key" : "connect_admin_password",
"defaultValue" : "",
"validate" : {
"customMessage" : "",
@ -208,6 +241,39 @@
"tableView" : true,
"label" : "Column",
"components" : [ {
"label" : "wordpress_admin_username",
"allowMultipleMasks" : false,
"showWordCount" : false,
"showCharCount" : false,
"clearOnHide" : false,
"disabled" : true,
"tableView" : true,
"alwaysEnabled" : false,
"type" : "textfield",
"input" : true,
"key" : "wordpress_admin_username",
"defaultValue" : "",
"validate" : {
"customMessage" : "",
"json" : ""
},
"conditional" : {
"show" : "",
"when" : "",
"json" : ""
},
"tabs" : null,
"inputFormat" : "plain",
"encrypted" : false,
"properties" : { },
"tags" : [ ],
"customConditional" : "show = data['connect-features'].includes(\"connect_wordpress\") ",
"logic" : [ ],
"widget" : {
"type" : ""
},
"reorder" : false
}, {
"label" : "wordpress_admin_password",
"hideLabel" : true,
"labelPosition" : "left-left",
@ -299,6 +365,39 @@
"tableView" : true,
"label" : "Column",
"components" : [ {
"label" : "keycloak_admin_username",
"allowMultipleMasks" : false,
"showWordCount" : false,
"showCharCount" : false,
"clearOnHide" : false,
"disabled" : true,
"tableView" : true,
"alwaysEnabled" : false,
"type" : "textfield",
"input" : true,
"key" : "keycloak_admin_username",
"defaultValue" : "",
"validate" : {
"customMessage" : "",
"json" : ""
},
"conditional" : {
"show" : "",
"when" : "",
"json" : ""
},
"tabs" : null,
"inputFormat" : "plain",
"encrypted" : false,
"properties" : { },
"tags" : [ ],
"customConditional" : "",
"logic" : [ ],
"widget" : {
"type" : ""
},
"reorder" : false
}, {
"label" : "keycloak_admin_password",
"hideLabel" : true,
"labelPosition" : "left-left",

@ -0,0 +1,58 @@
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<title>Neue Smardigo-Instanz erfolgreich aufgesetzt</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="shortcut icon" th:href="@{|${baseUrl}/favicon.ico|}" />
</head>
<body>
<p>
Sehr geehrte Damen und Herren,
</p>
<p></p>
<p>
ihre Smardigo-Instanz ist nun einsatzbereit.
</p>
<p>
Zum Abschließen der Installation müssen Sie sich mit den folgend angegebenen initialen Zugangsdaten
anmelden. Sie werden danach aufgefordert, ihre eigenen Passwörter zu setzen. Beachten Sie, dass die
zugehörigen Benutzer über alle Ihre Smardigo-Instanzen hin geteilt werden. Die initialen Passwörter
können nur für die aller erste Anmeldung verwendet werden. Von Ihnen gesetzte Passwörter werden nicht
überschrieben.
</p>
<p></p>
<table>
<tr>
<th>Service</th>
<th>Benutzer</th>
<th>Passwort</th>
<th>Link</th>
</tr>
<tr>
<td>Connect</td>
<td>${ connect_admin_username }</td>
<td>${ connect_admin_password }</td>
<td>https://${ cluster.stage }-${ tenant.key }-${ cluster.name }-01-connect.smardigo.digital</td>
</tr>
<tr>
<td>Keycloak</td>
<td>${ keycloak_admin_username }</td>
<td>${ keycloak_admin_password }</td>
<td>https://${ cluster.stage }-keycloak-01.smardigo.digital/auth/admin/${ tenant.key }/console</td>
</tr>
<tr>
<td>Wordpress</td>
<td>${ wordpress_admin_username }</td>
<td>${ wordpress_admin_password }</td>
<td>https://${ cluster.stage }-${ tenant.key }-${ cluster.name }-01-wordpress.smardigo.digital</td>
</tr>
</table>
<p></p>
<p>
Hier geht es zum Antrag: <a target="_blank" th:href="|${baseUrl}/api/redirect/process/${contextScopeId}/dossier/${contextProcessDefinitionKey}/${contextProcessInstanceId}|">Link</a>
</p>
<p>
Hinweis: Diese Mail wurde durch Smardigo automatisch erzeugt.
</p>
</body>
</html>

@ -23,7 +23,11 @@
"type" : "object",
"classification" : "PRIVATE"
},
"connect_client_admin_password" : {
"connect_admin_password" : {
"type" : "string",
"classification" : "PRIVATE"
},
"connect_admin_username" : {
"type" : "string",
"classification" : "PRIVATE"
},
@ -63,6 +67,10 @@
"type" : "string",
"classification" : "PRIVATE"
},
"keycloak_admin_username" : {
"type" : "string",
"classification" : "PRIVATE"
},
"name" : {
"type" : "string",
"classification" : "PRIVATE"
@ -122,6 +130,10 @@
"wordpress_admin_password" : {
"type" : "string",
"classification" : "PRIVATE"
},
"wordpress_admin_username" : {
"type" : "string",
"classification" : "PRIVATE"
}
}
}

@ -76,13 +76,16 @@
<camunda:outputParameter name="jobs">
<camunda:list />
</camunda:outputParameter>
<camunda:outputParameter name="connect_client_admin_password">
<camunda:outputParameter name="connect_admin_password">
<camunda:script scriptFormat="groovy" resource="create-password.groovy" />
</camunda:outputParameter>
<camunda:outputParameter name="wordpress_admin_password">wordpress-admin</camunda:outputParameter>
<camunda:outputParameter name="keycloak_admin_password">
<camunda:script scriptFormat="groovy" resource="create-password.groovy" />
</camunda:outputParameter>
<camunda:outputParameter name="keycloak_admin_username">connect-realm-admin</camunda:outputParameter>
<camunda:outputParameter name="wordpress_admin_username">wordpress-admin</camunda:outputParameter>
<camunda:outputParameter name="connect_admin_username">connect-admin</camunda:outputParameter>
</camunda:inputOutput>
</bpmn2:extensionElements>
<bpmn2:incoming>Flow_1rtcnw8</bpmn2:incoming>
@ -254,27 +257,8 @@
<bpmn2:incoming>Flow_1r4otto</bpmn2:incoming>
<bpmn2:outgoing>Flow_1u7vy0j</bpmn2:outgoing>
</bpmn2:callActivity>
<bpmn2:parallelGateway id="Gateway_134tk0f">
<bpmn2:incoming>Flow_1u7vy0j</bpmn2:incoming>
<bpmn2:outgoing>Flow_1gzjfsr</bpmn2:outgoing>
<bpmn2:outgoing>Flow_0d1wzgo</bpmn2:outgoing>
</bpmn2:parallelGateway>
<bpmn2:intermediateThrowEvent id="Event_1lly48x" name="Monitoring aktualisieren">
<bpmn2:incoming>Flow_0d1wzgo</bpmn2:incoming>
<bpmn2:linkEventDefinition id="LinkEventDefinition_1axfvmr" name="Monitoring aktualisieren" />
</bpmn2:intermediateThrowEvent>
<bpmn2:intermediateThrowEvent id="Event_0fvzd86" name="Status &#34;Service gestartet&#34; setzen (50)">
<bpmn2:extensionElements>
<camunda:inputOutput>
<camunda:outputParameter name="vorgang_status">${50}</camunda:outputParameter>
<camunda:outputParameter name="vorgang_status_text">Service gestartet</camunda:outputParameter>
</camunda:inputOutput>
</bpmn2:extensionElements>
<bpmn2:incoming>Flow_1gzjfsr</bpmn2:incoming>
<bpmn2:outgoing>Flow_15fkmn4</bpmn2:outgoing>
</bpmn2:intermediateThrowEvent>
<bpmn2:parallelGateway id="Gateway_0qz8np7">
<bpmn2:incoming>Flow_15fkmn4</bpmn2:incoming>
<bpmn2:incoming>Flow_1381iar</bpmn2:incoming>
<bpmn2:outgoing>Flow_0yh3rtc</bpmn2:outgoing>
<bpmn2:outgoing>Flow_1c2a31w</bpmn2:outgoing>
</bpmn2:parallelGateway>
@ -926,7 +910,7 @@ Variables.userId(authenticatedUserId)</camunda:script>
<bpmn2:sequenceFlow id="Flow_0tjjeit" sourceRef="Gateway_0qf2gxx" targetRef="Event_0srogfc" />
<bpmn2:sequenceFlow id="Flow_1sjwm1e" sourceRef="Gateway_0qf2gxx" targetRef="Event_0gigz1k" />
<bpmn2:sequenceFlow id="Flow_0d1wzgo" sourceRef="Gateway_134tk0f" targetRef="Event_1lly48x" />
<bpmn2:sequenceFlow id="Flow_1gzjfsr" sourceRef="Gateway_134tk0f" targetRef="Event_0fvzd86" />
<bpmn2:sequenceFlow id="Flow_1gzjfsr" sourceRef="Gateway_134tk0f" targetRef="Activity_1lyywu3" />
<bpmn2:sequenceFlow id="Flow_03lhlpu" sourceRef="Event_0uejlqq" targetRef="Event_12kkngf" />
<bpmn2:sequenceFlow id="Flow_14qlmwl" sourceRef="Event_0r2r3bz" targetRef="Event_12kkngf" />
<bpmn2:sequenceFlow id="Flow_0qc2wxt" sourceRef="Gateway_17ev5pq" targetRef="Activity_1ndl5xy" />
@ -939,7 +923,6 @@ Variables.userId(authenticatedUserId)</camunda:script>
</camunda:properties>
</bpmn2:extensionElements>
</bpmn2:sequenceFlow>
<bpmn2:sequenceFlow id="Flow_15fkmn4" sourceRef="Event_0fvzd86" targetRef="Gateway_0qz8np7" />
<bpmn2:sequenceFlow id="Flow_1c2a31w" sourceRef="Gateway_0qz8np7" targetRef="Activity_1t8u7l0" />
<bpmn2:sequenceFlow id="Flow_0yh3rtc" sourceRef="Gateway_0qz8np7" targetRef="Activity_1mctiwx" />
<bpmn2:sequenceFlow id="Flow_0ex5zxa" sourceRef="Event_1up2qiu" targetRef="Gateway_17ev5pq" />
@ -1110,6 +1093,46 @@ Variables.userId(authenticatedUserId)</camunda:script>
<bpmn2:sequenceFlow id="Flow_0s8y3uu" sourceRef="Event_0z4a82l" targetRef="Activity_0v9viel" />
<bpmn2:sequenceFlow id="Flow_1ky7l1e" sourceRef="Event_0pgps6d" targetRef="Activity_0v9viel" />
<bpmn2:sequenceFlow id="Flow_11b4s64" sourceRef="Event_1wpa1a6" targetRef="Activity_0v9viel" />
<bpmn2:sequenceFlow id="Flow_10y7ypm" sourceRef="Activity_1lyywu3" targetRef="Event_1r67mi9" />
<bpmn2:parallelGateway id="Gateway_134tk0f">
<bpmn2:incoming>Flow_1u7vy0j</bpmn2:incoming>
<bpmn2:outgoing>Flow_1gzjfsr</bpmn2:outgoing>
<bpmn2:outgoing>Flow_0d1wzgo</bpmn2:outgoing>
</bpmn2:parallelGateway>
<bpmn2:intermediateThrowEvent id="Event_1lly48x" name="Monitoring aktualisieren">
<bpmn2:incoming>Flow_0d1wzgo</bpmn2:incoming>
<bpmn2:linkEventDefinition id="LinkEventDefinition_1axfvmr" name="Monitoring aktualisieren" />
</bpmn2:intermediateThrowEvent>
<bpmn2:intermediateThrowEvent id="Event_1r67mi9" name="Status &#34;Service gestartet&#34; setzen (50)">
<bpmn2:extensionElements>
<camunda:inputOutput>
<camunda:outputParameter name="vorgang_status">${50}</camunda:outputParameter>
<camunda:outputParameter name="vorgang_status_text">Service gestartet</camunda:outputParameter>
</camunda:inputOutput>
</bpmn2:extensionElements>
<bpmn2:incoming>Flow_10y7ypm</bpmn2:incoming>
<bpmn2:outgoing>Flow_1381iar</bpmn2:outgoing>
</bpmn2:intermediateThrowEvent>
<bpmn2:sequenceFlow id="Flow_1381iar" sourceRef="Event_1r67mi9" targetRef="Gateway_0qz8np7" />
<bpmn2:serviceTask id="Activity_1lyywu3" name="Erstelle Benachrichtigung für Ersteller" camunda:modelerTemplate="de.tolina.connect.service.external.task.mail.ExternalMailTask" camunda:type="external" camunda:topic="send-mail">
<bpmn2:extensionElements>
<camunda:properties>
<camunda:property name="maxRetries" value="10" />
</camunda:properties>
<camunda:inputOutput>
<camunda:inputParameter name="toGroups" />
<camunda:inputParameter name="attachmentIds">
<camunda:script scriptFormat="groovy">processes.byId(contextScopeId, contextProcessId).getAttachmentsByTag('email').collect { it.id }</camunda:script>
</camunda:inputParameter>
<camunda:inputParameter name="to" />
<camunda:inputParameter name="toUsers">${creation_user_id}</camunda:inputParameter>
<camunda:inputParameter name="subject">Neue Smardigo Instanz</camunda:inputParameter>
<camunda:inputParameter name="messageBody">template(smardigo-up-and-running.html)</camunda:inputParameter>
</camunda:inputOutput>
</bpmn2:extensionElements>
<bpmn2:incoming>Flow_1gzjfsr</bpmn2:incoming>
<bpmn2:outgoing>Flow_10y7ypm</bpmn2:outgoing>
</bpmn2:serviceTask>
</bpmn2:process>
<bpmn2:message id="Message_1drsp54" name="server-created" />
<bpmn2:signal id="Signal_0kz05aq" name="antrag-abgeschlossen-${execution.getProcessInstanceId()}" />
@ -1373,7 +1396,7 @@ processes.byId(contextScopeId, contextProcessId).createComment('current_job_id :
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1u7vy0j_di" bpmnElement="Flow_1u7vy0j">
<di:waypoint x="3180" y="2900" />
<di:waypoint x="3275" y="2900" />
<di:waypoint x="3225" y="2900" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0pvr263_di" bpmnElement="Flow_0pvr263">
<di:waypoint x="2380" y="2900" />
@ -1419,10 +1442,6 @@ processes.byId(contextScopeId, contextProcessId).createComment('current_job_id :
<di:waypoint x="3590" y="2925" />
<di:waypoint x="3590" y="3340" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_15fkmn4_di" bpmnElement="Flow_15fkmn4">
<di:waypoint x="3458" y="2900" />
<di:waypoint x="3565" y="2900" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_090j3ro_di" bpmnElement="Flow_090j3ro">
<di:waypoint x="3820" y="2900" />
<di:waypoint x="3922" y="2900" />
@ -1456,12 +1475,12 @@ processes.byId(contextScopeId, contextProcessId).createComment('current_job_id :
<di:waypoint x="778" y="2090" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1gzjfsr_di" bpmnElement="Flow_1gzjfsr">
<di:waypoint x="3325" y="2900" />
<di:waypoint x="3422" y="2900" />
<di:waypoint x="3275" y="2900" />
<di:waypoint x="3330" y="2900" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0d1wzgo_di" bpmnElement="Flow_0d1wzgo">
<di:waypoint x="3300" y="2875" />
<di:waypoint x="3300" y="2838" />
<di:waypoint x="3250" y="2875" />
<di:waypoint x="3250" y="2838" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1sjwm1e_di" bpmnElement="Flow_1sjwm1e">
<di:waypoint x="5290" y="2875" />
@ -1495,6 +1514,14 @@ processes.byId(contextScopeId, contextProcessId).createComment('current_job_id :
<di:waypoint x="460" y="1170" />
<di:waypoint x="512" y="1170" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_10y7ypm_di" bpmnElement="Flow_10y7ypm">
<di:waypoint x="3430" y="2900" />
<di:waypoint x="3482" y="2900" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1381iar_di" bpmnElement="Flow_1381iar">
<di:waypoint x="3518" y="2900" />
<di:waypoint x="3565" y="2900" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="Activity_0bhz4p5_di" bpmnElement="Activity_1lo3ui2">
<dc:Bounds x="1540" y="2860" width="100" height="80" />
</bpmndi:BPMNShape>
@ -1558,6 +1585,25 @@ processes.byId(contextScopeId, contextProcessId).createComment('current_job_id :
<bpmndi:BPMNShape id="Event_0ermhxm_di" bpmnElement="Event_0ermhxm">
<dc:Bounds x="1282" y="2522" width="36" height="36" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_1lyxxh0_di" bpmnElement="Gateway_134tk0f">
<dc:Bounds x="3225" y="2875" width="50" height="50" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_1lly48x_di" bpmnElement="Event_1lly48x">
<dc:Bounds x="3232" y="2802" width="36" height="36" />
<bpmndi:BPMNLabel>
<dc:Bounds x="3279" y="2806" width="62" height="27" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="BPMNShape_1b4c8ot" bpmnElement="Event_1r67mi9" bioc:stroke="rgb(67, 160, 71)" bioc:fill="rgb(200, 230, 201)">
<dc:Bounds x="3482" y="2882" width="36" height="36" />
<bpmndi:BPMNLabel>
<dc:Bounds x="3459" y="2936" width="83" height="40" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="BPMNShape_0aw6pf2" bpmnElement="Activity_1lyywu3">
<dc:Bounds x="3330" y="2860" width="100" height="80" />
<bpmndi:BPMNLabel />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_17cc1q7_di" bpmnElement="Activity_17cc1q7" isExpanded="true">
<dc:Bounds x="1120" y="2230" width="350" height="200" />
</bpmndi:BPMNShape>
@ -1614,21 +1660,6 @@ processes.byId(contextScopeId, contextProcessId).createComment('current_job_id :
<bpmndi:BPMNShape id="Activity_05mqkaj_di" bpmnElement="Activity_05mqkaj" bioc:stroke="rgb(67, 160, 71)" bioc:fill="rgb(200, 230, 201)">
<dc:Bounds x="3080" y="2860" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_1lyxxh0_di" bpmnElement="Gateway_134tk0f">
<dc:Bounds x="3275" y="2875" width="50" height="50" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_1lly48x_di" bpmnElement="Event_1lly48x">
<dc:Bounds x="3282" y="2802" width="36" height="36" />
<bpmndi:BPMNLabel>
<dc:Bounds x="3329" y="2806" width="62" height="27" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_0fvzd86_di" bpmnElement="Event_0fvzd86" bioc:stroke="rgb(67, 160, 71)" bioc:fill="rgb(200, 230, 201)">
<dc:Bounds x="3422" y="2882" width="36" height="36" />
<bpmndi:BPMNLabel>
<dc:Bounds x="3399" y="2936" width="83" height="40" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_0qz8np7_di" bpmnElement="Gateway_0qz8np7">
<dc:Bounds x="3565" y="2875" width="50" height="50" />
</bpmndi:BPMNShape>

@ -13,8 +13,12 @@ def env = [
smardigo_management_action: smardigoManagementAction,
stage: cluster.stage,
tenant_id: tenant.key,
connect_client_admin_password: connect_client_admin_password,
connect_realm_admin_password: keycloak_admin_password
connect_client_admin_username: connect_admin_username,
connect_client_admin_password: connect_admin_password,
connect_realm_admin_username: keycloak_admin_username,
connect_realm_admin_password: keycloak_admin_password,
wordpress_admin_username: wordpress_admin_username,
wordpress_admin_password: wordpress_admin_password
]
if (binding.hasVariable('extraVariables')) {
env << extraVariables

@ -13,8 +13,12 @@ def env = [
smardigo_management_action: smardigoManagementAction,
stage: cluster.stage,
tenant_id: tenant.key,
connect_client_admin_password: connect_client_admin_password,
connect_realm_admin_password: keycloak_admin_password
connect_client_admin_username: connect_admin_username,
connect_client_admin_password: connect_admin_password,
connect_realm_admin_username: keycloak_admin_username,
connect_realm_admin_password: keycloak_admin_password,
wordpress_admin_username: wordpress_admin_username,
wordpress_admin_password: wordpress_admin_password
]
if (binding.hasVariable('extraVariables')) {
env << extraVariables

Loading…
Cancel
Save