Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Session AEM-获取当前用户ID_Session_Token_Aem - Fatal编程技术网

Session AEM-获取当前用户ID

Session AEM-获取当前用户ID,session,token,aem,Session,Token,Aem,在我的AEM世界中,我有一些代码可以对restlet服务进行表单ajax调用。我想知道的是获取当前登录用户ID的代码是什么?该页的session=false AEM有一块饼干可以让我吃吗? 在表单中,我有一个名为cq_csrf_token的隐藏字段,但我没有看到它与CRXDE中的任何内容匹配 如果你知道听到你的意见会很酷 您确定用户已登录吗? 您可以从会话对象获取当前登录的用户: Session session = resourceResolver.adaptTo(Session.class);

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

AEM有一块饼干可以让我吃吗? 在表单中,我有一个名为cq_csrf_token的隐藏字段,但我没有看到它与CRXDE中的任何内容匹配


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

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

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

也见此堆栈溢出帖子:

如果没有用户登录,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());

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

如果您想在java中获取用户,您可以使用用户资源解析程序API

Session session = resourceResolver.adaptTo(Session.class);
session.getUserID();
如果您想让用户进入前端,可以使用配置文件数据管理器API

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

CQ_Analytics.ProfileDataMgr.data
将为您提供有关当前登录用户的信息

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

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

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

顺便说一句,CSRF令牌用于保护站点免受跨站点请求伪造攻击


有关更多详细信息,请参阅本页:

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