@@ -249,7 +249,7 @@ public void ecrireGenApiService(String classeLangueNom) throws Exception {
249249 auteurGenApiService .l ("import io.vertx.ext.web.api.service.WebApiServiceGen;" );
250250 auteurGenApiService .l ("import io.vertx.ext.web.api.service.ServiceRequest;" );
251251 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 ;" );
253253 auteurGenApiService .l ("import io.vertx.core.WorkerExecutor;" );
254254 auteurGenApiService .l ("import io.vertx.pgclient.PgPool;" );
255255 auteurGenApiService .l ("import io.vertx.kafka.client.producer.KafkaProducer;" );
@@ -373,7 +373,7 @@ public void ecrireApiServiceImpl(String classeLangueNom) throws Exception {
373373 auteurApiServiceImpl .l ("import io.vertx.pgclient.PgPool;" );
374374 auteurApiServiceImpl .l ("import io.vertx.kafka.client.producer.KafkaProducer;" );
375375 if (classePage )
376- auteurApiServiceImpl .l ("import io.vertx.ext.web.templ.handlebars.HandlebarsTemplateEngine ;" );
376+ auteurApiServiceImpl .l ("import com.hubspot.jinjava.Jinjava ;" );
377377// auteurGenApiService.l("import ", classeNomEnsemble, ".", classeNomSimple, "ApiServiceVertxEBProxy;");
378378 auteurApiServiceImpl .l ();
379379 auteurApiServiceImpl .l ("/**" );
@@ -1751,6 +1751,7 @@ public void ecrireGenApiServiceImpl2(String classeLangueNom) throws Exception {
17511751 String classePageNomSimpleMethode = classeDoc .getString ("classePageNomSimple" + classeApiMethode + "_" + classeLangueNom + "_stored_string" );
17521752 String classeApiOperationIdMethode = classeDoc .getString ("classeApiOperationId" + classeApiMethode + "_" + classeLangueNom + "_stored_string" );
17531753 String classeApiUriMethode = classeDoc .getString ("classeApiUri" + classeApiMethode + "_" + classeLangueNom + "_stored_string" );
1754+ String classeApiMethodeMethode = classeDoc .getString ("classeApiMethode" + classeApiMethode + "_" + classeLangueNom + "_stored_string" );
17541755 String classeApiTypeMedia200Methode = classeDoc .getString ("classeApiTypeMedia200" + classeApiMethode + "_" + classeLangueNom + "_stored_string" );
17551756 String classeApiTypeMediaRequeteMethode = classeDoc .getString ("classeApiTypeMediaRequete" + classeApiMethode + "_" + classeLangueNom + "_stored_string" );
17561757 String classePageLangueNom = classeDoc .getString ("classePageLangueNom" + classeApiMethode + "_" + classeLangueNom + "_stored_string" );
@@ -1808,8 +1809,16 @@ public void ecrireGenApiServiceImpl2(String classeLangueNom) throws Exception {
18081809 tl (5 , ".sendForm(MultiMap.caseInsensitiveMultiMap()" );
18091810 tl (7 , ".add(\" grant_type\" , \" urn:ietf:params:oauth:grant-type:uma-ticket\" )" );
18101811 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+ }
18131822 tl (3 , ").onFailure(ex -> {" );
18141823 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\" ));" );
18151824 tl (4 , "eventHandler.handle(Future.succeededFuture(" );
@@ -1824,7 +1833,8 @@ public void ecrireGenApiServiceImpl2(String classeLangueNom) throws Exception {
18241833 tl (4 , "));" );
18251834 tl (3 , "}).onSuccess(authorizationDecision -> {" );
18261835 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 , "\" )) {" );
18281838 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\" ));" );
18291839 tl (6 , "eventHandler.handle(Future.succeededFuture(" );
18301840 tl (7 , "new ServiceResponse(403, \" FORBIDDEN\" ," );
@@ -1837,6 +1847,7 @@ public void ecrireGenApiServiceImpl2(String classeLangueNom) throws Exception {
18371847 tl (7 , ")" );
18381848 tl (6 , "));" );
18391849 tl (5 , "} else {" );
1850+ tl (6 , classeLangueConfig .getString (ConfigCles .var_requeteSite ), ".setScopes(scopes.stream().map(o -> o.toString()).collect(Collectors.toList()));" );
18401851 } else {
18411852 tl (3 , "authorizationProvider.getAuthorizations(" , classeLangueConfig .getString (ConfigCles .var_requeteSite ), ".get" , classeLangueConfig .getString (ConfigCles .var_Utilisateur ), "()).onFailure(ex -> {" );
18421853 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 {
18831894 tl (5 , ".sendForm(MultiMap.caseInsensitiveMultiMap()" );
18841895 tl (7 , ".add(\" grant_type\" , \" urn:ietf:params:oauth:grant-type:uma-ticket\" )" );
18851896 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+ }
18881907 tl (3 , ").onFailure(ex -> {" );
18891908 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\" ));" );
18901909 tl (4 , "eventHandler.handle(Future.succeededFuture(" );
@@ -1899,7 +1918,8 @@ public void ecrireGenApiServiceImpl2(String classeLangueNom) throws Exception {
18991918 tl (4 , "));" );
19001919 tl (3 , "}).onSuccess(authorizationDecision -> {" );
19011920 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 , "\" )) {" );
19031923 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\" ));" );
19041924 tl (6 , "eventHandler.handle(Future.succeededFuture(" );
19051925 tl (7 , "new ServiceResponse(403, \" FORBIDDEN\" ," );
@@ -1912,6 +1932,7 @@ public void ecrireGenApiServiceImpl2(String classeLangueNom) throws Exception {
19121932 tl (7 , ")" );
19131933 tl (6 , "));" );
19141934 tl (5 , "} else {" );
1935+ tl (6 , classeLangueConfig .getString (ConfigCles .var_requeteSite ), ".setScopes(scopes.stream().map(o -> o.toString()).collect(Collectors.toList()));" );
19151936 } else {
19161937 tl (4 , "{" );
19171938 tl (5 , "try {" );
@@ -3123,7 +3144,7 @@ else if(classeApiMethode.equals(classeLangueConfig.getString(ConfigCles.var_PUTC
31233144 if (classePageNomCanoniqueMethode != null ) {
31243145 l ();
31253146 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 \" ;" );
31273148 t (1 , "}" );
31283149 }
31293150 l ();
@@ -3167,7 +3188,7 @@ else if(classeApiMethode.contains(classeLangueConfig.getString(ConfigCles.var_Re
31673188 tl (3 , "String pageTemplateUri = " , classeLangueConfig .getString (ConfigCles .var_template ), classeApiMethode , classeNomSimple , "();" );
31683189 tl (3 , "String siteTemplatePath = config.getString(ComputateConfigKeys.TEMPLATE_PATH);" );
31693190 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 \" ) );" );
31713192 tl (3 , classePageNomSimpleMethode , " page = new " , classePageNomSimpleMethode , "();" );
31723193 tl (3 , "MultiMap " , classeLangueConfig .getString (ConfigCles .var_requeteEnTetes ), " = MultiMap.caseInsensitiveMultiMap();" );
31733194 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
31803201 tl (3 , "page.set" , classeLangueConfig .getString (ConfigCles .var_ListeRecherche ), classeApiClasseNomSimple , "_(" , classeLangueConfig .getString (ConfigCles .var_liste ), classeApiClasseNomSimple , ");" );
31813202 tl (3 , "page.set" , classeLangueConfig .getString (ConfigCles .var_RequeteSite ), "_(" , classeLangueConfig .getString (ConfigCles .var_requeteSite ), ");" );
31823203 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));" );
31913206 tl (4 , "String renderedTemplate = jinjava.render(template, ctx.getMap());" );
31923207 tl (4 , "Buffer buffer = Buffer.buffer(renderedTemplate);" );
31933208 }
0 commit comments