Expand my Community achievements bar.

Don’t miss the AEM Skill Exchange in SF on Nov 14—hear from industry leaders, learn best practices, and enhance your AEM strategy with practical tips.
SOLVED

How to manage login session in cq5 publish

Avatar

Level 4

I have the below requirement could someone provide inputs as what could be done

1>I need a mechanism for login of visitor in publish instance  so this needs a session mechanism in cq5.

2>Secondly  I need to get data from 3rd party server from cq5 pages.

 

So it means I need to maintain session in cq5 and as well in 3rd party server how do I achieve it using cq5?

3>I have to upload assets (pdf ,word doc, images )of 10 GB to CQ5 what is best recommended approach any suggestions

1 Accepted Solution

Avatar

Correct answer by
Employee

srinivasc11017710 wrote...

 

I have the below requirement could someone provide inputs as what could be done

1>I need a mechanism for login of visitor in publish instance  so this needs a session mechanism in cq5.

2>Secondly  I need to get data from 3rd party server from cq5 pages.

So it means I need to maintain session in cq5 and as well in 3rd party server how do I achieve it using cq5?

3>I have to upload assets (pdf ,word doc, images )of 10 GB to CQ5 what is best recommended approach any suggestions

 

Hi,

Can you give details of this use case?

Do you want the following:

1. User logs in to AEM

2. User uploads an asset from a 3rd party System into AEM, the 3rd Party system requires the user to login as well

Login is straightforward as described above.

As mentioned you should keep AEM stateless. So what the ecommerce functionality does is to start a session and send a reference of this session to AEM, which is stored in a cookie. In this way, AEM can remain stateless, when data is required, a call is made to the commerce engine with the cookie, identifying the commerce session.

If you have two publish instances, then these will not be clustered(as it is not supported). What are you planning to do with the content on the publish instances? Have you thought about how you will synch it across both publish instances?

 

Regards,

Opkar

View solution in original post

7 Replies

Avatar

Level 10

To handle login - you can build a site that requires a user to login and you can build a custom authentication handler. Here are some useful links:

1 - https://helpx.adobe.com/experience-manager/using/secure_sites.html - there is a session by Justin at the start of this article on secure AEM web sites - i highly suggest watching it. 

2- For AEM 6.x - you can build a custom OAK login module. See: https://helpx.adobe.com/experience-manager/using/oak-login.html

To handle assets - you upload them to the AEM DAM. See the DAM docs here: https://docs.adobe.com/docs/en/aem/6-1/administer/content/assets.html

You can also programmatically upload assets - see: https://helpx.adobe.com/experience-manager/using/uploading-files-aem1.html

You use the AssetManager API to programmatically upload assets. 

 

Hope this helps 

Avatar

Level 10
  • most of application I have seen does not require sessions to be maintained offcourse you might need to authorize for secured data.   Refer the aem ecommerce implementation for session handling.
  • For bulk upload assets make sure workflow listener are turned off. After upload run the workflow in batches.

Avatar

Level 10

1. AEM should be kept stateless ! Any session mgmt is always better to keep it outside of your AEM. 

    Even if you want session in AEM, you can use httpsession and manage it but you will have to worry about sticky sessions and other things which might affect your site performance. Please rethink before you make AEM as statefull !

2. To connect to 3rd party service, create a service in your bundle and you can connect to the external service via rest way or other ways very similar to other web applications.

3. As @scott mentioned, you can use damadmin or APIs to upload the assets. However when dealing with heavy assets make sure you configure your repository based best practices. May be storing media files outside your repository etc..

 

Regards,

Lokesh

Avatar

Level 3

don't rely on http session based data for rendering your components if you're using dispatcher in your setup.

if performance is the concern on DAM asset upload, use a webdav client (e.g. cadaver) to connect to AEM.

Avatar

Level 4

Thanks for the input.

Now i have 2 publish instance.   So i have http session when user logs in it will hit one of the publish server.

Now to maintain the session with the same publish instance,how do we go about need more inputs

Avatar

Employee

srinivasc11017710 wrote...

Thanks for the input.

Now i have 2 publish instance.   So i have http session when user logs in it will hit one of the publish server.

Now to maintain the session with the same publish instance,how do we go about need more inputs

   

 

 

Enable sticky connections on your load balancer, so that the user always hits the same publish instance.

Avatar

Correct answer by
Employee

srinivasc11017710 wrote...

 

I have the below requirement could someone provide inputs as what could be done

1>I need a mechanism for login of visitor in publish instance  so this needs a session mechanism in cq5.

2>Secondly  I need to get data from 3rd party server from cq5 pages.

So it means I need to maintain session in cq5 and as well in 3rd party server how do I achieve it using cq5?

3>I have to upload assets (pdf ,word doc, images )of 10 GB to CQ5 what is best recommended approach any suggestions

 

Hi,

Can you give details of this use case?

Do you want the following:

1. User logs in to AEM

2. User uploads an asset from a 3rd party System into AEM, the 3rd Party system requires the user to login as well

Login is straightforward as described above.

As mentioned you should keep AEM stateless. So what the ecommerce functionality does is to start a session and send a reference of this session to AEM, which is stored in a cookie. In this way, AEM can remain stateless, when data is required, a call is made to the commerce engine with the cookie, identifying the commerce session.

If you have two publish instances, then these will not be clustered(as it is not supported). What are you planning to do with the content on the publish instances? Have you thought about how you will synch it across both publish instances?

 

Regards,

Opkar