AEM 6.2 Released

It looks like AEM 6.2 has been officially released to the public.

Loni Stark, Adobe’s Senior Director of Strategy & Product Marketing has release a blog post about new features in AEM 6.2, while the AEM Marketing Cloud website also has details on some of the new AEM features.

Here are some links for the AEM 6.2 Release Notes, and for those looking to upgrade, here’s the Upgrading to AEM 6.2 documentation.

Posted in AEM | Tagged , , | Leave a comment

AEM Dispatcher and Vanity URLs

One of the problems that AEM had with vanity URLs was that for each vanity URL there needed to be a filter rule that allowed access to the vanity URL in the Dispatcher. This meant that a content author could create a vanity URL and publish it, but it was not available without updates to the Dispatcher and a restart of the web server.

However recent Dispatcher versions (since 4.1.9 I think), there’s a new /vanity_urls setting that enables the dispatcher to get a list of vanity urls from the Publish instance and allow these requests if the request fails the Dispatcher filter (see Enabling Access to Vanity URLs for more info). However there’s a few things that need to be done in order to set this up correctly:

  • Download and install the VanityURLS-Components from Package Share if it’s not already installed on your system (Note:  This needs to be installed on your Publish instance)
  • Go to the user admin of your Publish instance and allow ‘Read’ permission to /libs/granite/dispatcher/content/vanityUrls for the ‘everyone’ group
  • Add a filter rule in the dispatcher to allow the vanity URL to be called on Publish instance:
    /0100 { /type "allow" /url "/libs/granite/dispatcher/content/vanityUrls.html" }
  • Add a caching rule to prevent caching of this URL:
    /0001 { /type "deny" /glob "/libs/granite/dispatcher/content/vanityUrls.html" }
  • Add the vanity_urls configuration to the farm:
    /vanity_urls {
        /url "/libs/granite/dispatcher/content/vanityUrls.html"
        /file "/tmp/vanity_urls"
        /delay 300
  • Restart your webserver

It’s worth noting that the file defined at the /file setting is not automatically created\updated at the time interval set at /delay, but only when a request is made that fails the /filter rules of your Dispatcher. On fail, it checks to see if the file is there – if it’s not there then genrate and use it, otherwise if it is there and is not older that /delay seconds use it, or finally if it it is older than /delay seconds update it from the Publish instance and then use it.

I hope this helps anyone having trouble getting this working as expected.

Posted in AEM | Tagged , , | 13 Comments

Tips: Debugging Dispatcher Authorisation Issues

While working on client sites and delivering AEM training, occasionally the dispatcher would not be caching content as expected.  For example, when setting up a default dispatcher and trying to cache Geometrixx Outdoors pages, I would get the following output in the log:

request contains authorization
cache-action for [/content/geometrixx-outdoors/en.html]: NONE

The simple and quick solution for this is to allow caching of authorised content with the dispatcher setting:

/allowAuthorized "1"

However this setting now allows caching of secure content, which may be a security concern.  My thoughts were along the lines that Geometrixx Outdoors allows logins, so for some reason all requests are returning the authorised header, and therefore telling the dispatcher not to cache the request without this setting.

But on a current implementation I’m working on, there is no login or secured content and the dispatcher is still telling me that the request contains authorization and is not caching.

It turns out that the culprit was my browser. I had the Author interface open in one tab, and the published content in another tab. The browser was sending the authorisation tokens from the Author instance to the Dispatcher, as it’s all the same machine (my local development server) in the same browser session. After opening the dispatcher request in an incognito tab, the authorisation header was not being sent, and the dispatcher was caching as expected.

So remember, don’t simply set /allowAuthorized to “1” in order to solve an authorisation problem unless you actually have secured content that you want to cache – there may be other reasons your dispatcher is thinking your request contains authorisation headers.

Posted in AEM, Tips | Tagged , | 2 Comments

AEM 6.1 Released

As some of you may be aware, AEM 6.1 has been made available. Click this link for the AEM 6.1 Release Notes, but here’s a quick rundown of some of the nice additions in this release:

  • Improved Cross-Site Request Forgery (CSRF) protection
  • Cold standby topology
  • Improved query and indexing management
  • Sightly improvements (check out Feike Visser’s blog post for more details)
  • Transient workflows
  • Improved TouchUI interface
  • Improved tool extensions for Eclipse and Brackets

There have also been updates made with integrations with other Adobe Marketing Cloud technologies such as Analytics, Target and Campaign, as well as updates to the MSM, Commerce, and Screen Add-Ons, and also to AEM Apps and AEM Forms.

One of my favourites updates though has to be the Responsive Layout functionality of AEM Sites. This allows the content author to not only change the layout of components on a page while snapping to a responsive grid, it also allows the author to give the same component different layouts depending on the device of the end user. With the use of smartphones and devices taking over desktop browsing, this is a real advantage to the business who can now update specific device layouts without needing to go through a development cycle for CSS updates.

Posted in AEM | Tagged , , , | Leave a comment

Tip: Adding Packages into the AEM Jar-file

I came across this post today on Adding Packages into the AEM Jar-file by Feike Visser from Adobe on customising the quickstart jar file to include additional packages.

I can see this being very useful for creating startup jars including SP1, hot fixes, AEM Forms and any other mandatory requirements you might have for a particular project.  A time saver indeed if you need to deploy to multiple environments.

Posted in AEM, Tips | Tagged , | Leave a comment