CQ Hybris connector always adds to anonymous user cart instead of current logged in CQ user cart. | Community
Skip to main content
Level 2
October 16, 2015
Solved

CQ Hybris connector always adds to anonymous user cart instead of current logged in CQ user cart.

  • October 16, 2015
  • 3 replies
  • 1184 views

Hi Guys,

I am using CQ-Hyrbis connector version 5.6.2 ( cq-commerce-hybris-impl-5.6.2.jar ) and Hybris version is 5.0.4.

When ever I add any thing to cart it always add to anonymous user cart instead of current logged in CQ user cart.

I suspect there is some issue in BasicAuthHandler implemented in connector which is not authenticating users correctly and it always gets anonymous user session from Hybris.

Also authenticateUser method implementation is not calling any web service that actually authenticates user instead it just returns credentials.

    public Map<String, String> authenticateUser(String username, String password) {
      
        final Map<String, String> authData = new HashMap<String, String>();
        authData.put(KEY_SESSION_USERNAME, username);
        try {
            authData.put(KEY_PASSWORD, crypto.protect(password));
        } catch (CryptoException e) {
            log.error("Could not encrypt password!");
            return null;
        }
        return authData;
    }

Appreciate if any one can give some pointers to fix the issue.

Thanks,

Madhav

This post is no longer active and is closed to new replies. Need help? Start a new post to ask your question.
Best answer by Sham_HC

AFAIK you need custom sling authentication handler at your project to convert anonymous cart to authenticated user.

3 replies

Adobe Employee
October 16, 2015

Madhav,

If you are using CQ-Hybris Package 5.6.200, please look into OAuthHandler which is the primary AuthenticationHandler which is involved in Authenticating User's (authenticateUser) and Authenticating Sessions (authenticateSession).

The connector currently doesn't transfer a cart from a anonymous user to a authenticated user. To implement this functionality you would need to extend OauthHandler.authenticateUser() to pass in the JSESSIONID of the Hybris Session from DefaultHybrisService.signUp (which also needs to be extended).

Furthermore, make sure to extend OAUthHandler.authenticateSession() to pass the sessionId as JSESSIONID into header of the request.

Cheers

V

Level 2
October 16, 2015

Hi Varun,

Thanks !

Can you please post some code snippets if you have, it would be really helpful.

Thanks,

Madhav

Sham_HC
Sham_HCAccepted solution
Level 10
October 16, 2015

AFAIK you need custom sling authentication handler at your project to convert anonymous cart to authenticated user.