You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@sling.apache.org by "Stefan Seifert (JIRA)" <ji...@apache.org> on 2010/03/03 00:58:27 UTC

[jira] Created: (SLING-1421) Resorce Resolver Mapping - Better Support for Multiple Domain/Protocol Mapping

Resorce Resolver Mapping - Better Support for Multiple Domain/Protocol Mapping
------------------------------------------------------------------------------

                 Key: SLING-1421
                 URL: https://issues.apache.org/jira/browse/SLING-1421
             Project: Sling
          Issue Type: Improvement
          Components: JCR
    Affects Versions: JCR Resource 2.0.6
            Reporter: Stefan Seifert
             Fix For: JCR Resource 2.0.8
         Attachments: 100303_slingtest-mapping.zip

in our sling CMS-based web projects we've the following scenario:
* most pages of a website are accessed via HTTP, but some of the via HTTPs (e.g. including forms submitting personal data)
* at the same time we use the mapping features at /etc/map to shorten the urls for a given domain name
* in fact we have to configure two mappings for two domain names (one for HTTP and one for HTTPS), pointing to the same start path in JCR

with this configuration in place the sling ResourceResolver.map method sometimes produces unexpected or incorrect results with the current implementation.
if the current host name and port does not match with the configured mapping host name and port sling automatically adds protocol, host name and port from the configuration to the result of the map method. but in the case above with multiple mappings for the same start path this cannot produce correct results, because the decision whether the secure or non-secure domain name should be chosen is custom application logic.

i'm not sure what the best solution is for this problem, because the current implementation makes sense in some way and works well for the simple scenarios. but in complex scenarios with multiple domain mappings it would be more practical to use the map method only for shortening the urls and not for adding the hostname.

of course it is possible to parse the value of the map method and strip off any hostname returned manually and add an own one, but this seems not "right". and if the cms does a check if the internal url is valid this url can be treated as invalid.

for easy reproduction of the scenario i've attached a simple test project [^100303_slingtest-mapping.zip]. please deploy it to a sling instance using "mvn install" and then call in the intro page http://localhost:8080/content/slingtest-mapping.html and follow the instructions on the page (two host names have to be added to the local hosts file). the test project contains two templates/jsp components, a configuration at /etc/map with two domain names pointing to the same path and some sample content nodes.

depending whether a default mapping "/content/-/" is configured in "apache sling resource resolver" the generated links on the "site 1" test page are correct. but the links generate on the "site 2" test pages are wrong.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (SLING-1421) Resorce Resolver Mapping - Better Support for Multiple Domain/Protocol Mapping

Posted by "Justin Edelson (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/SLING-1421?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Justin Edelson updated SLING-1421:
----------------------------------

    Fix Version/s:     (was: JCR Resource 2.0.8)

> Resorce Resolver Mapping - Better Support for Multiple Domain/Protocol Mapping
> ------------------------------------------------------------------------------
>
>                 Key: SLING-1421
>                 URL: https://issues.apache.org/jira/browse/SLING-1421
>             Project: Sling
>          Issue Type: Improvement
>          Components: JCR
>    Affects Versions: JCR Resource 2.0.6
>            Reporter: Stefan Seifert
>         Attachments: 100303_slingtest-mapping.zip
>
>
> in our sling CMS-based web projects we've the following scenario:
> * most pages of a website are accessed via HTTP, but some of the via HTTPs (e.g. including forms submitting personal data)
> * at the same time we use the mapping features at /etc/map to shorten the urls for a given domain name
> * in fact we have to configure two mappings for two domain names (one for HTTP and one for HTTPS), pointing to the same start path in JCR
> with this configuration in place the sling ResourceResolver.map method sometimes produces unexpected or incorrect results with the current implementation.
> if the current host name and port does not match with the configured mapping host name and port sling automatically adds protocol, host name and port from the configuration to the result of the map method. but in the case above with multiple mappings for the same start path this cannot produce correct results, because the decision whether the secure or non-secure domain name should be chosen is custom application logic.
> i'm not sure what the best solution is for this problem, because the current implementation makes sense in some way and works well for the simple scenarios. but in complex scenarios with multiple domain mappings it would be more practical to use the map method only for shortening the urls and not for adding the hostname.
> of course it is possible to parse the value of the map method and strip off any hostname returned manually and add an own one, but this seems not "right". and if the cms does a check if the internal url is valid this url can be treated as invalid.
> for easy reproduction of the scenario i've attached a simple test project [^100303_slingtest-mapping.zip]. please deploy it to a sling instance using "mvn install" and then call in the intro page http://localhost:8080/content/slingtest-mapping.html and follow the instructions on the page (two host names have to be added to the local hosts file). the test project contains two templates/jsp components, a configuration at /etc/map with two domain names pointing to the same path and some sample content nodes.
> depending whether a default mapping "/content/-/" is configured in "apache sling resource resolver" the generated links on the "site 1" test page are correct. but the links generate on the "site 2" test pages are wrong.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (SLING-1421) Resorce Resolver Mapping - Better Support for Multiple Domain/Protocol Mapping

