And of course I forgot the attachment. Here. Cheers Andrea
On Wed, Jan 3, 2024 at 9:21 AM Andrea Aime < andrea.a...@geosolutionsgroup.com> wrote: > Ok, let's try to find out how much work that is. > > I believe inline styling can be found this way? > git grep "style\s*=\s*" -- "*.html" > /tmp/style.txt > > Result attached. That's 95 occurrences that need to be removed with > classes in geoserver.css, some like "display:none" can probably > be controlled by code instead (making the wicket component non visible). > > For local scripts, the following returns 17 occurrences: > > > git grep -i "<script" -- "*.html" > community/gsr/src/main/resources/demos/dynamic_map_layer.html: <script > src="https://js.arcgis.com/4.5/"></script> > community/gsr/src/main/resources/demos/dynamic_map_layer.html: <script> > community/gsr/src/main/resources/demos/layers-featurelayer-polygon.html: > <script src="https://js.arcgis.com/4.5/"></script> > community/gsr/src/main/resources/demos/layers-featurelayer-polygon.html: > <script> > > community/ogcapi/ogcapi-core/src/main/resources/swagger-ui/oauth2-redirect.html:<script> > extension/importer/web/src/main/java/org/geoserver/importer/web/ImportTaskTable$LayerPreviewPanel.html: > <script type="text/javascript"> > web/app/src/main/webapp/index.html:<script type="text/javascript"> > web/core/src/main/java/org/geoserver/web/GeoServerBasePage.html: > <script type="text/javascript" src="js/jquery.placeholder.js"></script> > web/core/src/main/java/org/geoserver/web/GeoServerBasePage.html: > <script type="text/javascript" src="js/jquery.fullscreen.js"></script> > web/core/src/main/java/org/geoserver/web/GeoServerBasePage.html: > <script type="text/javascript"> > web/core/src/main/java/org/geoserver/web/GeoServerLoginPage.html: > <script type="text/javascript"> > web/core/src/main/java/org/geoserver/web/admin/LogPage.html: <script > defer="defer" type="text/javascript"> > web/core/src/main/java/org/geoserver/web/system/status/JVMConsolePanel.html: > <script defer="defer" type="text/javascript"> > web/core/src/main/java/org/geoserver/web/wicket/ColorPicker.html: > <script type="text/javascript" src="js/jscolor/jscolor.js"></script> > web/core/src/main/java/org/geoserver/web/wicket/GeoServerTablePanel.html: > <script type="text/javascript"> > web/core/src/main/java/org/geoserver/web/wicket/js/editarea/plugins/charmap/popup.html:<script > language="Javascript" type="text/javascript" src="jscripts/map.js"> > web/demo/src/main/java/org/geoserver/web/demo/SRSDescriptionPage.html: > <script> > > For the local event handlers bit I've come up with this instead: > > > git grep -E -i " on\w+\s*=" -- "*.html" > web/core/src/main/java/org/geoserver/web/system/status/JVMConsolePanel.html: > <a onclick="downloadFile('dump.log')"><wicket:message > key="download">download as dump text</wicket:message></a> > web/core/src/main/java/org/geoserver/web/wicket/js/editarea/plugins/charmap/popup.html:<body > onload='map_load()'> > web/core/src/main/java/org/geoserver/web/wicket/js/editarea/plugins/charmap/popup.html:<select > id='select_range' onchange='renderCharMapHTML()' > title='{$charmap_choose_block}'> > web/demo/src/main/java/org/geoserver/web/demo/DemoRequestResponse.html:<body > onload="document.getElementById('form').submit();return false;"> > > Do you think it's a complete list? If so, it's big (the style part at > least) but not massive. Looks like a lot of small changes, which would > fit nicely in my "around one hour a week" typical availability. > > And now... back to house chores before wife gets mad at me 🤣 > > Cheers > Andrea > > > On Wed, Jan 3, 2024 at 1:08 AM Brad Hards <br...@frogmouth.net> wrote: > >> On Wednesday, 3 January 2024 5:35:42 AM AEDT Torben Barsballe wrote: >> > Wicket 9 upgrade >> > >> > https://github.com/geoserver/geoserver/pull/7154 >> > >> > Need to collect all pages and panels that need to be tested, make a >> list, >> > and divide the list amongst participants to the testing effort. First we >> > need Brad’s ok to move on. >> >> Part of the Wicket 9 changes is a (strict) Content Security Policy. >> See >> >> https://nightlies.apache.org/wicket/guide/9.x/single.html#_content_security_policy_csp >> >> CSP could help us a lot with security. See >> https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP >> for what it does. The TL;DR; version is it blocks most XSS attacks. >> >> It doesn't come for free though. We need to move or remove all the >> inline styling and javascript. For inline javascript, it >> needs to go into a "renderHead()" method. >> >> We also need to remove inline event handlers. >> >> I would like help to do that work, although I will get some of it done >> soon. >> Please let me know if you can help >> >> Since this stands a pretty good chance of breaking stuff, >> we should defer the manual testing. >> >> The only good news I have is that it looks like there will be automation >> support for getting from Wicket 9 to Wicket 10. >> >> https://cwiki.apache.org/confluence/display/WICKET/Migration+to+Wicket+10.0#MigrationtoWicket10.0-AddmigrationrecipestoWicket10WICKET-7029 >> >> Brad >> >> >> >> >> _______________________________________________ >> Geoserver-devel mailing list >> geoserver-de...@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/geoserver-devel >> > > > -- > > Regards, > > Andrea Aime > > == > GeoServer Professional Services from the experts! > > Visit http://bit.ly/gs-services-us for more information. > == > > Ing. Andrea Aime > @geowolf > Technical Lead > > GeoSolutions Group > phone: +39 0584 962313 > > fax: +39 0584 1660272 > > mob: +39 339 8844549 > > https://www.geosolutionsgroup.com/ > > http://twitter.com/geosolutions_it > > ------------------------------------------------------- > > Con riferimento alla normativa sul trattamento dei dati personali (Reg. UE > 2016/679 - Regolamento generale sulla protezione dei dati “GDPR”), si > precisa che ogni circostanza inerente alla presente email (il suo > contenuto, gli eventuali allegati, etc.) è un dato la cui conoscenza è > riservata al/i solo/i destinatario/i indicati dallo scrivente. Se il > messaggio Le è giunto per errore, è tenuta/o a cancellarlo, ogni altra > operazione è illecita. Le sarei comunque grato se potesse darmene notizia. > > This email is intended only for the person or entity to which it is > addressed and may contain information that is privileged, confidential or > otherwise protected from disclosure. We remind that - as provided by > European Regulation 2016/679 “GDPR” - copying, dissemination or use of this > e-mail or the information herein by anyone other than the intended > recipient is prohibited. If you have received this email by mistake, please > notify us immediately by telephone or e-mail > -- Regards, Andrea Aime == GeoServer Professional Services from the experts! Visit http://bit.ly/gs-services-us for more information. == Ing. Andrea Aime @geowolf Technical Lead GeoSolutions Group phone: +39 0584 962313 fax: +39 0584 1660272 mob: +39 339 8844549 https://www.geosolutionsgroup.com/ http://twitter.com/geosolutions_it ------------------------------------------------------- Con riferimento alla normativa sul trattamento dei dati personali (Reg. UE 2016/679 - Regolamento generale sulla protezione dei dati “GDPR”), si precisa che ogni circostanza inerente alla presente email (il suo contenuto, gli eventuali allegati, etc.) è un dato la cui conoscenza è riservata al/i solo/i destinatario/i indicati dallo scrivente. Se il messaggio Le è giunto per errore, è tenuta/o a cancellarlo, ogni altra operazione è illecita. Le sarei comunque grato se potesse darmene notizia. This email is intended only for the person or entity to which it is addressed and may contain information that is privileged, confidential or otherwise protected from disclosure. We remind that - as provided by European Regulation 2016/679 “GDPR” - copying, dissemination or use of this e-mail or the information herein by anyone other than the intended recipient is prohibited. If you have received this email by mistake, please notify us immediately by telephone or e-mail
community/backup-restore/web/src/main/java/org/geoserver/backuprestore/web/BackupRestoreDataPage.html: <span wicket:id="workspaceNameContainer"><input type="text" class="text" wicket:id="workspaceName" style="width:10em;"></input></span> community/backup-restore/web/src/main/java/org/geoserver/backuprestore/web/BackupRestorePage.html: <span class="border-0 text-nowrap" wicket:id="title" style="margin-left: 20px; font-weight:normal;"></span> community/backup-restore/web/src/main/java/org/geoserver/backuprestore/web/BackupRestorePage.html: <div style="width:95%"> community/backup-restore/web/src/main/java/org/geoserver/backuprestore/web/BackupRestorePage.html: <div><textarea readonly="readonly" style="width:100%;height:50em;font-size:small" wicket:id="details"></textarea></div> community/dyndimension/src/main/java/org/geoserver/web/data/resource/DynamicDimensionsTabPanel$Editor.html: <textarea rows="1" wicket:id="editor" style="height: 1.5em;"></textarea> community/dyndimension/src/main/java/org/geoserver/web/data/resource/DynamicDimensionsTabPanel.html: <textarea rows="1" wicket:id="editor" style="height:1.5em;"></textarea> community/elasticsearch/src/main/java/org/geoserver/elasticsearch/ElasticConfigurationPage.html: <div class="button-group selfclear" style="height: 50px"> community/elasticsearch/src/main/java/org/geoserver/elasticsearch/ElasticConfigurationPanel.html: <div style="height: 50px"> community/features-templating/features-templating-web/src/main/java/org/geoserver/featurestemplating/web/TemplateConfigurationPage.html: <div wicket:id="tabbedPanel" id="template-info-tabbed-panel" style="margin-bottom: 0.5em"></div> community/features-templating/features-templating-web/src/main/java/org/geoserver/featurestemplating/web/TemplateInfoDataPanel.html: <fieldset class="float-start" style="width: 45%; margin-right: 5%; margin-bottom: 0px"> community/features-templating/features-templating-web/src/main/java/org/geoserver/featurestemplating/web/TemplateInfoPage.html: <div style="padding-bottom: 2em"> community/features-templating/features-templating-web/src/main/java/org/geoserver/featurestemplating/web/TemplateRuleConfigurationPanel.html: <span><label wicket:id="ruleConfigurationLabel" style="font-weight: bold"></label></span> community/features-templating/features-templating-web/src/main/java/org/geoserver/featurestemplating/web/TemplateRuleConfigurationPanel.html: <fieldset class="float-start" style="width: 65%; margin-top: 5px;"> community/features-templating/features-templating-web/src/main/java/org/geoserver/featurestemplating/web/TemplateRuleConfigurationPanel.html: <textarea wicket:id="profileFilter" id="profileFilter" style="width: 200px; height:100px;"/> community/features-templating/features-templating-web/src/main/java/org/geoserver/featurestemplating/web/TemplateRuleConfigurationPanel.html: <textarea wicket:id="cqlFilter" id="cqlFilter" style="width: 200px; height:100px;"/> community/features-templating/features-templating-web/src/main/java/org/geoserver/featurestemplating/web/TemplateRuleConfigurationPanel.html: <fieldset class="float-end" style="width: 35%; margin-top: 10px;"> community/features-templating/features-templating-web/src/main/java/org/geoserver/featurestemplating/web/TemplateRuleConfigurationPanel.html: <label style="font-family: Tahoma;color:#0076a1;font-weight: bold;font-size:10.8px;" wicket:id="submitLabel"></label> community/gwc-sqlite/src/main/java/org/geoserver/gwc/web/blob/SqliteBlobStorePanel.html: <input id="templatePath" wicket:id="templatePath" type="text" style="width: 300px;"/> community/hz-cluster/src/main/java/org/geoserver/cluster/hazelcast/web/NodeInfoDialog.html: <div style="padding: 1em;"> community/jms-cluster/activemqBroker/src/main/webapp/404.html: <a style="float:left; width:280px;display:block;text-indent:-5000px;text-decoration:none;line-height:60px; margin-top:10px; margin-left:100px;" community/jms-cluster/activemqBroker/src/main/webapp/404.html: <a style="float:right; width:210px;display:block;text-indent:-5000px;text-decoration:none;line-height:60px; margin-top:15px; margin-right:10px;" community/jms-cluster/activemqBroker/src/main/webapp/404.html: <td valign="top" width="100%" style="overflow:hidden;"> community/jms-cluster/activemqBroker/src/main/webapp/500.html: <a style="float:left; width:280px;display:block;text-indent:-5000px;text-decoration:none;line-height:60px; margin-top:10px; margin-left:100px;" community/jms-cluster/activemqBroker/src/main/webapp/500.html: <a style="float:right; width:210px;display:block;text-indent:-5000px;text-decoration:none;line-height:60px; margin-top:15px; margin-right:10px;" community/jms-cluster/activemqBroker/src/main/webapp/500.html: <td valign="top" width="100%" style="overflow:hidden;"> community/jms-cluster/jms-geoserver/src/main/java/org/geoserver/cluster/impl/web/ClusterPage.html: id="toggleMaster" style="width: 30px;" class="field text" community/jms-cluster/jms-geoserver/src/main/java/org/geoserver/cluster/impl/web/ClusterPage.html: id="toggleSlave" style="width: 30px;" class="field text" community/jms-cluster/jms-geoserver/src/main/java/org/geoserver/cluster/impl/web/ClusterPage.html: id="connection" style="width: 50px;" class="field text" community/jms-cluster/jms-geoserver/src/main/java/org/geoserver/cluster/impl/web/ClusterPage.html: id="readOnly" style="width: 50px;" class="field text" community/jms-cluster/jms-geoserver/src/main/java/org/geoserver/cluster/impl/web/ClusterPage.html: id="readOnly" style="width: 50px;" class="field text" community/solr/src/main/java/org/geoserver/solr/SolrConfigurationPage.html: <div class="button-group selfclear" style="height: 50px"> community/solr/src/main/java/org/geoserver/solr/SolrConfigurationPanel.html: <div style="height: 50px"> community/taskmanager/core/bin/src/main/resources/org/geoserver/taskmanager/web/panel/AutoCompleteTextFieldPanel.html: <input wicket:id="textfield" style="width: 600px;"/> community/taskmanager/core/bin/src/main/resources/org/geoserver/taskmanager/web/panel/FrequencyPanel.html: <input style="width:50px;" id="time" wicket:id="time" type="text" class="text" /> community/taskmanager/core/bin/src/main/resources/org/geoserver/taskmanager/web/panel/TextAreaPanel.html: <textarea wicket:id="textarea" rows="5" style="width: 600px; height: 100px"/> community/taskmanager/core/bin/src/main/resources/org/geoserver/taskmanager/web/panel/TextFieldPanel.html: <input wicket:id="textfield" style="width: 600px;"/> community/taskmanager/core/src/main/resources/org/geoserver/taskmanager/web/panel/AutoCompleteTextFieldPanel.html: <input wicket:id="textfield" style="width: 600px;"/> community/taskmanager/core/src/main/resources/org/geoserver/taskmanager/web/panel/FrequencyPanel.html: <input style="width:50px;" id="time" wicket:id="time" type="text" class="text" /> community/taskmanager/core/src/main/resources/org/geoserver/taskmanager/web/panel/TextAreaPanel.html: <textarea wicket:id="textarea" rows="5" style="width: 600px; height: 100px"/> community/taskmanager/core/src/main/resources/org/geoserver/taskmanager/web/panel/TextFieldPanel.html: <input wicket:id="textfield" style="width: 600px;"/> release/src/markdown/html/header.html: style="stop-color:#0092C8" release/src/markdown/html/header.html: style="stop-color:#00AFDD" release/src/markdown/html/header.html: style="fill:url(#SVGID_3_)" /> release/src/markdown/html/header.html: style="stop-color:#8CC63F" release/src/markdown/html/header.html: style="stop-color:#C9E39F" release/src/markdown/html/header.html: style="stop-color:#F1F6DE" release/src/markdown/html/header.html: style="fill:url(#SVGID_9_)" /> web/core/src/main/java/org/geoserver/web/GeoServerBasePage.html: <div id="ajaxFeedback" style="display: none"> web/core/src/main/java/org/geoserver/web/GeoServerErrorPage.html: style="padding-top: 16px; white-space: pre; font-family: monospace"> </div> web/core/src/main/java/org/geoserver/web/wicket/KeywordsEditor.html: <select id="keywords" class="select" wicket:id="keywords" multiple="multiple" style="width:25em;"></select> web/core/src/main/java/org/geoserver/web/wicket/browser/FileDataView.html: <td class="w-15-em text-end" style="width:15em" wicket:id="lastModified"></td> web/core/src/main/java/org/geoserver/web/wicket/browser/FileDataView.html: <td class="w-10-em text-end" style="width:10em" wicket:id="size"></td> web/demo/src/main/java/org/geoserver/web/catalogstresstool/CatalogStressTester.html: <select wicket:id="workspace" style="width: 260px;"></select> web/demo/src/main/java/org/geoserver/web/catalogstresstool/CatalogStressTester.html: <select wicket:id="store" style="width: 260px;"></select> web/demo/src/main/java/org/geoserver/web/catalogstresstool/CatalogStressTester.html: <select wicket:id="resourceAndLayer" style="width: 260px;"></select> web/demo/src/main/java/org/geoserver/web/catalogstresstool/CatalogStressTester.html: <input type="text" class="text" wicket:id="duplicateCount" style="width: 260px;"/> web/demo/src/main/java/org/geoserver/web/catalogstresstool/CatalogStressTester.html: <input type="text" class="text" wicket:id="sufix" style="width: 260px;"/> web/demo/src/main/java/org/geoserver/web/demo/DemoRequestResponse.html: <textarea wicket:id="body" style='visibility:hidden' name='body'></textarea> web/demo/src/main/java/org/geoserver/web/demo/DemoRequestsPage.html: <table style="height:100%;width:100%;"> web/demo/src/main/java/org/geoserver/web/demo/DemoRequestsPage.html: <td class="datum"><input wicket:id="url" type="text" class="text" style="width: 100%;" name="url" value=""/></td> web/demo/src/main/java/org/geoserver/web/demo/DemoRequestsPage.html: <tr style="height:100%"> web/demo/src/main/java/org/geoserver/web/demo/DemoRequestsPage.html: <td class="datum"><input type="text" size="30" name="username" wicket:id="username" class="text" style="width: 120px;"/> web/demo/src/main/java/org/geoserver/web/demo/DemoRequestsPage.html: <input type="password" size="30" name="password" wicket:id="password" class="text" style="width: 120px;"/> web/demo/src/main/java/org/geoserver/web/demo/DemoRequestsPage.html: <td class="label" style="width:1%"></td> web/demo/src/main/java/org/geoserver/web/demo/DemoRequestsPage.html: <td class="datum" style="width:99%"> web/demo/src/main/java/org/geoserver/web/demo/ReprojectPage.html: <textarea id="sourceGeom" style="height: 2em; width: 55em" wicket:id="sourceGeom"></textarea><br/> web/demo/src/main/java/org/geoserver/web/demo/ReprojectPage.html: <textarea id="targetGeom" style="height: 2em; width: 55em" wicket:id="targetGeom"></textarea><br/> web/demo/src/main/java/org/geoserver/web/demo/SRSDescriptionPage.html: <img id="aovMap" wicket:id="aovMap" style="display:none;"/> web/demo/src/main/java/org/geoserver/web/demo/SRSDescriptionPage.html: <div id="aovMapContainer" style="width:512px; height:256px;background-color:white;"></div> web/gwc/src/main/java/org/geoserver/gwc/web/diskquota/DiskQuotaConfigPanel.html: <input class="text" wicket:id="cleanUpFreq" id="cleanUpFreq" type="text" style="width: 80px;"/> web/gwc/src/main/java/org/geoserver/gwc/web/diskquota/DiskQuotaConfigPanel.html: <input class="text" wicket:id="globalQuota" id="globalQuota" type="text" style="width: 80px;"/> web/gwc/src/main/java/org/geoserver/gwc/web/diskquota/JDBCConnectionPoolPanel.html: <input class="text" wicket:id="jdbcUrl" id="jdbcUrl" type="text" style="width: 80em;"/> web/gwc/src/main/java/org/geoserver/gwc/web/gridset/TileMatrixSetEditor.html: <td><input wicket:id="resolution" type="text" class="text" style="width: 140px;"></td> web/gwc/src/main/java/org/geoserver/gwc/web/gridset/TileMatrixSetEditor.html: <td>1:<input wicket:id="scale" type="text" class="text" style="width: 140px;"></td> web/gwc/src/main/java/org/geoserver/gwc/web/gridset/TileMatrixSetEditor.html: <td><input wicket:id="name" type="text" class="text" style="width: 140px;"></td> web/gwc/src/main/java/org/geoserver/gwc/web/layer/GridSubsetsEditor.html: <select style="max-width: 100%;" class="select" id="availableGridsets" wicket:id="availableGridsets"></select> web/gwc/src/main/java/org/geoserver/gwc/web/layer/IntegerParameterFilterSubform.html: <textarea wicket:id="values" style="width:20ex;" rows="5" cols="20"></textarea> web/gwc/src/main/java/org/geoserver/gwc/web/layer/ParameterFilterEditor.html: <div style="position:absolute; right:0; text-align:right;"> web/gwc/src/main/java/org/geoserver/gwc/web/layer/ParameterFilterEditor.html: <datalist id="commonKeys" style="display:none;"> web/security/core/src/main/java/org/geoserver/security/web/SecuritySettingsPage$EncryptionPanel.html: <span wicket:id="strongEncryptionMsg" style="margin-left: 5%;"></span> web/security/core/src/main/java/org/geoserver/security/web/role/AbstractRolePage.html: <select wicket:id="parent" id="parent" style="min-width:200px;"/> web/security/core/src/main/java/org/geoserver/security/web/user/AbstractUserPage.html: <select class="select choicesSelect" wicket:id="adminGroups" multiple="multiple" style="width:200px;"></select> web/security/ldap/src/main/java/org/geoserver/web/security/ldap/LDAPAuthProviderPanel.html: <div wicket:id="testCx" class="float-end" style="padding-right: 25%;"> web/wms/src/main/java/org/geoserver/wms/web/data/AbstractStylePage.html: <div class="button-group toolbar-sticky selfclear" style="margin-top: 0.5em; margin-left: -1px; clear: left"> web/wms/src/main/java/org/geoserver/wms/web/data/ChooseImagePanel.html: <img wicket:id="display" style="display: block; float:right; max-width: 35px; max-height: 35px;" /> web/wms/src/main/java/org/geoserver/wms/web/data/LayerAssociationPanel.html: <div wicket:id="layer.table" style="margin-bottom: 1em"></div> web/wms/src/main/java/org/geoserver/wms/web/data/OpenLayersPreviewPanel.html: <div wicket:id="olPreview" style="margin-bottom: 1em"/> web/wms/src/main/java/org/geoserver/wms/web/data/StyleAdminPanel.html: <fieldset class="float-start" style="width: 45%; margin-right: 5%; margin-bottom: 0px"> web/wms/src/main/java/org/geoserver/wms/web/data/StyleAdminPanel.html: <div wicket:id="formatReadOnly" class="info-link" style="display: inline-block;"> web/wms/src/main/java/org/geoserver/wms/web/data/StyleAdminPanel.html: <div style="padding-top: 2em"><fieldset style="margin-bottom: 0em"> web/wms/src/main/java/org/geoserver/wms/web/data/StyleAdminPanel.html: <select wicket:id="existingStyles" style="width: 27em;"></select> web/wms/src/main/java/org/geoserver/wms/web/data/StyleAdminPanel.html: <fieldset class="float-start" style="width: 45%; margin-right: 5%"> web/wms/src/main/java/org/geoserver/wms/web/publish/AuthorityURLListEditor.html: <td><div wicket:id="urlBorder" style="width:100%;"><input wicket:id="authorityURL" type="text" class="text" style="width:90%;"></input></div></td> web/wms/src/main/java/org/geoserver/wms/web/publish/LayerIdentifierListEditor.html: <td><div wicket:id="authFeedbak" style="width:100%;"><select wicket:id="authority" style="width: 23em;"></select></div></td> web/wms/src/main/java/org/geoserver/wms/web/publish/LayerIdentifierListEditor.html: <td><div wicket:id="idFeedbak" style="width:100%;"><input wicket:id="identifier" type="text" class="text" style="width:90%;"></input></div></td>
_______________________________________________ GeoTools-Devel mailing list GeoTools-Devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/geotools-devel