@@ -249,7 +249,7 @@ public void ecrireGenApiService(String classeLangueNom) throws Exception {
249
249
auteurGenApiService .l ("import io.vertx.ext.web.api.service.WebApiServiceGen;" );
250
250
auteurGenApiService .l ("import io.vertx.ext.web.api.service.ServiceRequest;" );
251
251
auteurGenApiService .l ("import io.vertx.ext.web.api.service.ServiceResponse;" );
252
- auteurGenApiService .l ("import io.vertx.ext.web.templ.handlebars.HandlebarsTemplateEngine ;" );
252
+ auteurGenApiService .l ("import com.hubspot.jinjava.Jinjava ;" );
253
253
auteurGenApiService .l ("import io.vertx.core.WorkerExecutor;" );
254
254
auteurGenApiService .l ("import io.vertx.pgclient.PgPool;" );
255
255
auteurGenApiService .l ("import io.vertx.kafka.client.producer.KafkaProducer;" );
@@ -373,7 +373,7 @@ public void ecrireApiServiceImpl(String classeLangueNom) throws Exception {
373
373
auteurApiServiceImpl .l ("import io.vertx.pgclient.PgPool;" );
374
374
auteurApiServiceImpl .l ("import io.vertx.kafka.client.producer.KafkaProducer;" );
375
375
if (classePage )
376
- auteurApiServiceImpl .l ("import io.vertx.ext.web.templ.handlebars.HandlebarsTemplateEngine ;" );
376
+ auteurApiServiceImpl .l ("import com.hubspot.jinjava.Jinjava ;" );
377
377
// auteurGenApiService.l("import ", classeNomEnsemble, ".", classeNomSimple, "ApiServiceVertxEBProxy;");
378
378
auteurApiServiceImpl .l ();
379
379
auteurApiServiceImpl .l ("/**" );
@@ -1751,6 +1751,7 @@ public void ecrireGenApiServiceImpl2(String classeLangueNom) throws Exception {
1751
1751
String classePageNomSimpleMethode = classeDoc .getString ("classePageNomSimple" + classeApiMethode + "_" + classeLangueNom + "_stored_string" );
1752
1752
String classeApiOperationIdMethode = classeDoc .getString ("classeApiOperationId" + classeApiMethode + "_" + classeLangueNom + "_stored_string" );
1753
1753
String classeApiUriMethode = classeDoc .getString ("classeApiUri" + classeApiMethode + "_" + classeLangueNom + "_stored_string" );
1754
+ String classeApiMethodeMethode = classeDoc .getString ("classeApiMethode" + classeApiMethode + "_" + classeLangueNom + "_stored_string" );
1754
1755
String classeApiTypeMedia200Methode = classeDoc .getString ("classeApiTypeMedia200" + classeApiMethode + "_" + classeLangueNom + "_stored_string" );
1755
1756
String classeApiTypeMediaRequeteMethode = classeDoc .getString ("classeApiTypeMediaRequete" + classeApiMethode + "_" + classeLangueNom + "_stored_string" );
1756
1757
String classePageLangueNom = classeDoc .getString ("classePageLangueNom" + classeApiMethode + "_" + classeLangueNom + "_stored_string" );
@@ -1808,8 +1809,16 @@ public void ecrireGenApiServiceImpl2(String classeLangueNom) throws Exception {
1808
1809
tl (5 , ".sendForm(MultiMap.caseInsensitiveMultiMap()" );
1809
1810
tl (7 , ".add(\" grant_type\" , \" urn:ietf:params:oauth:grant-type:uma-ticket\" )" );
1810
1811
tl (7 , ".add(\" audience\" , config.getString(ComputateConfigKeys.AUTH_CLIENT))" );
1811
- tl (7 , ".add(\" response_mode\" , \" decision\" )" );
1812
- tl (7 , ".add(\" permission\" , String.format(\" %s#%s\" , " , classeNomSimple , ".CLASS_SIMPLE_NAME, \" " , classeApiMethode , "\" ))" );
1812
+ tl (7 , ".add(\" response_mode\" , \" permissions\" )" );
1813
+ if (classeApiMethode .equals (classeApiMethodeMethode )) {
1814
+ tl (7 , ".add(\" permission\" , String.format(\" %s#%s\" , " , classeNomSimple , ".CLASS_SIMPLE_NAME, \" " , classeApiMethode , "\" ))" );
1815
+ } else {
1816
+ tl (7 , ".add(\" permission\" , String.format(\" %s#%s\" , " , classeNomSimple , ".CLASS_SIMPLE_NAME, config.getString(ComputateConfigKeys." , classeLangueConfig .getString (ConfigCles .var_AUTH_PORTEE_ADMIN ), ")))" );
1817
+ tl (7 , ".add(\" permission\" , String.format(\" %s#%s\" , " , classeNomSimple , ".CLASS_SIMPLE_NAME, config.getString(ComputateConfigKeys." , classeLangueConfig .getString (ConfigCles .var_AUTH_PORTEE_SUPER_ADMIN ), ")))" );
1818
+ tl (7 , ".add(\" permission\" , String.format(\" %s#%s\" , " , classeNomSimple , ".CLASS_SIMPLE_NAME, \" GET\" ))" );
1819
+ tl (7 , ".add(\" permission\" , String.format(\" %s#%s\" , " , classeNomSimple , ".CLASS_SIMPLE_NAME, \" POST\" ))" );
1820
+ tl (7 , ".add(\" permission\" , String.format(\" %s#%s\" , " , classeNomSimple , ".CLASS_SIMPLE_NAME, \" PATCH\" ))" );
1821
+ }
1813
1822
tl (3 , ").onFailure(ex -> {" );
1814
1823
tl (4 , "String msg = String.format(\" 403 FORBIDDEN user %s to %s %s\" , siteRequest.getUser().attributes().getJsonObject(\" accessToken\" ).getString(\" preferred_username\" ), serviceRequest.getExtra().getString(\" method\" ), serviceRequest.getExtra().getString(\" uri\" ));" );
1815
1824
tl (4 , "eventHandler.handle(Future.succeededFuture(" );
@@ -1824,7 +1833,8 @@ public void ecrireGenApiServiceImpl2(String classeLangueNom) throws Exception {
1824
1833
tl (4 , "));" );
1825
1834
tl (3 , "}).onSuccess(authorizationDecision -> {" );
1826
1835
tl (4 , "try {" );
1827
- tl (5 , "if(!authorizationDecision.bodyAsJsonObject().getBoolean(\" result\" )) {" );
1836
+ tl (5 , "JsonArray scopes = authorizationDecision.bodyAsJsonArray().stream().findFirst().map(decision -> ((JsonObject)decision).getJsonArray(\" scopes\" )).orElse(new JsonArray());" );
1837
+ tl (5 , "if(!scopes.contains(\" " , classeApiMethodeMethode , "\" )) {" );
1828
1838
tl (6 , "String msg = String.format(\" 403 FORBIDDEN user %s to %s %s\" , siteRequest.getUser().attributes().getJsonObject(\" accessToken\" ).getString(\" preferred_username\" ), serviceRequest.getExtra().getString(\" method\" ), serviceRequest.getExtra().getString(\" uri\" ));" );
1829
1839
tl (6 , "eventHandler.handle(Future.succeededFuture(" );
1830
1840
tl (7 , "new ServiceResponse(403, \" FORBIDDEN\" ," );
@@ -1837,6 +1847,7 @@ public void ecrireGenApiServiceImpl2(String classeLangueNom) throws Exception {
1837
1847
tl (7 , ")" );
1838
1848
tl (6 , "));" );
1839
1849
tl (5 , "} else {" );
1850
+ tl (6 , classeLangueConfig .getString (ConfigCles .var_requeteSite ), ".setScopes(scopes.stream().map(o -> o.toString()).collect(Collectors.toList()));" );
1840
1851
} else {
1841
1852
tl (3 , "authorizationProvider.getAuthorizations(" , classeLangueConfig .getString (ConfigCles .var_requeteSite ), ".get" , classeLangueConfig .getString (ConfigCles .var_Utilisateur ), "()).onFailure(ex -> {" );
1842
1853
tl (4 , "String msg = String.format(\" 403 FORBIDDEN user %s to %s %s\" , siteRequest.getUser().attributes().getJsonObject(\" accessToken\" ).getString(\" preferred_username\" ), serviceRequest.getExtra().getString(\" method\" ), serviceRequest.getExtra().getString(\" uri\" ));" );
@@ -1883,8 +1894,16 @@ public void ecrireGenApiServiceImpl2(String classeLangueNom) throws Exception {
1883
1894
tl (5 , ".sendForm(MultiMap.caseInsensitiveMultiMap()" );
1884
1895
tl (7 , ".add(\" grant_type\" , \" urn:ietf:params:oauth:grant-type:uma-ticket\" )" );
1885
1896
tl (7 , ".add(\" audience\" , config.getString(ComputateConfigKeys.AUTH_CLIENT))" );
1886
- tl (7 , ".add(\" response_mode\" , \" decision\" )" );
1887
- tl (7 , ".add(\" permission\" , String.format(\" %s#%s\" , " , classeNomSimple , ".CLASS_SIMPLE_NAME, \" " , classeApiMethode , "\" ))" );
1897
+ tl (7 , ".add(\" response_mode\" , \" permissions\" )" );
1898
+ if (classeApiMethode .equals (classeApiMethodeMethode )) {
1899
+ tl (7 , ".add(\" permission\" , String.format(\" %s#%s\" , " , classeNomSimple , ".CLASS_SIMPLE_NAME, \" " , classeApiMethode , "\" ))" );
1900
+ } else {
1901
+ tl (7 , ".add(\" permission\" , String.format(\" %s#%s\" , " , classeNomSimple , ".CLASS_SIMPLE_NAME, config.getString(ComputateConfigKeys." , classeLangueConfig .getString (ConfigCles .var_AUTH_PORTEE_ADMIN ), ")))" );
1902
+ tl (7 , ".add(\" permission\" , String.format(\" %s#%s\" , " , classeNomSimple , ".CLASS_SIMPLE_NAME, config.getString(ComputateConfigKeys." , classeLangueConfig .getString (ConfigCles .var_AUTH_PORTEE_SUPER_ADMIN ), ")))" );
1903
+ tl (7 , ".add(\" permission\" , String.format(\" %s#%s\" , " , classeNomSimple , ".CLASS_SIMPLE_NAME, \" GET\" ))" );
1904
+ tl (7 , ".add(\" permission\" , String.format(\" %s#%s\" , " , classeNomSimple , ".CLASS_SIMPLE_NAME, \" POST\" ))" );
1905
+ tl (7 , ".add(\" permission\" , String.format(\" %s#%s\" , " , classeNomSimple , ".CLASS_SIMPLE_NAME, \" PATCH\" ))" );
1906
+ }
1888
1907
tl (3 , ").onFailure(ex -> {" );
1889
1908
tl (4 , "String msg = String.format(\" 403 FORBIDDEN user %s to %s %s\" , siteRequest.getUser().attributes().getJsonObject(\" accessToken\" ).getString(\" preferred_username\" ), serviceRequest.getExtra().getString(\" method\" ), serviceRequest.getExtra().getString(\" uri\" ));" );
1890
1909
tl (4 , "eventHandler.handle(Future.succeededFuture(" );
@@ -1899,7 +1918,8 @@ public void ecrireGenApiServiceImpl2(String classeLangueNom) throws Exception {
1899
1918
tl (4 , "));" );
1900
1919
tl (3 , "}).onSuccess(authorizationDecision -> {" );
1901
1920
tl (4 , "try {" );
1902
- tl (5 , "if(!authorizationDecision.bodyAsJsonObject().getBoolean(\" result\" )) {" );
1921
+ tl (5 , "JsonArray scopes = authorizationDecision.bodyAsJsonArray().stream().findFirst().map(decision -> ((JsonObject)decision).getJsonArray(\" scopes\" )).orElse(new JsonArray());" );
1922
+ tl (5 , "if(!scopes.contains(\" " , classeApiMethodeMethode , "\" )) {" );
1903
1923
tl (6 , "String msg = String.format(\" 403 FORBIDDEN user %s to %s %s\" , siteRequest.getUser().attributes().getJsonObject(\" accessToken\" ).getString(\" preferred_username\" ), serviceRequest.getExtra().getString(\" method\" ), serviceRequest.getExtra().getString(\" uri\" ));" );
1904
1924
tl (6 , "eventHandler.handle(Future.succeededFuture(" );
1905
1925
tl (7 , "new ServiceResponse(403, \" FORBIDDEN\" ," );
@@ -1912,6 +1932,7 @@ public void ecrireGenApiServiceImpl2(String classeLangueNom) throws Exception {
1912
1932
tl (7 , ")" );
1913
1933
tl (6 , "));" );
1914
1934
tl (5 , "} else {" );
1935
+ tl (6 , classeLangueConfig .getString (ConfigCles .var_requeteSite ), ".setScopes(scopes.stream().map(o -> o.toString()).collect(Collectors.toList()));" );
1915
1936
} else {
1916
1937
tl (4 , "{" );
1917
1938
tl (5 , "try {" );
@@ -3123,7 +3144,7 @@ else if(classeApiMethode.equals(classeLangueConfig.getString(ConfigCles.var_PUTC
3123
3144
if (classePageNomCanoniqueMethode != null ) {
3124
3145
l ();
3125
3146
tl (1 , "public String " , classeLangueConfig .getString (ConfigCles .var_template ), classeApiMethode , classeNomSimple , "() {" );
3126
- tl (2 , "return Optional.ofNullable(config.getString(" , classePartsConfigCles . nomSimple ( classeLangueNom ), ".TEMPLATE_PATH)).orElse( \" templates \" ) + \" /" , classeLangueNom , "/" , classePageNomSimpleMethode , "\" ;" );
3147
+ tl (2 , "return \" /" , classeLangueNom , "/" , classePageNomSimpleMethode , ".htm \" ;" );
3127
3148
t (1 , "}" );
3128
3149
}
3129
3150
l ();
@@ -3167,7 +3188,7 @@ else if(classeApiMethode.contains(classeLangueConfig.getString(ConfigCles.var_Re
3167
3188
tl (3 , "String pageTemplateUri = " , classeLangueConfig .getString (ConfigCles .var_template ), classeApiMethode , classeNomSimple , "();" );
3168
3189
tl (3 , "String siteTemplatePath = config.getString(ComputateConfigKeys.TEMPLATE_PATH);" );
3169
3190
tl (3 , "Path resourceTemplatePath = Path.of(siteTemplatePath, pageTemplateUri);" );
3170
- tl (3 , "String template = siteTemplatePath == null ? Files.readString(resourceTemplatePath, Charset.forName( \" UTF-8 \" )) : Resources.toString(Resources.getResource(resourceTemplatePath.toString()), StandardCharsets.UTF_8);" );
3191
+ tl (3 , "String template = siteTemplatePath == null ? Resources.toString(Resources.getResource(resourceTemplatePath.toString()), StandardCharsets.UTF_8) : Files.readString(resourceTemplatePath, Charset.forName( \" UTF-8 \" ) );" );
3171
3192
tl (3 , classePageNomSimpleMethode , " page = new " , classePageNomSimpleMethode , "();" );
3172
3193
tl (3 , "MultiMap " , classeLangueConfig .getString (ConfigCles .var_requeteEnTetes ), " = MultiMap.caseInsensitiveMultiMap();" );
3173
3194
tl (3 , classeLangueConfig .getString (ConfigCles .var_requeteSite ), ".set" , classeLangueConfig .getString (ConfigCles .var_RequeteEnTetes ), "(" , classeLangueConfig .getString (ConfigCles .var_requeteEnTetes ), ");" );
@@ -3180,14 +3201,8 @@ else if(classeApiMethode.contains(classeLangueConfig.getString(ConfigCles.var_Re
3180
3201
tl (3 , "page.set" , classeLangueConfig .getString (ConfigCles .var_ListeRecherche ), classeApiClasseNomSimple , "_(" , classeLangueConfig .getString (ConfigCles .var_liste ), classeApiClasseNomSimple , ");" );
3181
3202
tl (3 , "page.set" , classeLangueConfig .getString (ConfigCles .var_RequeteSite ), "_(" , classeLangueConfig .getString (ConfigCles .var_requeteSite ), ");" );
3182
3203
tl (3 , "page." , classeLangueConfig .getString (ConfigCles .var_promesseLoin ), classePageNomSimpleMethode , "(" , classeLangueConfig .getString (ConfigCles .var_requeteSite ), ").onSuccess(a -> {" );
3183
- tl (4 , "JsonObject ctx = JsonObject.mapFrom(page);" );
3184
- tl (4 , "ctx.put(" , classePartsConfigCles .nomSimple (langueNom ), ".STATIC_BASE_URL, config.getString(" , classePartsConfigCles .nomSimple (langueNom ), ".STATIC_BASE_URL));" );
3185
- tl (4 , "ctx.put(" , classePartsConfigCles .nomSimple (langueNom ), ".GITHUB_ORG, config.getString(" , classePartsConfigCles .nomSimple (langueNom ), ".GITHUB_ORG));" );
3186
- tl (4 , "ctx.put(" , classePartsConfigCles .nomSimple (langueNom ), ".SITE_NAME, config.getString(" , classePartsConfigCles .nomSimple (langueNom ), ".SITE_NAME));" );
3187
- tl (4 , "ctx.put(" , classePartsConfigCles .nomSimple (langueNom ), ".SITE_DISPLAY_NAME, config.getString(" , classePartsConfigCles .nomSimple (langueNom ), ".SITE_DISPLAY_NAME));" );
3188
- tl (4 , "ctx.put(" , classePartsConfigCles .nomSimple (langueNom ), ".SITE_POWERED_BY_URL, config.getString(" , classePartsConfigCles .nomSimple (langueNom ), ".SITE_POWERED_BY_URL));" );
3189
- tl (4 , "ctx.put(" , classePartsConfigCles .nomSimple (langueNom ), ".SITE_POWERED_BY_NAME, config.getString(" , classePartsConfigCles .nomSimple (langueNom ), ".SITE_POWERED_BY_NAME));" );
3190
- tl (4 , "ctx.put(" , classePartsConfigCles .nomSimple (langueNom ), ".SITE_POWERED_BY_IMAGE_URI, config.getString(" , classePartsConfigCles .nomSimple (langueNom ), ".SITE_POWERED_BY_IMAGE_URI));" );
3204
+ tl (4 , "JsonObject ctx = ComputateConfigKeys.getPageContext(config);" );
3205
+ tl (4 , "ctx.mergeIn(JsonObject.mapFrom(page));" );
3191
3206
tl (4 , "String renderedTemplate = jinjava.render(template, ctx.getMap());" );
3192
3207
tl (4 , "Buffer buffer = Buffer.buffer(renderedTemplate);" );
3193
3208
}
0 commit comments