Managing your content with the Adobe Experience Manager Template Editor on next AEM 6.2

In this workbook, Gabriel Walt, Adobe Product Manager, describes how to manage your content with the Adobe Experience Manager Template Editor, a new feature that will be released with the upcoming Adobe AEM 6.2.

template-editor-6.2-yuri-simione-consulenza-adobe-aem-cq5-italia-roma-next 2u consulting - Template editor – Yuri Simione Consulenza Adobe Aem Cq5 Italia Roma, Next 2U Consulting
Posted in Adobe, Consumer, Frontpage, Next 2U Consulting, WCM | Tagged , , , , | Leave a comment

EMC Documentum D2 Vulnerability explained

Last Thrursday EMC released the ESA-2016-034 security bulletin. This is related to a Documentum D2 vulnerability (CVE-2016-0888). As reported in the bulletin by EMC:

Prior to EMC Documentum D2 4.6, many D2 Configuration object types were not properly protected with ACLs. As a result, an authenticated but unprivileged user could then modify or delete such objects.

The severity is high. EMC recommends that all customers should upgrade to D2 4.6 at the earliest opportunity. There is no patch and you have to plan a D2 upgrade to the latest version. The affected versions are all D2 products, from version very old version 3.1 to the more recent version 4.5.

Every upgrade should be planned carefully and you can decide to upgrade your D2 environment later. I strongly advice to complete the D2 upgrade sooner. In next paragraphs I will explain why.

D2 configurations

Documentum D2 is an interesting way to create document management applications based on Documentum, just using configurations. D2 is very, very powerful: it provides many configuration points. With these, a business users can create complex document/content management applications just combining configuration points, virtually without to write a single line of code.

documentum d2 - yuri simione - next 2u consulting - consulenza documentum - italia - romaMy company released some Documentum D2 based applications and we really liked this approach because we configure very complex applications and make our customers satisfied, with a reasonable budget.

The D2 data model, before the version 4.6

One of the easiest ways to learn a new product is to understand how it is implemented. When I started my first Documentum D2 project, I tried to understand the D2 data model and how that works. So, I learned that EMC used a lot of custom object types. I mean, a lot! No wonder: this is a way to work although more than one hundred of custom object types is really a big number!

Most of the D2 and the D2 Plus pack custom object types do not have a supertypeor are not dm_sysobject subtype:

  • This is good because this is an easy way to not inherit useless metadata;
  • This could be really bad, because instances of a custom object type with no supertype cannot be protected using standard ACL.

To create a new custom object type an authenticated user should have a CREATE TYPE privilege or should be a Sysadmin or a Superuser. Only a superuser can create new custom object types with no supertype.

Apart that, every authenticated user could potentially execute DQL queries and discover important information stored in the instances of a object type with no superytpe. Moreover, any authenticated user can execute arbitrary CREATE OBJECT, UPDATE OBJECT or a DELETE OBJECT statements and change what other users created/modified.

One of the most important D2 object types is the d2_documentset_switch: this is the object type that is used to model the configuration matrix where a Documentum D2 developer defines new D2 applications just using a GUI, the Documentum D2 Config application. With Documentum D2 Config, the D2 developer can modify, change the application behavior, adding or removing functionalities to a group of users or for more detailed D2 contexts.

documentum d2 configuration matrix - yuri simione - next 2u consulting - consulenza documentum - italia - roma

The d2_documentset_switch is an example of an object type that has no supertype: instances of this object type cannot be protected with an ACL; every authenticated user can update or delete d2_documentset_switch instances. That has a tremendous security impact: with a simple DELETE d2_documentset_switch OBJECT every user can delete your Documentum D2 applications in few milliseconds. Ok, one can argue that if that happens it will be easy to restore D2 configurations (if the developer exported/saved, of course…). But it is not easy to understand if someone completed one or more more insidious UPDATE d2_documentset_switch OBJECT (…).

The d2_documentset_switch object type is just one of the more than 100 D2 object types and most of them have no supertype or are not a dm_sysobject subtype, so here the problem is the same for all those object types.

documentum d2 object type - yuri simione - next 2u consulting - consulenza documentum - italia - roma

The new D2 data model