Posted by "Justin Edelson (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/SLING-1421?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12902642#action_12902642 ] 

Justin Edelson commented on SLING-1421:
---------------------------------------

moving out of 2.0.8

> Resorce Resolver Mapping - Better Support for Multiple Domain/Protocol Mapping
> ------------------------------------------------------------------------------
>
>                 Key: SLING-1421
>                 URL: https://issues.apache.org/jira/browse/SLING-1421
>             Project: Sling
>          Issue Type: Improvement
>          Components: JCR
>    Affects Versions: JCR Resource 2.0.6
>            Reporter: Stefan Seifert
>         Attachments: 100303_slingtest-mapping.zip
>
>
> in our sling CMS-based web projects we've the following scenario:
> * most pages of a website are accessed via HTTP, but some of the via HTTPs (e.g. including forms submitting personal data)
> * at the same time we use the mapping features at /etc/map to shorten the urls for a given domain name
> * in fact we have to configure two mappings for two domain names (one for HTTP and one for HTTPS), pointing to the same start path in JCR
> with this configuration in place the sling ResourceResolver.map method sometimes produces unexpected or incorrect results with the current implementation.
> if the current host name and port does not match with the configured mapping host name and port sling automatically adds protocol, host name and port from the configuration to the result of the map method. but in the case above with multiple mappings for the same start path this cannot produce correct results, because the decision whether the secure or non-secure domain name should be chosen is custom application logic.
> i'm not sure what the best solution is for this problem, because the current implementation makes sense in some way and works well for the simple scenarios. but in complex scenarios with multiple domain mappings it would be more practical to use the map method only for shortening the urls and not for adding the hostname.
> of course it is possible to parse the value of the map method and strip off any hostname returned manually and add an own one, but this seems not "right". and if the cms does a check if the internal url is valid this url can be treated as invalid.
> for easy reproduction of the scenario i've attached a simple test project [^100303_slingtest-mapping.zip]. please deploy it to a sling instance using "mvn install" and then call in the intro page http://localhost:8080/content/slingtest-mapping.html and follow the instructions on the page (two host names have to be added to the local hosts file). the test project contains two templates/jsp components, a configuration at /etc/map with two domain names pointing to the same path and some sample content nodes.
> depending whether a default mapping "/content/-/" is configured in "apache sling resource resolver" the generated links on the "site 1" test page are correct. but the links generate on the "site 2" test pages are wrong.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (SLING-1421) Resorce Resolver Mapping - Better Support for Multiple Domain/Protocol Mapping

Posted by "Stefan Seifert (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/SLING-1421?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Stefan Seifert updated SLING-1421:
----------------------------------

    Attachment: 100303_slingtest-mapping.zip

> Resorce Resolver Mapping - Better Support for Multiple Domain/Protocol Mapping
> ------------------------------------------------------------------------------
>
>                 Key: SLING-1421
>                 URL: https://issues.apache.org/jira/browse/SLING-1421
>             Project: Sling
>          Issue Type: Improvement
>          Components: JCR
>    Affects Versions: JCR Resource 2.0.6
>            Reporter: Stefan Seifert
>             Fix For: JCR Resource 2.0.8
>
>         Attachments: 100303_slingtest-mapping.zip
>
>
> in our sling CMS-based web projects we've the following scenario:
> * most pages of a website are accessed via HTTP, but some of the via HTTPs (e.g. including forms submitting personal data)
> * at the same time we use the mapping features at /etc/map to shorten the urls for a given domain name
> * in fact we have to configure two mappings for two domain names (one for HTTP and one for HTTPS), pointing to the same start path in JCR
> with this configuration in place the sling ResourceResolver.map method sometimes produces unexpected or incorrect results with the current implementation.
> if the current host name and port does not match with the configured mapping host name and port sling automatically adds protocol, host name and port from the configuration to the result of the map method. but in the case above with multiple mappings for the same start path this cannot produce correct results, because the decision whether the secure or non-secure domain name should be chosen is custom application logic.
> i'm not sure what the best solution is for this problem, because the current implementation makes sense in some way and works well for the simple scenarios. but in complex scenarios with multiple domain mappings it would be more practical to use the map method only for shortening the urls and not for adding the hostname.
> of course it is possible to parse the value of the map method and strip off any hostname returned manually and add an own one, but this seems not "right". and if the cms does a check if the internal url is valid this url can be treated as invalid.
> for easy reproduction of the scenario i've attached a simple test project [^100303_slingtest-mapping.zip]. please deploy it to a sling instance using "mvn install" and then call in the intro page http://localhost:8080/content/slingtest-mapping.html and follow the instructions on the page (two host names have to be added to the local hosts file). the test project contains two templates/jsp components, a configuration at /etc/map with two domain names pointing to the same path and some sample content nodes.
> depending whether a default mapping "/content/-/" is configured in "apache sling resource resolver" the generated links on the "site 1" test page are correct. but the links generate on the "site 2" test pages are wrong.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.