custom:produzione_war_da_progetto_template_custom

Differenze

Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.

Link a questa pagina di confronto

Entrambe le parti precedenti la revisione Revisione precedente
Prossima revisione
Revisione precedente
custom:produzione_war_da_progetto_template_custom [2024/03/05 18:48]
giorgio.scali
custom:produzione_war_da_progetto_template_custom [2026/10/20 10:52] (versione attuale)
giorgio.scali
Linea 12: Linea 12:
 === Procedura === === Procedura ===
 La prima cosa da fare per creare un progetto di base nel proprio pc cliccare sul seguente link e avviare il download della cartella ZIP, in base alla versione major del progetto da generare: La prima cosa da fare per creare un progetto di base nel proprio pc cliccare sul seguente link e avviare il download della cartella ZIP, in base alla versione major del progetto da generare:
 +  * {{ :​custom:​makegproj-4.8.x+(template-1.1.0).zip |}}
   * {{ :​custom:​makegproj-4.6.x-release.zip |}}   * {{ :​custom:​makegproj-4.6.x-release.zip |}}
   * {{ :​custom:​makegproj-4.6.x.zip | makegproj-4.6.x.zip (PRE-RELEASE,​ @Deprecated)}}   * {{ :​custom:​makegproj-4.6.x.zip | makegproj-4.6.x.zip (PRE-RELEASE,​ @Deprecated)}}
Linea 21: Linea 22:
   * inserire il nome del nuovo progetto maven da generare. Es: **mvn_project_name**   * inserire il nome del nuovo progetto maven da generare. Es: **mvn_project_name**
   * inserire ​ la versione di GeowebFramework,​ scelta tra quelle disponibili su Artifactory. Es:    * inserire ​ la versione di GeowebFramework,​ scelta tra quelle disponibili su Artifactory. Es: 
 +    * **4.8.0**
     * **4.6.0**     * **4.6.0**
     * **4.6.0-SNAPSHOT**     * **4.6.0-SNAPSHOT**
