March 30, 2020
Estimated Post Reading Time ~

OSGi Configuration : AccountManagementService API in AEM

In this blog, we go over AccountManagemntService API in AEM.

In the Felix console, there are three configurations related to “cq.account” in AEM.

Component com.adobe.cq.account.api.AccountManagementService

Fig - com.adobe.cq.account.api.AccountManagementService

Detailed explanation:
The validity period of the manager token: The value of this property shows that the token for reset password or account-confirmation mail has a validity of 600 seconds. You can change the value of it as per the requirement.

Node Name: The “requestnewaccount” is a node in crx having the values of email format to request for a new account. So if there is any customization in email format,you can create a new node and change its properties value.

Fig - requestnewaccount node in crx

Node Name: The “requestnewpwd” is having all the values in the email format for request for a new password mail.

Fig - requestnewpwd node in crx

Component com.adobe.cq.account.impl.AccountManagementServlet

Fig - com.adobe.cq.account.impl.AccountManagementServlet

Detailed explanation:
Node Name: The “informnewaccount” is having all the values in the email format to confirm the user about the creation of the account.
Node Name: The “informnewpwd” is having all the values in the email format to confirm the user about changing the password successfully.

Points to remember:
All the nodes specified above are under a specific path “/etc/security/accountmgr/jcr:content”. If any of the node names or properties need to be changed, all modifications need to be done under this path only, , because this path is hard-coded in the “AccountManagementService” API in AEM.
The sling:resourceType (cq/security/components/accountmanager/mail) should remain same for the new node.

com.day.cq.security.impl.account.CqAccountManagerFactory.name

Fig - com.day.cq.security.impl.account.CqAccountManagerFactory.name

This configuration was in use when AccountManager API used to work. But in AEM 6.2 ,it has been deprecated. So this configuration is no longer in use from AEM 6.2 onward.

Example: Let’s take an example of changing the format of request for a new account Mail. So I am creating a new node named “requestaccount” and update this name in configuration Manager of Felix console.

Fig - requestaccount node in crx

When I register a new user, a mail is sent with a new format.

Fig - new mail format

So how it is done!!

Things to remember while using AccountManagementService API in AEM
The requestAccount() method has two steps internally
Create a user in AEM in disabled mode.
Send an email to the user for account confirmation.
This method returns true only when these two steps are successfully performed. Sometimes there is a problem in sending mail and it returns false.

In the same way resetPassword() method also internally execute two steps:
Reset Password in the AEM instance. Send a confirmation mail to the user.
This method returns true only if these two steps are executed successfully.

Note: It is important to note that the correct email Configurations are important to deal with this API.

Here is the git repo:
https://github.com/sgaem/accountManegementService.git

Note: Don’t forget to remove “POST” from filter methods from “Adobe Granite CSRF filter” as we are making a lot of POST requests in this project so we need to allow these.


By aem4beginner

No comments:

Post a Comment

If you have any doubts or questions, please let us know.