The solution to this vulnerability is just one: the D2 4.6 upgrade. A migration tool provided by EMC will help Documentum administrators to migrate the existing data model to the new one. This upgrade is not exactly cheap but you have to consider it as soon as possible. Until then Documentum D2 administrator have only one choice to mitigate this vulnerability: prevent the DQL queries execution by standard users. That is not impossible and this vulnerability could be a business justification to start and complete a Documentum hardening.

Btw, do you have a copy of all D2 configurations?

Posted in ECM, EMC, Frontpage, Next 2U Consulting, Security alert | Tagged , , | Leave a comment

Adobe AEM & Digital Marketing Cloud conferences

adobe-aem-conferences-2016-digtal marketing-yuri simione-cq5- next 2u consulting

The interest on Adobe AEM & Digital Marketing Cloud is growing day by day. That is confirmed by the job posts, by the projects released and shared on GitHub (for example, the fantastic projects released by the Adobe Consulting Services) or to not go too far by the number of the community members I created some years ago: the Adobe AEM & Digital Marketing Cloud group on Linkedin with more than 4.100 registered members.

Another way to discover how the market considers a technology is to find the number and quality of the conferences around the world related to the product or technology. There is a big interest on Adobe AEM & Digital Marketing Cloud: Adobe and independent companies and agencies organize many conferences.

In 2016, Adobe will organize:

The interesting point is that there are many other conferences organized by independent companies and sponsored by Adobe:

  •  Circuit, (July 27 & 28, 2016 Chicago, IL),
  • Evolve, (August 29-31, 2016, San Diego | Hard Rock Hotel),
  • AEM HUB, (to be announced),
  • Connect, formerly known as CQCON, (to be announced),
  • AdaptTo, (to be announced).

Probably I will attend one of these and I will report my experience on my blog, in the Linkedin group or “just” on Linkedin: which conference do you prefer/suggest?

Did I forget other conferences or most important meetup? Let me know in order to update and make this page as a good reference of the Adobe AEM and Adobe Marketing Cloud related events!

You can follow me in Twitter: ,on Linkedin http// or you can subscribe my blog on

Posted in Adobe, Consumer, ECM, Events, Social Networking & Collaboration, WCM | Tagged , , , , , | Leave a comment

QR Code generator component for Adobe AEM / CQ5

I like so much Adobe AEM: it is very easy to customize this product and make our customers happier. Moreover, Adobe AEM is based on a wonderful stack: it is easier to work on a state of art technology: Apache Jackrabbit OAK, Apache Sling, Apache Felix and the most important layer, Adobe AEM are so well integrated and very powerful technologies.

A new customer requirement

A customer asked me to create a new Adobe AEM component to generate on the fly QR Code images. The functional requirement is pretty simple: the author wants to add a QR Code that “renders” the current url page url. Occasionally the author wants to create a QR Code to an external Url or different page. QR Code are very useful because with a Sidekick-Adobe-AEM-Yuri-Simione-Custom component-QR Code--italiano-next 2u-consulenza-next2u.itsmartphone or tablet, everyone can scan the QR Code from a monitor and continue the browsing far from the desktop or far from a digital . In addition, if the end user print the page that contains a QR Code, it will be super fast to scan the QR Code and, again, to continue to surf the same printed information days or months later, without to enter an annoying url. Eventually, QR Code can store more than 4.000 character on a single image:  it is possible to store on a printed page any kind of information, like Sling selectors and parameters used to access the original page, visitor navigation path or detailed information of a specific product showed in the web site.

Why QR Code?

If you think that this is another strange requirement from your digital marketing team, you will probably change idea. QR Code are in some way related to digital marketing because these can connect a casual visitor to a specific page or, better, to a new web site that he or she never knewed or visited before. Think about digital signage in a shop or in a airport. Do you see the point?




If you are, like me, a digital marketer newbie probably still don’t get the importance of  the QR Code technology. Ok, this is not what you should appreciate or love, this is just a an image but probably your digital marketing team will ask you something similar soon. Adobe Experience Manager is used not just to publish sites or to create cool web applications or Html5 based apps for mobile phones or tablets. With AEM your digital marketing team can engage shoppers in large  in a shopping aisle of a shopping center, in the airport, in a public place, using digital signage or digital kiosks. Evantually, do you know that public administrations are using Adobe AEM? Visitors are not just shoppers, casual visitors could be also citizens that are looking for useful information in few seconds just watching a digital kiosks in a public place.

