[
https://issues.apache.org/jira/browse/WICKET-7149?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17928697#comment-17928697
]
ASF subversion and git services commented on WICKET-7149:
---------------------------------------------------------
Commit ca8ec2797d694bec701e001d66708338f8f9561e in wicket's branch
refs/heads/master from mpritt
[ https://gitbox.apache.org/repos/asf?p=wicket.git;h=ca8ec2797d ]
WICKET-7149: Add Integrity and CrossOrigin values to ResourceReference and
related code (#1102)
WICKET-7149: Adding Integrity and CrossOrigin values to ResourceReference
class and using values for creating JS/CSS reference header items
Added two new variables to the ResourceReference class. These new values allow
for better JavaScriptReferenceHeaderItem and CssReferenceHeaderItem creation,
allowing those classes to access the resource reference identity/CrossOrigin
values if they are not already defined at the header item level. Also fixed a
bug with the AbstractCssReferenceHeaderItem class where it was directly
accessing the identity and crossOrigin values instead of it going through the
accessor methods like it should.
* Create JsCssReferenceHeaderItemTest.java
Added unit tests for ResourceReference, JavaScriptReferenceHeaderItem and
CssReferenceHeaderItem classes.
* WICKET-7149: Tidy-up the new JsCssReferenceHeaderItemTest
Signed-off-by: Martin Tzvetanov Grigorov <[email protected]>
---------
Signed-off-by: Martin Tzvetanov Grigorov <[email protected]>
Co-authored-by: Martin Tzvetanov Grigorov <[email protected]>
> Add Integrity and CrossOrigin values to ResourceReference and related code
> --------------------------------------------------------------------------
>
> Key: WICKET-7149
> URL: https://issues.apache.org/jira/browse/WICKET-7149
> Project: Wicket
> Issue Type: Improvement
> Components: wicket
> Affects Versions: 10.4.0
> Reporter: Martin Tzvetanov Grigorov
> Priority: Major
>
> From https://github.com/apache/wicket/pull/1102
>
> *Synopsis*
> Added two new variables to the ResourceReference class. Added code to use
> these values in both the JavaScriptReferenceHeaderItem and
> CssReferenceHeaderItem classes. Also fixed a bug with the
> AbstractCssReferenceHeaderItem class where it was directly accessing the
> identity and crossOrigin values directly instead of going through accessor
> methods.
> {*}In-depth Detail{*}:
> It is easy to create the integrity and cross origin values needed when the we
> have the control over the creation of the JavaScriptHeaderItem or
> CssReferenceHeaderItem. It becomes much more difficult when there are
> resources that are created and then stored in wicket framework classes
> (whether resource references are framework or user created), because these
> resources are used later by the framework when it does the actual creation of
> the header items (i.e. like JavaScriptHeaderItem.forReference()).
> Supporting scenario...try setting the integrity hash for the
> "wicket-ajax-jquery.js" file which is referenced from the
> wicket-core-10.1.0.jar. This resource is created initially through the
> WicketAjaxJQueryResourceReference class and used in the
> JavaScriptLibrarySettings class. The call getWicketAjaxReference() inside the
> JavaScriptLibrarySettings is used by the framework in various places, and
> those places create the actual JavaScriptReferenceHeaderItem (see
> OnDomReadyHeaderItem.getDependencies() as an example). While it is possible
> to extend a few framework classes to overwrite the default behavior and
> create the JavaScriptReferenceHeaderItem directly and add the desired hash
> and cross-origin values, that method is not a desirable or maintainable.
> By adding integrity and cross-origin variables to the definition of a
> ResourceReference class, those values can then be used in the rendering of
> the JavaScriptReferenceHeaderItem through overriding the getIntegrity() and
> getCrossOrigin() functions. If the header item's integrity value was not
> defined (i.e. null) then use the value defined from the ResourceReference
> (the same goes for the cross origin value).
> It was also noticed that the AbstractCssReferenceHeaderItem's
> internalRenderCSSReference() function was not correctly referencing the
> integrity and cross origin values by directly accessing the values rather
> than using the accessor methods. Changes were made to this class to correctly
> use the accessor methods.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)