Linea 56: Linea 58:
    
 Le modifiche apportate ai vari file dipendono dal progetto, ma anche dall'​ambiente in cui il progetto deve essere utilizzato. Le modifiche apportate ai vari file dipendono dal progetto, ma anche dall'​ambiente in cui il progetto deve essere utilizzato.
 +
 +
 +=== Note war versioni 4.8 template-1.1.0 Google baselayers map (issue #1928) ===
 +In attesa del rilascio del template successivo è possibile modificare lo spring-security come parte della issue #1928
 +[[https://​gitlab.com/​geowebframework/​geowebframework/​-/​work_items/​1928]].
 +E' necessaria anche una versione >= 4.8.2.59 del framework.
 +Il fix può essere adattato negli spring-security dei repository di commessa, anche a versioni precedenti (4.7.*, etc..) a patto che sia stato riportato indietro anche il fix della issue #​1928. ​
 +
 +<code md>
 +## BUGFIX
 + * layer di base Google Hybrid/​Satellite (OLMapWidget):​ ridotte le richieste a MaxZoomService (zoom massimo delle
 +   immagini al centro mappa), prima una a ogni spostamento della mappa:
 + * nessuna richiesta se lo sfondo attivo non e' Google Hybrid o Google Satellite
 + * risultato in cache per tile (zoom 14): nessuna richiesta nelle aree gia' note
 + * richieste con debounce di 300 ms: in un pan/zoom continuo si chiede solo la posizione finale
 +   (issue #1929)
 +
 +</​code>​
 +
 +Nello spring-security.xml va sostituita la parte:
 +
 +<code xml>
 +<header name="​Content-Security-Policy"​ value="​script-src '​self'​ '​unsafe-inline'​ '​unsafe-eval';​ frame-ancestors '​self';​ img-src * data:"/>​
 +</​code>​
 +
 +con questa:
 +
 +<code xml>
 + <!--
 + issue #1928 Content Security Policy: abilitazione dei layer di base Google Maps
 +
 + PERCHE':​ i layer "​Google Streets/​Physical/​Satellite/​Hybrid"​ di OLMapWidget caricano la Maps JavaScript API
 + da un host esterno (https://​maps.googleapis.com/​maps/​api/​js). Con "​script-src '​self'​ ..." il browser
 + blocca lo script (nessun errore evidente: window.google resta undefined e il layer Google non compare).
 + Non e' un problema della API key: la richiesta non parte nemmeno.
 + La direttiva script-src riguarda ANCHE gli script JSONP che la libreria Google carica a runtime
 + (es. https://​khm.googleapis.com/​mz usato da MaxZoomService per conoscere lo zoom massimo delle immagini
 + satellitari):​ ammettere solo maps.googleapis.com NON basta, la mappa si vede ma MaxZoomService
 + fallisce con status ERROR e le chiamate risultano "​503"​ nel Network di Chrome.
 +
 + COSA SI AMMETTE (documentazione ufficiale Google, "​Content Security Policy Guide" della Maps JavaScript API):
 + * https://​*.googleapis.com : maps.googleapis.com (loader e API), khm/​mt/​etc.googleapis.com (tile e servizi)
 + * https://​*.gstatic.com ​   : moduli JavaScript della libreria (maps-api-v3/​api/​js/​..)
 + * https://​*.google.com ​    : tile/​servizi di Google Maps (maps.google.com ecc.)
 + * blob:                    : web worker usati dalla libreria per il rendering
 + Non serve toccare altre direttive: img-src e' gia' "​*"​ e connect-src/​style-src/​font-src non sono
 + limitati (non c'​e'​ default-src). Se in futuro si aggiunge default-src o si restringono img-src /
 + connect-src,​ vanno aggiunti anche questi host (e worker-src blob:).
 +
 + SOLO HTTPS: OLMapWidget carica la libreria sempre in https (anche se l'​applicazione e' servita in http,
 + ad esempio localhost in sviluppo) e la libreria usa lo stesso schema per le richieste successive.
 + Non vanno quindi inseriti host http://.
 +
 + SICUREZZA:​ ogni host aggiunto a script-src puo' eseguire codice nella pagina. Per questo l'​elenco e' limitato
 + ai domini Google strettamente necessari e NON si usa il carattere jolly "​*"​ da solo.
 + L'​abilitazione e' necessaria solo per i progetti che usano layer Google: gli altri progetti possono
 + tenere la policy piu' restrittiva senza gli host Google. '​unsafe-inline'​ resta necessario perche'​ il widget
 + inserisce uno script inline con la callback di caricamento (googleApiReadyCallback).
 +
 + NOTA: la policy e' letta da Spring Security all'​avvio:​ dopo la modifica serve il riavvio dell'​applicazione,​
 + e nel browser un ricaricamento della pagina (la CSP vale per il documento con cui la pagina e' stata caricata).
 + Per verificare: nella risposta HTTP della pagina, l'​header "​Content-Security-Policy"​ deve contenere gli host sopra.
 + -->
 + <​header name="​Content-Security-Policy"​ value="​script-src '​self'​ '​unsafe-inline'​ '​unsafe-eval'​ https://​*.googleapis.com https://​*.gstatic.com https://​*.google.com blob:; frame-ancestors '​self';​ img-src * data:"/>​
 +</​code>​
  
 === Note war versioni 4.6.x-release === === Note war versioni 4.6.x-release ===
Linea 133: Linea 200:
  
 ==== Creazione Webadmin war ==== ==== Creazione Webadmin war ====
-**(Dalle 4.6.12)**+**(Dalla versione ​4.6.12)**
 [[https://​gitlab.com/​geowebframework/​geowebframework/​-/​issues/​1257|issue #1257]] [[https://​gitlab.com/​geowebframework/​geowebframework/​-/​issues/​1257|issue #1257]]
  
Linea 142: Linea 209:
  
 === Procedura === === Procedura ===
-Analogamente alla metodologia di produzione del war del webclient, è disponibile un template specifico da cui partire+Analogamente alla metodologia di produzione del war del webclient, è disponibile un template specifico da cui partire ​(valido per 4.6.* e 4.7.*)
  
   * {{ :​custom:​makewebadmin-4.6.x.zip |}}   * {{ :​custom:​makewebadmin-4.6.x.zip |}}
  • custom/produzione_war_da_progetto_template_custom.1709660917.txt.gz
  • Ultima modifica: 2024/03/05 18:48
  • da giorgio.scali