By the way, did you notice the new “Screen” link in the AEM 6 projects console? There are and there will be more features in AEM that integrate digital experiences in phisical stores.


The QR Generator component implementation

This is what my customer was asking. It is not more than that, a new component to create a QR Code, to drag and drop directly into the web page (or to statically include in every page):Yuri Simione - custom Adobe Aem Cq5 component

Of course, he wants that the new component works and can be configured via the new Touch UI interface:


With libraries like ZXing it is very easy to create a QR Code image from a string.  So, the first thing to do is to import one of these libraries as an OSGI bundle.

The good news is that Adobe already provides a similar bundle in the standard implementation. Adobe is using this bundle to publish the url of the authored mobile apps with a QR Code. In the OSGI system console you can easily find this bundle:

QR CODE GENERATOR - Adobe AEM - Yuri Simione

qrcode-to-crxde-lite-adobe-aem-yuri-simione The QR Code of the CRX DE Lite url, on your local AEM instance.

The same bundle is in the “active” state in the publish instance so we don’t have to manually activate that.

The bundle implements a simple servlet that renders a QR Code just passing the “url” parameters to the servlet …url. So, for example, to create a QR Code to the Adobe CRX DE Lite application, one can just enter this url: http://localhost:4502/libs/wcm/mobile/qrcode.png?url=http://localhost:4502/crx/de

With this bundle, the implementation required few steps and, litterally, very few lines of Java code. I just created a new component named qrcode-generator. Here, below, the Java code that I wrote for the component logic:

<%@ page import=",
<%@ include file="/libs/foundation/global.jsp"%>
 final String CODE = "qrcode"; // the qr code property name
 final String WIDTH = "width";
 Node n = currentNode;
 String extension = "." + slingRequest.getRequestPathInfo().getExtension();
 Externalizer externalizer = resourceResolver.adaptTo(Externalizer.class);
 String myExternalizedUrl = externalizer.publishLink(resourceResolver, currentPage.getPath() + extension);
 n.setProperty(WIDTH,100); // default width
<img width="<%=properties.get(WIDTH,"")%>" src="<%= request.getContextPath() %>/libs/wcm/mobile/qrcode.png?url=<%=properties.get(CODE,"")%>"/>


I created the component dialogs for both the Classic and the Touch UI, just using the CRX DE Lite:



One important point is that the standard bundle generates QR Code just for url (not for any kind of text) and only for the urls that are in a whitelist defined as a regex. Url based on the Externalizer service are automatically whitelisted: that’s why I used the Externalizer in the component logic implementation. The


creates a link to the Adobe AEM publish instance. If you need to create QR Code for generic text, you have just to modify the component configuration via the Apache Felix Console, using the menu OSGI >> Configuration:


And that’s it. Now the author can create a new QR Code in few seconds! Watch the new component in action on Vimeo.

The component package

I like to share my Adobe AEM experience and it is a pleasure to do that when many other colleagues do the same, daily. I created a new package that contains the custom component and everything needed to use the new component. Just click on the image below, download the package and try it on your environment (you have to install the package and enable the new coomponent in your pages but I am supposing you know how to do that).


Next steps

It is good to add a configuration to include the Alt text, a Description to the rendered QR Code as per every html <img /> tag. Then it is needed to update the dialogs in order to enable modifications for the new attributes. I am going to complete these changes (just few minutes required usingAEM stack!).

Digital marketing team is composed by “volcanic” people. They are never satisfied and they wants more and more, every day, something diffancy-qr-code-adobe-aem-yuri-simione-generator-custom-component--italiano-next 2u-consulenza-next2u.itferent, something more innovative. In the future they will want someghing like newer and fancy QR Code. We are ready to make our digital marketing team happy because with Adobe AEM you can concentrate “just” on business logic.

If you need more information or if you need a custom AEM implementation, just ask me or to my company, Next 2U Consulting, a consultancy firm based in Rome, Italy.

You can follow me in Twitter: or on Linkedin http// .

Next 2U Consuting - consulenza e formazione EMC Documentum, Adobe AEM CQ5, Roma, Italia, Italiano

Next 2U Consuting - consulenza e formazione EMC Documentum, Adobe AEM CQ5, Roma, Italia, Italiano

