Expand my Community achievements bar.

Dive into Adobe Summit 2024! Explore curated list of AEM sessions & labs, register, connect with experts, ask questions, engage, and share insights. Don't miss the excitement.
SOLVED

Where do I placed my OSGI config (org.apache.sling.security.impl.ReferrerFilter) so it's picked up by both author and publisher?

Avatar

Level 8

as above.

-------

situation:

I want to customize Sling referrer config (org.apache.sling.security.impl.ReferrerFilter) in all environments (author and publishers). I created an XML file with custom config. Thanks

-------

Tests/observations:

1. As a test, I made copies my XML file in these 2 paths
- ui.apps/src/main/content/jcr_root/apps/mysite/config
- ui.apps/src/main/content/jcr_root/apps/mysite/configs/config

After building the code package in my local mac, I then uploaded and installed the code package in the sandbox author but Sling referrer does not show my custom config.
On the sandbox publisher, it's the same situation.

2. Same a test1 except that I removed the XML in the paths mentioned above and place it in this location instead
- ui.apps/src/main/content/jcr_root/apps/mysite/configs/config/config.author

This time it works. I can see my custom config in sandbox author.

3. Same a test1 except that I removed the XML in the paths mentioned above and place it in this location instead
- ui.apps/src/main/content/jcr_root/apps/mysite/configs/config/config.publish

This time it works. I can see my custom config in sandbox publisher.

4. In my local author AEM instance, I can placed the XML file in -any- paths mentioned above and it will work fine.

------------

This is a copy of my OSGI config.

➜ cat org.apache.sling.security.impl.ReferrerFilter.xml

<?xml version="1.0" encoding="UTF-8"?>
<jcr:root xmlns:sling="http://sling.apache.org/jcr/sling/1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0"
jcr:primaryType="sling:OsgiConfig"
allow.hosts="[mysite.my-sso-provider.com,mysite-sandbox.my-sso-provider.com]"/>

-------

background info: We are currently on 6.4.x. We are testing our custom code so we can upgrade to 6.5.x. AMS has provided a sandbox environment (1 author, 1 publisher, 1 dispatcher, 1 load balancer and cloudfront) for us to play around with.

 

1 Accepted Solution

Avatar

Correct answer by
Community Advisor

keep it under config folder it will be picked by both author and publish .

if its environment specific then keep it like below-

 

config.dev- it would be picked by both dev author and publish

View solution in original post

6 Replies

Avatar

Level 8

Hi @jayv25585659 

If you want custom OSGI configs to picked up from runmodes then precedence will be as mentioned below

 

irrespective of environments or author/publisher then put config xml under below path.

/project/runmodes/config

 

specific to environment 

/project/runmodes/config.stage

/project/runmodes/config.prod

 

specific to environment + author/publisher

/project/runmodes/config.stage.author

/project/runmodes/config.stage.publish

/project/runmodes/config.prod.author

/project/runmodes/config.prod.publish

 

Hope this helps!

Avatar

Level 8
can you please explain how the "project" path "translates" to my sample path (example: ui.apps/src/main/content/jcr_root/apps/mysite/config)? Thank you

Avatar

Level 8
@jayv25585659 i didn't get above mentioned question, could you please elaborate.

Avatar

Level 8
I do not have a runmodes folder in my maven project. and this Adobe document (https://helpx.adobe.com/au/experience-manager/6-3/sites/deploying/using/configuring-osgi.html) on customizing OSGI did not use a "runmodes" folder.

Avatar

Level 8
@jayv25585659 keeping all OSGI config xml under specific folder(ex: "runmodes") is good practice from project structure & maintainability perspective instead putting it under /project/

Avatar

Correct answer by
Community Advisor

keep it under config folder it will be picked by both author and publish .

if its environment specific then keep it like below-

 

config.dev- it would be picked by both dev author and publish