[prev in list] [next in list] [prev in thread] [next in thread] 

List:       fop-dev
Subject:    [jira] [Commented] (FOP-3036) InternaResourceResolver fails on schemes starting with "data"
From:       "Michael Kainzbauer (Jira)" <jira () apache ! org>
Date:       2021-12-09 6:14:00
Message-ID: JIRA.13414813.1638370006000.119218.1639030440014 () Atlassian ! JIRA
[Download RAW message or body]


    [ https://issues.apache.org/jira/browse/FOP-3036?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17456158#comment-17456158 \
] 

Michael Kainzbauer commented on FOP-3036:
-----------------------------------------

Hello [~ssteiner]  

Yes, it is the same issue.

> InternaResourceResolver fails on schemes starting with "data"
> -------------------------------------------------------------
> 
> Key: FOP-3036
> URL: https://issues.apache.org/jira/browse/FOP-3036
> Project: FOP
> Issue Type: Bug
> Components: unqualified
> Affects Versions: 2.6
> Reporter: Michael Kainzbauer
> Priority: Major
> 
> org.apache.fop.apps.io.InternalResourceResolver seems to check for "DataURIs" in a \
> wrong way: 
> {{public Resource getResource(String stringUri) throws IOException, \
> URISyntaxException {}} {{return \
> *{color:#ff0000}s{color}{color:#ff0000}tringUri.startsWith("data:"){color}* ? new \
> Resource(this.resolveDataURI(stringUri)) : \
> this.{color:#57d9a3}getResource{color}(cleanURI(stringUri));}} {{}}}
> {{public Resource {color:#57d9a3}getResource{color}(URI uri) throws IOException {}}
> {{return uri.getScheme() != null && \
> *{color:#ff0000}uri.getScheme().startsWith("data"){color}* ? new \
> Resource(this.resolveDataURI(uri.toASCIIString())) : \
> this.resourceResolver.getResource(this.resolveFromBase(uri));}} {{}}}
> The first check in Method {{{}public Resource getResource(String stringUri){}}}, if \
> the stringUri starts with "data:" is correct: any URIs with, an only with, the \
> scheme "data" will be resolved with the resolveDataURI method. Example:
> * resolving an URI with scheme "data" will be resolved with the resolveDataURI \
>                 method
> * resolving an URI with scheme "datamatrix" will be delegated to {{public Resource \
>                 {color:#57d9a3}getResource{color}(URI uri) method.}}
> * resolving an URI with scheme "foo" will be delegated to {{public Resource \
> {color:#57d9a3}getResource{color}(URI uri) method.}} 
> The second check in {{{}public Resource {color:#57d9a3}getResource{color}(URI \
> uri){}}}, if the scheme starts with data is wrong: any URIs with a scheme starting \
> with"data" will be resolved with the resolveDataURI method. Example:
> * resolving an URI with scheme "data" will be resolved with the resolveDataURI \
>                 method
> * {{resolving an URI with scheme "datamatrix"   will be resolved with the \
> resolveDataURI method, which is wrong, should be handled by \
>                 this.resourceResolver.getResource(this.resolveFromBase(uri)}}
> * {{resolving an URI with scheme "foo" will be handled by \
> this.resourceResolver.getResource(this.resolveFromBase(uri)}} 
> The second method should be:
> {{public Resource {color:#57d9a3}getResource{color}(URI uri) throws IOException {}}
> {{return uri.getScheme() != null {color:#172b4d}&& \
> uri.getScheme().{color}{color:#de350b}*equals*{color}{color:#172b4d}("data") \
> {color}? new Resource(this.resolveDataURI(uri.toASCIIString())) : \
> this.resourceResolver.getResource(this.resolveFromBase(uri));}} {{}}}



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic