@cronapp/templates 3.0.0-SP.3 → 3.0.0-SP.30
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/$global/data-layer/ENTITIES.ftl +6 -1
- package/package.json +1 -1
- package/project/M/cronapp-lyceum-project-mobile-cordova/__linksInherit +0 -1
- package/project/M/cronapp-rad-project-mobile-cordova/__linksInherit +2 -1
- package/project/M/cronapp-rad-project-mobile-cordova/src/main/mobileapp/www/__copydata.ftl +4 -4
- package/project/M/cronapp-rad-project-mobile-cordova/template.properties +4 -2
- package/project/M/cronapp-rad-project-mobile-cordova/template_en_US.properties +2 -1
- package/project/M/cronapp-rad-project-mobile-cordova/template_pt_BR.properties +2 -1
- package/project/S/business-service/template.properties +0 -1
- package/project/S/data-service/diagram/app.umlcd +1 -1
- package/project/S/data-service/src/main/java/META-INF/datasources/__copydata.ftl +0 -0
- package/project/S/data-service/src/main/java/app/entity/Sample.java +1 -0
- package/project/S/data-service/template.properties +0 -1
- package/project/W/cronapp-rad-project/__copydata.ftl +0 -1
- package/project/W/cronapp-rad-project/config/app.config.ftl +5 -0
- package/project/W/cronapp-rad-project/diagram/app.umlcd +150 -0
- package/project/W/cronapp-rad-project/diagram/app.umlcd.ftl +150 -0
- package/project/W/cronapp-rad-project/pom.xml.ftl +3 -1
- package/project/W/cronapp-rad-project/src/main/java/META-INF/persistence.xml.ftl +1 -0
- package/project/W/cronapp-rad-project/src/main/java/app/dao/InvalidatedTokenDAO.java +24 -0
- package/project/W/cronapp-rad-project/src/main/java/app/dao/__copydata.ftl +2 -0
- package/project/W/cronapp-rad-project/src/main/java/app/entity/InvalidatedToken.java +113 -0
- package/project/W/cronapp-rad-project/src/main/java/app/entity/__copydata.ftl +2 -0
- package/project/W/cronapp-rad-project/src/main/java/i18n/Messages_en_US.properties +2 -1
- package/project/W/cronapp-rad-project/src/main/java/i18n/Messages_pt_BR.properties +1 -0
- package/project/W/cronapp-rad-project/src/main/webapp-autenticacao/webapp/index.html.ftl +1 -0
- package/project/W/cronapp-rad-project/src/main/webapp-sem-autenticacao/webapp/index.html.ftl +1 -0
- package/templates/low-code/data-layer/ENTITIES.ftl +22 -0
- package/project/W/cronapp-rad-project/Dockerfile +0 -30
|
@@ -10,7 +10,9 @@ import ${import};
|
|
|
10
10
|
<#if (clazz.multitenantClass)>
|
|
11
11
|
import org.eclipse.persistence.annotations.*;
|
|
12
12
|
</#if>
|
|
13
|
-
|
|
13
|
+
<#if clazz.hasNotEmpty()>
|
|
14
|
+
import javax.validation.constraints.NotEmpty;
|
|
15
|
+
</#if>
|
|
14
16
|
/**
|
|
15
17
|
* Classe que representa a tabela <#if tableName??>${tableName}<#else>${clazz.name?upper_case}</#if>
|
|
16
18
|
* @generated
|
|
@@ -96,6 +98,9 @@ public class ${clazz.name} implements Serializable {
|
|
|
96
98
|
@Column(name = "${field.dbFieldName}"<#if !field.primaryKey>, nullable = ${field.nullable?c}, unique = ${field.unique?c}</#if><#if field.length??>, length=${field.length?c}</#if><#if field.precision??>, precision=${field.precision?c}</#if><#if field.scale??>, scale=${field.scale?c}</#if>, insertable=${field.insertable?c}, updatable=${field.updatable?c})
|
|
97
99
|
</#if>
|
|
98
100
|
</#if>
|
|
101
|
+
<#if !field.isNotEmpty()>
|
|
102
|
+
@NotEmpty(message="Não permite vazio.")
|
|
103
|
+
</#if>
|
|
99
104
|
<#if (field.ignore)>
|
|
100
105
|
@JsonIgnore
|
|
101
106
|
</#if>
|
package/package.json
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
../../project/W/cronapp-rad-project/config
|
|
2
2
|
../../project/W/cronapp-rad-project/docs
|
|
3
3
|
../../project/W/cronapp-rad-project/diagram
|
|
4
|
-
../../project/W/cronapp-rad-project/Dockerfile
|
|
5
4
|
../../project/W/cronapp-rad-project/Jenkinsfile
|
|
6
5
|
../../project/W/cronapp-rad-project/pom.xml.ftl
|
|
7
6
|
../../project/W/cronapp-rad-project/.gitignore.ftl
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
../../project/W/cronapp-rad-project/config
|
|
2
|
+
<#if (includeauth?? && includeauth?lower_case == "false") || (!(includeauth!"false")?boolean)>
|
|
2
3
|
../../project/W/cronapp-rad-project/docs
|
|
3
4
|
../../project/W/cronapp-rad-project/diagram
|
|
4
|
-
|
|
5
|
+
</#if>
|
|
5
6
|
../../project/W/cronapp-rad-project/Jenkinsfile
|
|
6
7
|
../../project/W/cronapp-rad-project/pom.xml.ftl
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
<#-- Verificar se existem parametros -->
|
|
2
|
-
<#if (authentication?? && backend?? && frontend??) >
|
|
3
|
-
<#if (authentication?lower_case) != "nenhuma" &&(backend?lower_case) == "true" >
|
|
2
|
+
<#if (authentication?? && backend?? && frontend?? && includeauth??) >
|
|
3
|
+
<#if ((authentication?lower_case) != "nenhuma" &&(backend?lower_case) == "true") || ((includeauth?lower_case) == "true") >
|
|
4
4
|
path.content=/www-autenticacao
|
|
5
5
|
</#if>
|
|
6
|
-
<#if ((authentication?lower_case) == "nenhuma" || (backend?lower_case) == "false")>
|
|
6
|
+
<#if ((authentication?lower_case) == "nenhuma" || (backend?lower_case) == "false") && ((includeauth?lower_case) == "false")>
|
|
7
7
|
path.content=/www-sem-autenticacao
|
|
8
8
|
</#if>
|
|
9
9
|
<#-- Caso contrario copiar tudo -->
|
|
10
10
|
<#else>
|
|
11
11
|
path.content=/www-autenticacao
|
|
12
|
-
</#if>
|
|
12
|
+
</#if>
|
|
@@ -101,7 +101,8 @@ authenticationTypes=Nenhuma|Normal|Token|activeDirectory|ldap|SSO|Saml
|
|
|
101
101
|
parameter.page.1.string.0.appid=${generateAppId}
|
|
102
102
|
parameter.page.1.boolean.1.frontend=true
|
|
103
103
|
parameter.page.1.boolean.2.backend=true
|
|
104
|
-
parameter.page.1.
|
|
104
|
+
parameter.page.1.boolean.3.includeauth=false
|
|
105
|
+
parameter.page.1.list.4.authentication=Token|SSO|Saml|Nenhuma
|
|
105
106
|
parameter.page.1.list.6.social=Não|Sim
|
|
106
107
|
parameter.page.1.list.7.mutual=Não|Sim
|
|
107
108
|
parameter.page.2.theme.6.theme=Material|Aquamarine|Fuse|DsGov|Material-Round|Krypton|Cerulean|Cosmo|Cyborg|Darkly|Flatly|Journal|Lumen|Paper|Readable|Sandstone|Simplex|Slate|Spacelab|Superhero|United|Yeti
|
|
@@ -129,4 +130,5 @@ themeDescription.Yeti=O tema Yeti utiliza o padrão de HTML e CSS do Bootstrap
|
|
|
129
130
|
themeDescription.Material-Round=Material Round theme uses standard HTML and CSS Bootstrap 🆕
|
|
130
131
|
themeDescription.Krypton=The Krypton theme uses standard HTML and CSS Bootstrap 🆕
|
|
131
132
|
|
|
132
|
-
parameter.dependency.dcyauthentication.authentication.backend.false=Token
|
|
133
|
+
parameter.dependency.dcyauthentication.authentication.backend.false=Token
|
|
134
|
+
parameter.dependency.dcyauth.includeauth.backend.true=false
|
|
@@ -2,7 +2,8 @@ description=Template to create Mobile Low-Code App using CronApp IDE
|
|
|
2
2
|
parameter.page.1.string.0.appid=Application Id
|
|
3
3
|
parameter.page.1.boolean.1.frontend=Include Web Front-End
|
|
4
4
|
parameter.page.1.boolean.2.backend=Include Back-End
|
|
5
|
-
parameter.page.1.
|
|
5
|
+
parameter.page.1.boolean.3.includeauth=Include Authentication
|
|
6
|
+
parameter.page.1.list.4.authentication=Authentication Type
|
|
6
7
|
parameter.page.1.list.6.social=Login over social networks
|
|
7
8
|
parameter.page.1.list.7.mutual=Mutual Authentication
|
|
8
9
|
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
parameter.page.1.string.0.appid=Id da Aplicação
|
|
2
2
|
parameter.page.1.boolean.1.frontend=Incluir Front-End Web
|
|
3
3
|
parameter.page.1.boolean.2.backend=Incluir Back-End
|
|
4
|
-
parameter.page.1.
|
|
4
|
+
parameter.page.1.boolean.3.includeauth=Incluir Autenticação
|
|
5
|
+
parameter.page.1.list.4.authentication=Tipo de Autenticação
|
|
5
6
|
parameter.page.1.list.6.social=Login por redes sociais
|
|
6
7
|
parameter.page.1.list.7.mutual=Autenticação Mútua
|
|
7
8
|
|
|
File without changes
|
|
@@ -14,8 +14,13 @@
|
|
|
14
14
|
<#if (service!"false")?boolean>
|
|
15
15
|
"openApi": {
|
|
16
16
|
"exposeEndpoints": true,
|
|
17
|
+
<#if (dataService!"false")?boolean>
|
|
18
|
+
"exposeDataSources": true,
|
|
19
|
+
"exposeEntities": true,
|
|
20
|
+
<#else>
|
|
17
21
|
"exposeDataSources": false,
|
|
18
22
|
"exposeEntities": false,
|
|
23
|
+
</#if>
|
|
19
24
|
"exposeBlocklys": true,
|
|
20
25
|
"exposeAuth": false
|
|
21
26
|
},
|
|
@@ -1099,6 +1099,156 @@
|
|
|
1099
1099
|
"type": "uml.Class",
|
|
1100
1100
|
"z": 13
|
|
1101
1101
|
},
|
|
1102
|
+
{
|
|
1103
|
+
"angle": 0,
|
|
1104
|
+
"attributes": [
|
|
1105
|
+
"id:java.lang.String",
|
|
1106
|
+
"expirationDate:java.sql.Timestamp"
|
|
1107
|
+
],
|
|
1108
|
+
"attrs": {
|
|
1109
|
+
".uml-class-attrs-rect": {
|
|
1110
|
+
"fill": "#F0F0F0",
|
|
1111
|
+
"font-family": "\u0027Fira Sans\u0027, sans-serif",
|
|
1112
|
+
"height": 60,
|
|
1113
|
+
"stroke": "#C2C2C2",
|
|
1114
|
+
"transform": "translate(0,40)"
|
|
1115
|
+
},
|
|
1116
|
+
".uml-class-attrs-text": {
|
|
1117
|
+
"font-family": "\u0027Fira Sans\u0027, sans-serif",
|
|
1118
|
+
"font-size": 11,
|
|
1119
|
+
"text": "* id\nexpirationDate\n"
|
|
1120
|
+
},
|
|
1121
|
+
".uml-class-attrs-value": {
|
|
1122
|
+
"font-family": "\u0027Fira Sans\u0027, sans-serif",
|
|
1123
|
+
"font-size": 11,
|
|
1124
|
+
"ref-x": 121,
|
|
1125
|
+
"text": "Texto\nCarimbo de Data e Hora\n"
|
|
1126
|
+
},
|
|
1127
|
+
".uml-class-methods-rect": {
|
|
1128
|
+
"fill": "#F0F0F0",
|
|
1129
|
+
"height": 20,
|
|
1130
|
+
"stroke": "#C2C2C2",
|
|
1131
|
+
"stroke-width": 1,
|
|
1132
|
+
"transform": "translate(0,100)"
|
|
1133
|
+
},
|
|
1134
|
+
".uml-class-methods-text": {
|
|
1135
|
+
"font-family": "\u0027Fira Sans\u0027, sans-serif",
|
|
1136
|
+
"font-size": 11,
|
|
1137
|
+
"text": ""
|
|
1138
|
+
},
|
|
1139
|
+
".uml-class-name-rect": {
|
|
1140
|
+
"fill": "#F0F0F0",
|
|
1141
|
+
"font-family": "\u0027Fira Sans\u0027, sans-serif",
|
|
1142
|
+
"height": 40,
|
|
1143
|
+
"stroke": "#C2C2C2",
|
|
1144
|
+
"transform": "translate(0,0)"
|
|
1145
|
+
},
|
|
1146
|
+
".uml-class-name-text": {
|
|
1147
|
+
"font-family": "\u0027Fira Sans\u0027, sans-serif",
|
|
1148
|
+
"text": "InvalidatedToken"
|
|
1149
|
+
}
|
|
1150
|
+
},
|
|
1151
|
+
"audit": false,
|
|
1152
|
+
"fields": [
|
|
1153
|
+
{
|
|
1154
|
+
"name": "id",
|
|
1155
|
+
"type": "java.lang.String",
|
|
1156
|
+
"dbName": "id",
|
|
1157
|
+
"dbLength": "",
|
|
1158
|
+
"dbPrecision": "",
|
|
1159
|
+
"dbScale": "",
|
|
1160
|
+
"dbDefaultValue": "UUID.randomUUID().toString().toUpperCase()",
|
|
1161
|
+
"label": "{{\u0027Id\u0027 | translate}}",
|
|
1162
|
+
"mask": "",
|
|
1163
|
+
"isPrimaryKey": true,
|
|
1164
|
+
"isUniqueKey": false,
|
|
1165
|
+
"isNullable": false,
|
|
1166
|
+
"pkType": "UUID",
|
|
1167
|
+
"multitenantContext": "",
|
|
1168
|
+
"jsonIgnore": false,
|
|
1169
|
+
"isTransient": false,
|
|
1170
|
+
"isInsertable": true,
|
|
1171
|
+
"isUpdatable": true,
|
|
1172
|
+
"isEncryption": false,
|
|
1173
|
+
"passwordPolicy": "none",
|
|
1174
|
+
"referencedColumnName": "",
|
|
1175
|
+
"isSearchable": false,
|
|
1176
|
+
"sequence": "",
|
|
1177
|
+
"isCascade": false,
|
|
1178
|
+
"isVersion": false,
|
|
1179
|
+
"storageId": "",
|
|
1180
|
+
"storageKey": "",
|
|
1181
|
+
"storageType": "",
|
|
1182
|
+
"storageSecret": "",
|
|
1183
|
+
"foreignKeyName": "",
|
|
1184
|
+
"joins": "",
|
|
1185
|
+
"isIndex": false,
|
|
1186
|
+
"useOuterJoin": false,
|
|
1187
|
+
"regionAWS": ""
|
|
1188
|
+
},
|
|
1189
|
+
{
|
|
1190
|
+
"name": "expirationDate",
|
|
1191
|
+
"type": "java.sql.Timestamp",
|
|
1192
|
+
"dbName": "expiration_date",
|
|
1193
|
+
"dbLength": "",
|
|
1194
|
+
"dbPrecision": "",
|
|
1195
|
+
"dbScale": "",
|
|
1196
|
+
"dbDefaultValue": "",
|
|
1197
|
+
"label": "{{\u0027ExpirationDate\u0027 | translate}}",
|
|
1198
|
+
"mask": "",
|
|
1199
|
+
"isPrimaryKey": false,
|
|
1200
|
+
"isUniqueKey": false,
|
|
1201
|
+
"isNullable": true,
|
|
1202
|
+
"pkType": "",
|
|
1203
|
+
"multitenantContext": "",
|
|
1204
|
+
"jsonIgnore": false,
|
|
1205
|
+
"isTransient": false,
|
|
1206
|
+
"isInsertable": true,
|
|
1207
|
+
"isUpdatable": true,
|
|
1208
|
+
"isEncryption": false,
|
|
1209
|
+
"passwordPolicy": "none",
|
|
1210
|
+
"referencedColumnName": "",
|
|
1211
|
+
"isSearchable": false,
|
|
1212
|
+
"sequence": "",
|
|
1213
|
+
"isCascade": false,
|
|
1214
|
+
"isVersion": false,
|
|
1215
|
+
"storageId": "",
|
|
1216
|
+
"storageKey": "",
|
|
1217
|
+
"storageType": "",
|
|
1218
|
+
"storageSecret": "",
|
|
1219
|
+
"foreignKeyName": "",
|
|
1220
|
+
"joins": "",
|
|
1221
|
+
"isIndex": false,
|
|
1222
|
+
"useOuterJoin": false,
|
|
1223
|
+
"regionAWS": ""
|
|
1224
|
+
}
|
|
1225
|
+
],
|
|
1226
|
+
"generateView": "Auto",
|
|
1227
|
+
"id": "79a9aae4-09b4-4f9a-8712-b78ad5a08e3e",
|
|
1228
|
+
"isRest": "true",
|
|
1229
|
+
"methods": [],
|
|
1230
|
+
"modelType": "Table",
|
|
1231
|
+
"name": "InvalidatedToken",
|
|
1232
|
+
"position": {
|
|
1233
|
+
"x": 1150,
|
|
1234
|
+
"y": 566
|
|
1235
|
+
},
|
|
1236
|
+
"queries": [],
|
|
1237
|
+
"realName": "",
|
|
1238
|
+
"restSecurity": null,
|
|
1239
|
+
"role": "Class",
|
|
1240
|
+
"runtimeClass": "cronos.widgets.joint.uml.Class",
|
|
1241
|
+
"size": {
|
|
1242
|
+
"height": 120,
|
|
1243
|
+
"width": 261
|
|
1244
|
+
},
|
|
1245
|
+
"swagger": false,
|
|
1246
|
+
"tableName": "INVALIDATED_TOKEN",
|
|
1247
|
+
"tableScheme": null,
|
|
1248
|
+
"type": "uml.Class",
|
|
1249
|
+
"usePhysicalNames": false,
|
|
1250
|
+
"z": 24
|
|
1251
|
+
},
|
|
1102
1252
|
{
|
|
1103
1253
|
"angle": 0,
|
|
1104
1254
|
"attributes": [
|
|
@@ -723,6 +723,156 @@
|
|
|
723
723
|
"type": "uml.Class",
|
|
724
724
|
"z": 13
|
|
725
725
|
},
|
|
726
|
+
{
|
|
727
|
+
"angle": 0,
|
|
728
|
+
"attributes": [
|
|
729
|
+
"id:java.lang.String",
|
|
730
|
+
"expirationDate:java.sql.Timestamp"
|
|
731
|
+
],
|
|
732
|
+
"attrs": {
|
|
733
|
+
".uml-class-attrs-rect": {
|
|
734
|
+
"fill": "#F0F0F0",
|
|
735
|
+
"font-family": "\u0027Fira Sans\u0027, sans-serif",
|
|
736
|
+
"height": 60,
|
|
737
|
+
"stroke": "#C2C2C2",
|
|
738
|
+
"transform": "translate(0,40)"
|
|
739
|
+
},
|
|
740
|
+
".uml-class-attrs-text": {
|
|
741
|
+
"font-family": "\u0027Fira Sans\u0027, sans-serif",
|
|
742
|
+
"font-size": 11,
|
|
743
|
+
"text": "* id\nexpirationDate\n"
|
|
744
|
+
},
|
|
745
|
+
".uml-class-attrs-value": {
|
|
746
|
+
"font-family": "\u0027Fira Sans\u0027, sans-serif",
|
|
747
|
+
"font-size": 11,
|
|
748
|
+
"ref-x": 121,
|
|
749
|
+
"text": "Texto\nCarimbo de Data e Hora\n"
|
|
750
|
+
},
|
|
751
|
+
".uml-class-methods-rect": {
|
|
752
|
+
"fill": "#F0F0F0",
|
|
753
|
+
"height": 20,
|
|
754
|
+
"stroke": "#C2C2C2",
|
|
755
|
+
"stroke-width": 1,
|
|
756
|
+
"transform": "translate(0,100)"
|
|
757
|
+
},
|
|
758
|
+
".uml-class-methods-text": {
|
|
759
|
+
"font-family": "\u0027Fira Sans\u0027, sans-serif",
|
|
760
|
+
"font-size": 11,
|
|
761
|
+
"text": ""
|
|
762
|
+
},
|
|
763
|
+
".uml-class-name-rect": {
|
|
764
|
+
"fill": "#F0F0F0",
|
|
765
|
+
"font-family": "\u0027Fira Sans\u0027, sans-serif",
|
|
766
|
+
"height": 40,
|
|
767
|
+
"stroke": "#C2C2C2",
|
|
768
|
+
"transform": "translate(0,0)"
|
|
769
|
+
},
|
|
770
|
+
".uml-class-name-text": {
|
|
771
|
+
"font-family": "\u0027Fira Sans\u0027, sans-serif",
|
|
772
|
+
"text": "InvalidatedToken"
|
|
773
|
+
}
|
|
774
|
+
},
|
|
775
|
+
"audit": false,
|
|
776
|
+
"fields": [
|
|
777
|
+
{
|
|
778
|
+
"name": "id",
|
|
779
|
+
"type": "java.lang.String",
|
|
780
|
+
"dbName": "id",
|
|
781
|
+
"dbLength": "",
|
|
782
|
+
"dbPrecision": "",
|
|
783
|
+
"dbScale": "",
|
|
784
|
+
"dbDefaultValue": "UUID.randomUUID().toString().toUpperCase()",
|
|
785
|
+
"label": "{{\u0027Id\u0027 | translate}}",
|
|
786
|
+
"mask": "",
|
|
787
|
+
"isPrimaryKey": true,
|
|
788
|
+
"isUniqueKey": false,
|
|
789
|
+
"isNullable": false,
|
|
790
|
+
"pkType": "UUID",
|
|
791
|
+
"multitenantContext": "",
|
|
792
|
+
"jsonIgnore": false,
|
|
793
|
+
"isTransient": false,
|
|
794
|
+
"isInsertable": true,
|
|
795
|
+
"isUpdatable": true,
|
|
796
|
+
"isEncryption": false,
|
|
797
|
+
"passwordPolicy": "none",
|
|
798
|
+
"referencedColumnName": "",
|
|
799
|
+
"isSearchable": false,
|
|
800
|
+
"sequence": "",
|
|
801
|
+
"isCascade": false,
|
|
802
|
+
"isVersion": false,
|
|
803
|
+
"storageId": "",
|
|
804
|
+
"storageKey": "",
|
|
805
|
+
"storageType": "",
|
|
806
|
+
"storageSecret": "",
|
|
807
|
+
"foreignKeyName": "",
|
|
808
|
+
"joins": "",
|
|
809
|
+
"isIndex": false,
|
|
810
|
+
"useOuterJoin": false,
|
|
811
|
+
"regionAWS": ""
|
|
812
|
+
},
|
|
813
|
+
{
|
|
814
|
+
"name": "expirationDate",
|
|
815
|
+
"type": "java.sql.Timestamp",
|
|
816
|
+
"dbName": "expiration_date",
|
|
817
|
+
"dbLength": "",
|
|
818
|
+
"dbPrecision": "",
|
|
819
|
+
"dbScale": "",
|
|
820
|
+
"dbDefaultValue": "",
|
|
821
|
+
"label": "{{\u0027ExpirationDate\u0027 | translate}}",
|
|
822
|
+
"mask": "",
|
|
823
|
+
"isPrimaryKey": false,
|
|
824
|
+
"isUniqueKey": false,
|
|
825
|
+
"isNullable": true,
|
|
826
|
+
"pkType": "",
|
|
827
|
+
"multitenantContext": "",
|
|
828
|
+
"jsonIgnore": false,
|
|
829
|
+
"isTransient": false,
|
|
830
|
+
"isInsertable": true,
|
|
831
|
+
"isUpdatable": true,
|
|
832
|
+
"isEncryption": false,
|
|
833
|
+
"passwordPolicy": "none",
|
|
834
|
+
"referencedColumnName": "",
|
|
835
|
+
"isSearchable": false,
|
|
836
|
+
"sequence": "",
|
|
837
|
+
"isCascade": false,
|
|
838
|
+
"isVersion": false,
|
|
839
|
+
"storageId": "",
|
|
840
|
+
"storageKey": "",
|
|
841
|
+
"storageType": "",
|
|
842
|
+
"storageSecret": "",
|
|
843
|
+
"foreignKeyName": "",
|
|
844
|
+
"joins": "",
|
|
845
|
+
"isIndex": false,
|
|
846
|
+
"useOuterJoin": false,
|
|
847
|
+
"regionAWS": ""
|
|
848
|
+
}
|
|
849
|
+
],
|
|
850
|
+
"generateView": "Auto",
|
|
851
|
+
"id": "79a9aae4-09b4-4f9a-8712-b78ad5a08e3e",
|
|
852
|
+
"isRest": "true",
|
|
853
|
+
"methods": [],
|
|
854
|
+
"modelType": "Table",
|
|
855
|
+
"name": "InvalidatedToken",
|
|
856
|
+
"position": {
|
|
857
|
+
"x": 1150,
|
|
858
|
+
"y": 566
|
|
859
|
+
},
|
|
860
|
+
"queries": [],
|
|
861
|
+
"realName": "",
|
|
862
|
+
"restSecurity": null,
|
|
863
|
+
"role": "Class",
|
|
864
|
+
"runtimeClass": "cronos.widgets.joint.uml.Class",
|
|
865
|
+
"size": {
|
|
866
|
+
"height": 120,
|
|
867
|
+
"width": 261
|
|
868
|
+
},
|
|
869
|
+
"swagger": false,
|
|
870
|
+
"tableName": "INVALIDATED_TOKEN",
|
|
871
|
+
"tableScheme": null,
|
|
872
|
+
"type": "uml.Class",
|
|
873
|
+
"usePhysicalNames": false,
|
|
874
|
+
"z": 24
|
|
875
|
+
},
|
|
726
876
|
{
|
|
727
877
|
"angle": 0,
|
|
728
878
|
"attributes": [
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
<parent>
|
|
4
4
|
<groupId>io.cronapp</groupId>
|
|
5
5
|
<artifactId>cronapp-framework-spring</artifactId>
|
|
6
|
-
<version>
|
|
6
|
+
<version>3.0.0</version>
|
|
7
7
|
<relativePath />
|
|
8
8
|
</parent>
|
|
9
9
|
<modelVersion>4.0.0</modelVersion>
|
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
<name>${appname}</name>
|
|
14
14
|
<version>1.0-SNAPSHOT</version>
|
|
15
15
|
<url>http://maven.apache.org</url>
|
|
16
|
+
<#if (includeauth?? && includeauth?lower_case == "false") || (!(includeauth!"false")?boolean)>
|
|
16
17
|
<build>
|
|
17
18
|
<resources>
|
|
18
19
|
<#if ((backend??) && (backend?lower_case) == "true") >
|
|
@@ -152,6 +153,7 @@
|
|
|
152
153
|
</dependency>
|
|
153
154
|
</#if>
|
|
154
155
|
</dependencies>
|
|
156
|
+
</#if>
|
|
155
157
|
<properties>
|
|
156
158
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
|
157
159
|
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
<class>app.entity.Device</class>
|
|
8
8
|
<#if (authentication??) >
|
|
9
9
|
<#if ((authentication?lower_case) != "nenhuma") && !(service!"false")?boolean>
|
|
10
|
+
<class>app.entity.InvalidatedToken</class>
|
|
10
11
|
<class>app.entity.RoleSecurable</class>
|
|
11
12
|
<class>app.entity.Securable</class>
|
|
12
13
|
<class>app.entity.UserSecurable</class>
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
package app.dao;
|
|
2
|
+
|
|
3
|
+
import app.entity.*;
|
|
4
|
+
import java.util.*;
|
|
5
|
+
import org.springframework.stereotype.*;
|
|
6
|
+
import org.springframework.data.jpa.repository.*;
|
|
7
|
+
import org.springframework.data.domain.*;
|
|
8
|
+
import org.springframework.data.repository.query.*;
|
|
9
|
+
import org.springframework.transaction.annotation.*;
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Realiza operação de Create, Read, Update e Delete no banco de dados.
|
|
14
|
+
* Os métodos de create, edit, delete e outros estão abstraídos no JpaRepository
|
|
15
|
+
*
|
|
16
|
+
* @see org.springframework.data.jpa.repository.JpaRepository
|
|
17
|
+
*
|
|
18
|
+
* @generated
|
|
19
|
+
*/
|
|
20
|
+
@Repository("app-InvalidatedTokenDAO")
|
|
21
|
+
@Transactional(transactionManager="app-TransactionManager")
|
|
22
|
+
public interface InvalidatedTokenDAO extends JpaRepository<InvalidatedToken, java.lang.String> {
|
|
23
|
+
|
|
24
|
+
}
|
|
@@ -8,6 +8,7 @@ file=ApplicationDAO.java
|
|
|
8
8
|
file=ApplicationUserDAO.java
|
|
9
9
|
file=AuditLogDAO.java
|
|
10
10
|
file=DeviceDAO.java
|
|
11
|
+
file=InvalidatedTokenDAO.java
|
|
11
12
|
file=LoginDAO.java
|
|
12
13
|
file=RoleDAO.java
|
|
13
14
|
file=RoleSecurableDAO.java
|
|
@@ -23,6 +24,7 @@ file=ApplicationDAO.java
|
|
|
23
24
|
file=ApplicationUserDAO.java
|
|
24
25
|
file=AuditLogDAO.java
|
|
25
26
|
file=DeviceDAO.java
|
|
27
|
+
file=InvalidatedTokenDAO.java
|
|
26
28
|
file=LoginDAO.java
|
|
27
29
|
file=RoleDAO.java
|
|
28
30
|
file=RoleSecurableDAO.java
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
|
|
2
|
+
package app.entity;
|
|
3
|
+
|
|
4
|
+
import java.io.*;
|
|
5
|
+
import javax.persistence.*;
|
|
6
|
+
import java.util.*;
|
|
7
|
+
import javax.xml.bind.annotation.*;
|
|
8
|
+
import com.fasterxml.jackson.annotation.JsonIgnore;
|
|
9
|
+
import com.fasterxml.jackson.annotation.JsonFilter;
|
|
10
|
+
import cronapi.rest.security.CronappSecurity;
|
|
11
|
+
import cronapi.swagger.CronappSwagger;
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Classe que representa a tabela INVALIDATED_TOKEN
|
|
16
|
+
* @generated
|
|
17
|
+
*/
|
|
18
|
+
@javax.persistence.Entity
|
|
19
|
+
@javax.persistence.Table(name = "\"INVALIDATED_TOKEN\"")
|
|
20
|
+
@XmlRootElement
|
|
21
|
+
@CronappSecurity
|
|
22
|
+
@JsonFilter("app.entity.InvalidatedToken")
|
|
23
|
+
public class InvalidatedToken implements Serializable {
|
|
24
|
+
/**
|
|
25
|
+
* UID da classe, necessário na serialização
|
|
26
|
+
* @generated
|
|
27
|
+
*/
|
|
28
|
+
private static final long serialVersionUID = 1L;
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* @generated
|
|
32
|
+
*/
|
|
33
|
+
@Id
|
|
34
|
+
@Column(name = "id", nullable = false, insertable=true, updatable=true)
|
|
35
|
+
private java.lang.String id = UUID.randomUUID().toString().toUpperCase();
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* @generated
|
|
40
|
+
*/
|
|
41
|
+
@Temporal(TemporalType.TIMESTAMP)
|
|
42
|
+
@Column(name = "expiration_date", nullable = true, unique = false, insertable=true, updatable=true, columnDefinition = "TIMESTAMP")
|
|
43
|
+
|
|
44
|
+
private java.util.Date expirationDate;
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Construtor
|
|
49
|
+
* @generated
|
|
50
|
+
*/
|
|
51
|
+
public InvalidatedToken(){
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Obtém id
|
|
56
|
+
* return id
|
|
57
|
+
* @generated
|
|
58
|
+
*/
|
|
59
|
+
public java.lang.String getId() {
|
|
60
|
+
return this.id;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* Define id
|
|
65
|
+
* @param id id
|
|
66
|
+
* @generated
|
|
67
|
+
*/
|
|
68
|
+
public InvalidatedToken setId(java.lang.String id) {
|
|
69
|
+
this.id = id;
|
|
70
|
+
return this;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Obtém expirationDate
|
|
74
|
+
* return expirationDate
|
|
75
|
+
* @generated
|
|
76
|
+
*/
|
|
77
|
+
public java.util.Date getExpirationDate() {
|
|
78
|
+
return this.expirationDate;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* Define expirationDate
|
|
83
|
+
* @param expirationDate expirationDate
|
|
84
|
+
* @generated
|
|
85
|
+
*/
|
|
86
|
+
public InvalidatedToken setExpirationDate(java.util.Date expirationDate) {
|
|
87
|
+
this.expirationDate = expirationDate;
|
|
88
|
+
return this;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
* @generated
|
|
93
|
+
*/
|
|
94
|
+
@Override
|
|
95
|
+
public boolean equals(Object obj) {
|
|
96
|
+
if (this == obj) return true;
|
|
97
|
+
if (obj == null || getClass() != obj.getClass()) return false;
|
|
98
|
+
InvalidatedToken object = (InvalidatedToken)obj;
|
|
99
|
+
if (id != null ? !id.equals(object.id) : object.id != null) return false;
|
|
100
|
+
return true;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
/**
|
|
104
|
+
* @generated
|
|
105
|
+
*/
|
|
106
|
+
@Override
|
|
107
|
+
public int hashCode() {
|
|
108
|
+
int result = 1;
|
|
109
|
+
result = 31 * result + ((id == null) ? 0 : id.hashCode());
|
|
110
|
+
return result;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
}
|
|
@@ -8,6 +8,7 @@ file=Application.java
|
|
|
8
8
|
file=ApplicationUser.java
|
|
9
9
|
file=AuditLog.java
|
|
10
10
|
file=Device.java
|
|
11
|
+
file=InvalidatedToken.java
|
|
11
12
|
file=Login.java
|
|
12
13
|
file=Role.java
|
|
13
14
|
file=RoleSecurable.java
|
|
@@ -23,6 +24,7 @@ file=Application.java
|
|
|
23
24
|
file=ApplicationUser.java
|
|
24
25
|
file=AuditLog.java
|
|
25
26
|
file=Device.java
|
|
27
|
+
file=InvalidatedToken.java
|
|
26
28
|
file=Login.java
|
|
27
29
|
file=Role.java
|
|
28
30
|
file=RoleSecurable.java
|
|
@@ -13,6 +13,7 @@ DeleteMethodAllowed=Delete method allowed
|
|
|
13
13
|
Email=Email
|
|
14
14
|
EmailConfirmed=Email confirmed
|
|
15
15
|
Error=Error
|
|
16
|
+
ExpirationDate=Expiration Date
|
|
16
17
|
GetMethodAllowed=Get method allowed
|
|
17
18
|
HeadMethodAllowed=Head method allowed
|
|
18
19
|
Host=Host
|
|
@@ -38,7 +39,7 @@ Picture=Picture
|
|
|
38
39
|
Platform=Platform
|
|
39
40
|
PlatformVersion=Platform version
|
|
40
41
|
PostMethodAllowed=Post method allowed
|
|
41
|
-
ProviderDisplayName=
|
|
42
|
+
ProviderDisplayName=Provider display name
|
|
42
43
|
ProviderKey=Provider Key
|
|
43
44
|
PutMethodAllowed=Put method allowed
|
|
44
45
|
ResetPasswordEmailBody=Your reset password link is
|
|
@@ -63,6 +63,7 @@
|
|
|
63
63
|
<script src="plugins/cronapi-js/dist/cronapi.min.js"></script>
|
|
64
64
|
<!-- Custom -->
|
|
65
65
|
<script src="js/events.js"></script>
|
|
66
|
+
<script src="js/hostApp.js"></script>
|
|
66
67
|
<!-- CronApp Framework -->
|
|
67
68
|
<script src="plugins/cronapp-framework-js/dist/js/app.authentication.js"></script>
|
|
68
69
|
<script src="plugins/cronapp-framework-js/dist/js/controllers.authentication.js"></script>
|
package/project/W/cronapp-rad-project/src/main/webapp-sem-autenticacao/webapp/index.html.ftl
CHANGED
|
@@ -61,6 +61,7 @@
|
|
|
61
61
|
<!-- Custom -->
|
|
62
62
|
<#if ((backend??) && (backend?lower_case) == "true") >
|
|
63
63
|
<script src="js/events.js"></script>
|
|
64
|
+
<script src="js/hostApp.js"></script>
|
|
64
65
|
</#if>
|
|
65
66
|
<!-- CronApp Framework -->
|
|
66
67
|
<script src="plugins/cronapp-framework-js/dist/js/app.js"></script>
|
|
@@ -56,6 +56,9 @@ import org.eclipse.persistence.annotations.JoinFetchType;
|
|
|
56
56
|
<#if clazz.hasXML()>
|
|
57
57
|
import cronapi.database.ByteConverter;
|
|
58
58
|
</#if>
|
|
59
|
+
<#if clazz.hasNotEmpty()>
|
|
60
|
+
import javax.validation.constraints.NotEmpty;
|
|
61
|
+
</#if>
|
|
59
62
|
<#assign hasCloudStorage = clazz.hasCloudStorage()>
|
|
60
63
|
<#if hasCloudStorage>
|
|
61
64
|
import cronapi.CronapiCloud;
|
|
@@ -87,6 +90,9 @@ import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
|
|
|
87
90
|
<#if (clazz.multitenantClass)>
|
|
88
91
|
import org.eclipse.persistence.annotations.*;
|
|
89
92
|
</#if>
|
|
93
|
+
|
|
94
|
+
import cronapp.framework.core.persistence.*;
|
|
95
|
+
|
|
90
96
|
/**
|
|
91
97
|
* Classe que representa a tabela <#if tableName??>${tableName}<#else>${clazz.name?upper_case}</#if>
|
|
92
98
|
* @generated
|
|
@@ -164,6 +170,14 @@ import org.eclipse.persistence.annotations.*;
|
|
|
164
170
|
</#list>
|
|
165
171
|
})
|
|
166
172
|
</#if>
|
|
173
|
+
<#if clazz.role == "AssociationClass">
|
|
174
|
+
<#assign cronappTableRole = "CronappTableRole.ASSOCIATION_CLASS">
|
|
175
|
+
<#elseif clazz.role == "Class">
|
|
176
|
+
<#assign cronappTableRole = "CronappTableRole.CLASS">
|
|
177
|
+
<#else>
|
|
178
|
+
<#assign cronappTableRole = "CronappTableRole.AUTO">
|
|
179
|
+
</#if>
|
|
180
|
+
@CronappTable(role=${cronappTableRole})
|
|
167
181
|
public class ${clazz.name} implements Serializable {
|
|
168
182
|
<#if clazz.hasEncryption()>
|
|
169
183
|
/**
|
|
@@ -195,6 +209,9 @@ public class ${clazz.name} implements Serializable {
|
|
|
195
209
|
</#if>
|
|
196
210
|
<#if (field.isUUID())!false>
|
|
197
211
|
@Convert("uuid")
|
|
212
|
+
</#if>
|
|
213
|
+
<#if field.isNotEmpty()>
|
|
214
|
+
@NotEmpty
|
|
198
215
|
</#if>
|
|
199
216
|
<#if field.isVersion()>
|
|
200
217
|
@Version
|
|
@@ -226,6 +243,7 @@ public class ${clazz.name} implements Serializable {
|
|
|
226
243
|
<#if field.columnDefinition?? && field.columnDefinition == "TEXT" && persistenceProvider?upper_case == "ORACLE">
|
|
227
244
|
@Lob
|
|
228
245
|
</#if>
|
|
246
|
+
@CronappColumn(attributeType="${field.attributeType}"<#if field.label?has_content>, label="${field.label}"</#if><#if field.mask?has_content>, mask="${field.mask}"</#if><#if field.searchable>, searchable = true</#if><#if field.defaultValue?has_content>, defaultValue = "${field.defaultValue?j_string}"</#if>)
|
|
229
247
|
@Column(name = "${field.dbFieldName?replace("\"", "\\\"")}", nullable = ${field.nullable?c}<#if !field.primaryKey>, unique = ${field.unique?c}</#if><#if field.length??>, length=${field.length?c}</#if><#if field.precision??>, precision=${field.precision?c}</#if><#if field.scale??>, scale=${field.scale?c}</#if>, insertable=${field.insertable?c}, updatable=${field.updatable?c}<#if field.columnDefinition?? && (field.columnDefinition != "TEXT" || persistenceProvider?upper_case != "ORACLE")>, columnDefinition = "${field.columnDefinition}"</#if>)
|
|
230
248
|
</#if>
|
|
231
249
|
${field.modifier} <#if field.arrayRelation>${field.type}<#else>${field.type}</#if> ${name}<#if field.defaultValue?has_content> = ${field.defaultValue}<#elseif field.primaryKey && field.generationType?? && field.generationType == "UUID"> = UUID.randomUUID().toString().toUpperCase()</#if>;
|
|
@@ -242,6 +260,9 @@ public class ${clazz.name} implements Serializable {
|
|
|
242
260
|
</#if>
|
|
243
261
|
<#if (field.isUUID())!false>
|
|
244
262
|
@Convert("uuid")
|
|
263
|
+
</#if>
|
|
264
|
+
<#if field.isNotEmpty()>
|
|
265
|
+
@NotEmpty
|
|
245
266
|
</#if>
|
|
246
267
|
<#if (field.XML)!false>
|
|
247
268
|
@Convert("bytes")
|
|
@@ -286,6 +307,7 @@ public class ${clazz.name} implements Serializable {
|
|
|
286
307
|
<#if field.columnDefinition?? && field.columnDefinition == "TEXT" && persistenceProvider?upper_case == "ORACLE">
|
|
287
308
|
@Lob
|
|
288
309
|
</#if>
|
|
310
|
+
@CronappColumn(attributeType="${field.attributeType}"<#if field.label?has_content>, label="${field.label}"</#if><#if field.mask?has_content>, mask="${field.mask}"</#if><#if field.searchable>, searchable = true</#if><#if field.defaultValue?has_content>, defaultValue = "${field.defaultValue?j_string}"</#if>)
|
|
289
311
|
@Column(name = "${field.dbFieldName?replace("\"", "\\\"")}", nullable = ${field.nullable?c}<#if !field.primaryKey>, unique = ${field.unique?c}</#if><#if field.length??>, length=${field.length?c}</#if><#if field.precision??>, precision=${field.precision?c}</#if><#if field.scale??>, scale=${field.scale?c}</#if>, insertable=${field.insertable?c}, updatable=${field.updatable?c}<#if field.columnDefinition?? && (field.columnDefinition != "TEXT" || persistenceProvider?upper_case != "ORACLE")>, columnDefinition = "${field.columnDefinition}"</#if>)
|
|
290
312
|
</#if>
|
|
291
313
|
</#if>
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
## Consulte a documentação do Docker em https://docs.cronapp.io para informações sobre o conteúdo desse arquivo.
|
|
2
|
-
|
|
3
|
-
FROM ubuntu:18.04 AS maven_builder
|
|
4
|
-
RUN apt update && apt install -y maven openjdk-11-jdk npm git bash
|
|
5
|
-
WORKDIR /app
|
|
6
|
-
ADD pom.xml /app/pom.xml
|
|
7
|
-
RUN git config --global url."https://".insteadOf git://
|
|
8
|
-
ARG TIER
|
|
9
|
-
ARG CONTEXT_USE
|
|
10
|
-
ARG MOBILE_APP
|
|
11
|
-
|
|
12
|
-
## Para repositório EXTERNO não é necessário alterações.
|
|
13
|
-
## Para repositório INTERNO comente as linhas 16, 17 e 18 e retire os comentários nas linhas 21, 22, 23 e 24.
|
|
14
|
-
|
|
15
|
-
## Usando repositórios externo - JAR e NPM
|
|
16
|
-
RUN mvn dependency:go-offline -B
|
|
17
|
-
ADD . /app
|
|
18
|
-
RUN cd /app && mvn package -X -Dcronapp.profile=${TIER} -Dcronapp.useContext=${CONTEXT_USE} -Dcronapp.mobileapp=${MOBILE_APP}
|
|
19
|
-
|
|
20
|
-
## Usando repositórios interno - JAR e NPM
|
|
21
|
-
#ADD settings.xml $HOME/.m2/settings.xml
|
|
22
|
-
#RUN npm config set registry https://my.registry.com/your-repository/name && mvn -s /app/settings.xml dependency:go-offline -B
|
|
23
|
-
#ADD . /app
|
|
24
|
-
#RUN cd /app && mvn -s /app/settings.xml package -X -Dcronapp.profile=${TIER} -Dcronapp.useContext=${CONTEXT_USE} -Dcronapp.mobileapp=${MOBILE_APP}
|
|
25
|
-
|
|
26
|
-
FROM tomcat:9.0.17-jre11
|
|
27
|
-
RUN rm -rf /usr/local/tomcat/webapps/* && groupadd tomcat && useradd -s /bin/false -M -d /usr/local/tomcat -g tomcat tomcat
|
|
28
|
-
COPY --from=maven_builder /app/target/*.war /usr/local/tomcat/webapps/ROOT.war
|
|
29
|
-
RUN chown tomcat:tomcat -R /usr/local/tomcat
|
|
30
|
-
USER tomcat
|