Posted in Adobe, WCM | Tagged , , , , , , , | Leave a comment

Content Management repository is a graph – Part I


In October, I attended the GraphConnect 2014 in San Francisco. GraphConnect is a conference and an event organised by Neo Technology, the company behind Neo4J, one of most important NoSql database.

Neo4j is a graph database, a database that uses graph structures with nodes, edges, and properties to represent and store data. A graph database provides a mechanism for storage and retrieval of data that is modeled in means other than the tabular relations used in relational databases. NoSQL databases can be classified in five categories,

  • Column: like Accumulo, Cassandra, Druid, HBase
  • Document: like Clusterpoint, Apache CouchDB, Couchbase, MarkLogic, MongoDB
  • Key-value: like Dynamo, FoundationDB, MemcacheDB, Redis, Riak, FairCom c-treeACE, Aerospike
  • Graph: like Allegro, Neo4J, InfiniteGraph, OrientDB, Virtuoso, Stardog

If you are looking for a new technology to learn or to approach, for sure every NoSQL field is cool enough to require attention (and to provide great visibility in the labour market). Among NoSQL databases, graph databases are the coolest technology. As reported during the GraphConnect conference by Emil Eifrem, founder and Ceo of Neo Technology, “Graphs are eating the world”. This sentence is not just a slogan, instead it describes clearly, what is happening. The image reported below (source confirms that, with no doubts:

The DB-Engines Ranking is a list of database management systems ranked by their current popularity. DB-Engine Ranking algorithms measures the interest to database vendors and database model (as reported in the graph) using: number of mentions on websites, Google Trends, frequency of technical discussions, number of job offers, number of profiles in professional networks, number of Twitter tweets, in which the db system or db model is mentioned. I don’t know how the ranking algorithm works in detail but the graph is clear: graph databases is growing in popularity more than any other NoSQL technologies.

[continue on Linkedin:]

Follow me on Twitter and Linkedin.


Posted in Analytics, Big data, ECM, Enterprise Search, Frontpage, Technologies | Tagged , , , | Leave a comment

APIs for DUMMIES – eBook review – Apigee special edition

Yesterday I downloaded the APIs for DUMMIES ebook. I really liked this book because it in 2 or 3 hours you can read and learn about best practices of REST api best practices.

This is just what we are doing right now and I found many useful and interesting ideas and suggestions.

I like this kind of book: they are not academic, are free (!) and you can learn about best practice without to spend hours to read and to understand the reason why these are best practices.

Without explanations or more details, for sure “you have to believe” that few pages are correct but, in this case, apigee name guarantee all the readers.

In just 36 pages, they are condensed many important points, like:

  • Keep your base URL simple and intuitive
  • Use two base URLs per resource.
  • Keep verbs out of your base URLs. Use verbs just for responses that don’t involve resources (like calculate, language translation, etc)
  • Use HTTP verbs to operate on the collections and elements.
  • (…) keep your API intuitive by simplifying the associations between resources,
  • and sweeping parameters and other complexities under the rug of the HTTP question
  • Regarding error and status code: use HTTP status code but not too much…. Start by using the following 3 codes. If you need more, add them. But you shouldn’t need to go beyond 8. • 200 – OK • 400 – Bad Request • 500 – Internal Server Error
  • If you’re not comfortable reducing all your error conditions to these 3, try picking among these additional 5: • 201 – Created • 304 – Not Modified • 404 – Not Found• 401 – Unauthorized • 403 – Forbidden
  • Never release an API without a version and make the version mandatory.
  • Support partial response by adding optional fields in a comma delimited list.
  • Use limit and offset to make it easy for developers to paginate objects.
  • Consolidate all API requests under one API subdomain.
  • The API Façade Pattern

So, if you have a couple of hours and if you like application development tools and techniques, you have to read this ebook!

Posted in Consumer, Frontpage, Technologies | Tagged , , , | Leave a comment

ESA-2014-046 – Multiple Content Server vulnerabilities fixed

Doumentum 'Yuri Simione' consultancy certified emcAnother day, another fix: someone can think that Content Server has too much vulnerabilities but for sure during these days EMC is working very hard to make his systems more secure.

I appreciate the way EMC is working on vulnerabilities and if you consider how many products EMC Information Intelligence Group is managing, you will agree that security fix is an hard and long task, just considering all the supported platforms where the fix should be tested.

rss security alert for ecm systems like documentum, opentext, alfresco - From Yuri SimioneAs usual, in this blog I report all the security bulletins published by EMC.  An easy way to know more about security is to subscribe this  RSS channel.


Today EMC released a security note identified by the ESA-2014-026 and registered on the Common Vulnerabilities and Exposures as CVE-2014-2506, CVE-2014-2507 and CVE-2014-2508.


The affected systems are Content Server version 6.7, 7.0 and 7.1. EMC stated that even all the “EMC Software: EMC Documentum Content Server all versions prior to 6.7 SP1″ has the same vulnerabilities but it is not clear if this is valid even for 6.6 and prior versions.

[June 9th update: as reported in the the systems affected by these vulnerabilities are all the Content Server versions, even the 6.6.x, 6.5.x and 6.0.x]


For sure EMC strongly recommends all customers upgrade to one of the versions reported below, at the earliest opportunity:

  • EMC Documentum Content Server 7.1 P05 and later
  • EMC Documentum Content Server 7.0 P15 and later
  • EMC Documentum Content Server 6.7 SP2 P14 and later
  • EMC Documentum Content Server 6.7 SP1 P28 and later

EMC strongly recommends all customers upgrade to one of the above versions at the earliest opportunity.

Latest patches solve these three problems:

  • Privilege Escalation  (CVE-2014-2506):Authenticated non-privileged users are allowed to create system objects with super user privileges due to improper authorization checks being performed on these objects. This may potentially be exploited by a malicious attacker to gain unauthorized access to data or to perform unauthorized actions on Content Server.
  • Shell Injection (CVE-2014-2507):Certain methods in Documentum Content Server perform improper validation checks on input arguments. This may potentially be exploited by an authenticated malicious user to conduct shell injection attacks against these methods and perform unauthorized actions on Content Server.
  • DQL Injection (CVE-2014-2508): Certain DQL hints in Documentum Content Server may potentially be exploited by an authenticated malicious user to conduct DQL injection attacks and perform unauthorized database actions.

Posted in ECM, EMC, Frontpage, Security alert | Tagged , | Leave a comment

ESA-2014-024: EMC Documentum Digital Asset Manager DQL Injection Vulnerability

Today EMC announced a security fix to address Blind Documentum Query Language (DQL) Injection vulnerability on Documentum Digital Asset Manager (DAM).

The affected versions are:

  • EMC Software: EMC Documentum Digital Asset Manager 6.5 SP3
  • EMC Software: EMC Documentum Digital Asset Manager 6.5 SP4
  • EMC Software: EMC Documentum Digital Asset Manager 6.5 SP5
  • EMC Software: EMC Documentum Digital Asset Manager 6.5 SP6

logo dam yuri simione documentum emc consultancy

The DAM thumbnail proxy server allows unauthenticated users to query objects using a vulnerable URL query string parameter. A malicious attacker may potentially conduct Blind DQL injection attacks using the vulnerable parameter to infer or modify the database contents.

EMC released a hotfix for DAM 6.5 SP3, 6.5 SP4, and 6.5 SP5. For 6.5 SP6, patch P13 and later contains resolution for this issue.

EMC strongly recommends all customers apply the hotfix or upgrade at the earliest opportunity.

You can subscribe the RSS feeds related to the security alerts published on my blog.

Posted in ECM, EMC, Frontpage, Security alert | Tagged , , | Leave a comment

ESA-2014-026: vulnerability explained

On January 3, 2014 I discovered a vulnerability related to Documentum Content Server that I communicated to EMC during the same day.

On April 11, 2014 EMC published the ESA-2014-026: EMC Documentum Content Server Information Disclosure Vulnerability.

One month after that, in this post, I am going to describe publicly more about this vulnerability, in order to share in which situation and why you should apply latest patches released by EMC.

First of all, this is a Documentum Content Server vulnerability: in a repository, a user with limited privilege, can browse more objects than a standard configuration should permit. The issue is related to the restricted folders configuration option for the dm_user instances.

How to exploit the security bug

Create a new standard Documentum user:


  • user_name equal to HACK,
  • standard privilege set to NONE,
  • default folder /HACK
  • restricted folder /Temp

As reported in the EMC Documentum Content Server Version 7.x Administration and Configuration Guide, the Restrict Folder Access To configuration:

Specifies which folders the user can access. (…).

If no folders or cabinets are specified, the user has access to all folders and cabinets in the repository, depending on the permissions on those cabinets and folders, and depending on folder security.”

In our scenario, the HACK user should access just the objects linked into the /Temp cabinet. Let’s continue to create the environment to prove the vulnerability. With a standard user, create a document in a new folder, for example into the cabinet /SECURITY BUG EXPLOIT. For this document add the BROWSE or more powerful permission to the dm_world alias. I named this document “My personal salary”. I know, I know: for a private document such “My personal salary” I should not add BROWSE permission to dm_world alias but for sure the HACK user should not browse and read my document, because this document is “outside” his restricted folders.


Does the Restricted Folders option work? Yes, let’s test it. In my system the ID of this document is 09001eab80002990. Login into Documentum Administrator, with the HACK user credentials and execute the DQL query reported below: esa-2014-026-documentum-yuri-simione 3

Zero rows returned: Restricted Folders security option works well!

Again, correctly, the execution of the dump object fails:


Error processing command:DfException:: THREAD: tomcat-http–19; MSG: [DM_SYSOBJECT_E_NOT_IN_RESTRICTED_FOLDERS]error: “The sysobject (’09001eab80002990′) is not in any folder (or subfolder of the folder) specified in the user’s restricted_folder_ids.”; ERRORCODE: 100; NEXT: null

So Restricted Folders configuration works well but in some cases there is a….


The problem is that HACK user can browse more documents than permitted if he or she uses the not folder keywords.

If the HACK user executes DQL using the not folder(…) statement as reported below, he/she can browse the metadata of the document outside his restricted folders and he/she can browse (or read, write, delete, depending on permission add to the documents for the dm_world alias) more data:

esa-2014-026-documentum-yuri-simione 4

So, if  ”your” repository is  configured to use Restricted Folders option for some special users, you probably should upgrade the Content Server at the earliest opportunity.

Anyway, if the end-user repository is a Global Registry repository, you should upgrade all your content servers! You know that there is a special user configured to work just on some Restricted Folders: the dm_bof_registry user.


If the end-user repository is a Global Registry repository, upgrade your content servers as soon as you can, because, as you probably know, there are some ways to decrypt the dm_bof_regsitry password stored in the file: with this user credential someone could potentially access to all the documents stored in the repository protected with the dm_world / BROWSE permission. It’s a good practice to use a dedicated repository for the Global Registry and this vulnerability justify one more time why.


To solve this issue you should upgrade to one of the versions listed below:

  • EMC Documentum Content Server version 7.1 P02 and later
  • EMC Documentum Content Server version 7.0 P13 and later
  • EMC Documentum Content Server version 6.7 SP2 P13 and later
  • EMC Documentum Content Server version 6.7 SP1 P26 and later
Posted in Blogroll, ECM, EMC, Frontpage, Next 2U Consulting, Security alert | Tagged , , , | Leave a comment

ESA-2014-045 Documentum D2 Vulnerability

Today EMC released a note related to a vulnerability that affect the Documentum D2 client.

The CVE vulnerability identifier is CVE-2014-2504 (score 8.5). The affected products are

  • EMC Documentum D2 3.1 and patch versions
  • EMC Documentum D2 3.1SP1 and patch versions
  • EMC Documentum D2 4.0 and patch versions
  • EMC Documentum D2 4.1 and patch versions
  • EMC Documentum D2 4.2 and patch versions

In particular EMC Documentum D2 may be vulnerable to an arbitrary Documentum Query Language (DQL) query execution vulnerability because there are methods and a D2FS web service method that may allow an authenticated user to execute arbitrary DQL queries with superuser privileges. For this reason an upgrade to the latest patch is strongly recommended.

The following products contain the resolution to this issue

  • EMC Documentum D2 3.1P20
  • EMC Documentum D2 3.1SP1P02
  • EMC Documentum D2 4.0P10
  • EMC Documentum D2 4.1P13
  • EMC Documentum D2 4.2P01
Posted in EMC, Security alert | Tagged , , | Leave a comment