【问题标题】:AEM - get current UserIdAEM - 获取当前用户 ID
【发布时间】:2015-10-14 17:41:51
【问题描述】:

我的 AEM 世界中有一些代码对 restlet 服务进行表单 ajax 调用。我想知道的是获取当前登录的UserId的代码是什么?该页面的 session=false。

AEM 是否有我可以提取的 cookie? 在表单中,我有一个名为 cq_csrf_token 的隐藏字段,但我没有看到它与 CRXDE 中的任何内容匹配。

如果您知道听到您的意见会很酷。

【问题讨论】:

  • 如果有任何帖子对您有帮助,请标记为解决方案

标签: session token aem


【解决方案1】:

您确定用户已登录吗? 您可以从 Session 对象中获取当前登录的用户:

Session session = resourceResolver.adaptTo(Session.class);
session.getUserID();

另请参阅此 Stackoverflow 帖子:https://stackoverflow.com/a/22549922/1377893

【讨论】:

    【解决方案2】:

    如果没有用户登录,AEM 会将访问内容的用户视为“匿名”用户。

    试试这个:

    import javax.jcr.Session;
    import org.apache.jackrabbit.api.security.user.Authorizable;
    import org.apache.jackrabbit.api.security.user.UserManager;
    ...
    UserManager userManager = resourceResolver.adaptTo(UserManager.class);
    Session session = resourceResolver.adaptTo(Session.class);
    log.info("User="+session.getUserID());
    
    or..
    
    Authorizable auth = userManager.getAuthorizable(session.getUserID());
    log.info("\n--- User,  
    Principal="+auth.getID()+","+auth.getPrincipal().getName());
    

    应打印用户名。默认情况下,如果用户未登录,您将看到“匿名”用户。

    【讨论】:

      【解决方案3】:

      如果你想在java中获取用户,你可以使用Resource Resolver API

      Session session = resourceResolver.adaptTo(Session.class);
      session.getUserID();
      

      如果你想在前端获取用户,你可以使用 Profile Data Manager API

      <script>
      CQ_Analytics.ProfileDataMgr.data 
      </script>
      

      将为您提供有关当前登录用户的信息。

      对于您的第二个问题,request.getCookies() 会将所有 cookie 作为 Cookie[] 提供给您。 希望这会有所帮助

      【讨论】:

        【解决方案4】:

        您可以通过将以下代码放入 JSP 中来查看用户 ID。

        <%@include file="/libs/foundation/global.jsp"%>
        <%= resourceResolver.adaptTo(Session.class).getUserID() %>
        

        顺便说一句,CSRF 令牌是为了保护站点免受跨站点请求伪造攻击。

        更多详情请参阅此页面:https://docs.adobe.com/docs/en/aem/6-2/develop/security/csrf-protection.html

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-05-12
          • 1970-01-01
          • 1970-01-01
          • 2018-10-03
          • 2022-01-22
          • 2017-04-26
          相关资源
          最近更新 更多