AEM ClientContext doesn't recognize me as logged in | Community
Skip to main content
Level 8
January 6, 2016
Solved

AEM ClientContext doesn't recognize me as logged in

  • January 6, 2016
  • 8 replies
  • 1402 views

I have a custom identity provider that extends ExternalIdentityProvider and I have everything configured to where I can successfully login to AEM on author/publish/dispatcher using a user from the API.  The user is also synced with all of the custom properties.  In my authenticate method, I have the following

@Override public ExternalUser authenticate(Credentials credentials) throws ExternalIdentityException, LoginException { SimpleCredentials simpleCredentials = (SimpleCredentials)credentials; JSONObject login = UserService.login(simpleCredentials); Map<String, Object> userProperties = UserHelper.getUserProperties(login); if (userProperties.containsKey("customProperty")) { log.info("** USER IS LOGGED IN **"); return createIdentity(simpleCredentials.getUserID(), userProperties); } throw new LoginException("Error Logging In"); }

This successfully is executed and the info log is output correctly.  I see the user created in CRXDE in it's correct location also.

I then have a filter that checks for a specific location under the page path, let's just says it's "/content/site/en" and that the extension is HTML, if those conditions are true, i check to see if the user is logged in using the following code

public static Boolean isLoggedIn(SlingHttpServletRequest request) { logger.debug("** Checking if User is logged in **"); User user = request.getResourceResolver().adaptTo(User.class); try { if (user == null || user.getID().equals("anonymous")) { logger.debug("** User is NOT logged in **"); return false; } logger.debug("** User IS logged in: " + user.getID() + " **"); return true; } catch(Exception e) { return false; } }

My log is successfully outputting that the user is logged in on every page load.

If I then check the CQ_Analytics.ProfileDataMgr object, it does NOT recognize me as logged in.  This is the output

data: Object authorizableId: "anonymous" authorizableId_xss: "anonymous" avatar: "/etc/designs/default/images/social/avatar.png" formattedName: "anonymous" formattedName_xss: "anonymous" isLoggedIn: "false" isLoggedIn_xss: "false" path: "/home/users/W/WiGREN12Dh6nHZhH0v_6/profile"

However, if I look at the "initProperty" object, it has all of my custom profile properties and also specifies that i'm logged in

initProperty: Object AUTO_FILL_CON: "Y" AUTO_FILL_CON_xss: "Y" AUTO_FILL_REQ: "Y" AUTO_FILL_REQ_xss: "Y" AUTO_FILL_SHP: "Y" AUTO_FILL_SHP_xss: "Y" AUTO_FILL_TPB: "N" AUTO_FILL_TPB_xss: "N" BOL_DEFAULT_TEMP: "" BOL_DEFAULT_TEMP_xss: "" BOL_PREVIOUS: "Y" BOL_PREVIOUS_xss: "Y" CALENDAR: "Y" CALENDAR_xss: "Y" CHG_CALC_LIST: "Y" CHG_CALC_LIST_xss: "Y" COMDTY_DISPLAY_OPT: "A" COMDTY_DISPLAY_OPT_xss: "A" CONTACT_AUTOLOAD: "D" CONTACT_AUTOLOAD_xss: "D" accountNumber: "005012" accountNumber_xss: "005012" authorizableId: "005012" authorizableId_xss: "005012" avatar: "http://www.gravatar.com/avatar/email@email.com?d=mm&s=32&r=g" firstName: "NAME" firstName_xss: "NAME" formattedName: "NAME NAME" formattedName_xss: "NAME NAME" isLoggedIn: true isLoggedIn_xss: "true"

Why cannot access the user information on the profile object?  This is preventing me from grabbing the information i need for displaying user information on the web site.

This is AEM 6.1 with all hot fixes.

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 leeasling

I figured it out.  After looking at the Geometrixx code, I had to add the following on my form submission

CQ_Analytics.ProfileDataMgr.clear();

Then when the page reloads, the profile is correct.

8 replies

smacdonald2008
Level 10
January 6, 2016

If you create a new AEM user (from siteadmin)- are you seeing this issue? 

leeaslingAuthor
Level 8
January 6, 2016

Yes.

data: Object authorizableId: "anonymous" authorizableId_xss: "anonymous" avatar: "/etc/designs/default/images/social/avatar.png" formattedName: "anonymous" formattedName_xss: "anonymous" isLoggedIn: "false" isLoggedIn_xss: "false" path: "/home/users/W/WiGREN12Dh6nHZhH0v_6/profile" initProperty: Object authorizableId: "testuser" authorizableId_xss: "testuser" avatar: "/etc/designs/default/images/social/avatar.png" familyName: "Asling" familyName_xss: "Asling" formattedName: "Lee Asling" formattedName_xss: "Lee Asling" givenName: "Lee" givenName_xss: "Lee" isLoggedIn: true isLoggedIn_xss: "true" path: "/home/users/group/UaSczsMtb18XGcQ3o0Tq/profile"
leeaslingAuthor
Level 8
January 6, 2016

It also does this using Geometrixx Outdoors.

Sham_HC
Level 10
January 6, 2016

Clearing the browser cookies with the real users should resolve your issue. If not file a support request by repeat the test case and attach the har file, all log file from webserver,dispatcher,publisher.  Steps to generate har file at https://help.tenderapp.com/kb/troubleshooting-your-tender-site/generating-an-har-file

leeaslingAuthor
Level 8
January 6, 2016

Sham HC wrote...

Clearing the browser cookies with the real users should resolve your issue. If not file a support request by repeat the test case and attach the har file, all log file from webserver,dispatcher,publisher.  Steps to generate har file at https://help.tenderapp.com/kb/troubleshooting-your-tender-site/generating-an-har-file

 

I'm using an incognito window, so browser cookies are definitely not the issue.  I guess I'll submit a ticket, but I really need someone to help faster than what they respond so i'll keep an eye out here too.

smacdonald2008
Level 10
January 6, 2016

I have never seen this issue - so it may be some sort of bug that Sham suggest. 

leeaslingAuthorAccepted solution
Level 8
January 6, 2016

I figured it out.  After looking at the Geometrixx code, I had to add the following on my form submission

CQ_Analytics.ProfileDataMgr.clear();

Then when the page reloads, the profile is correct.

Sham_HC
Level 10
January 6, 2016

leeasling wrote...

I figured it out.  After looking at the Geometrixx code, I had to add the following on my form submission

  1. CQ_Analytics.ProfileDataMgr.clear();

Then when the page reloads, the profile is correct.

 


That is the reason I asked first to clear the browser cookie to make sure not missed this.