java - 创建访客 session

标签 java session aem

有没有办法在 AEM 中创建访客 session ?

我们的项目将是一个基于 AEM 构建的电子商务网站,我们需要跟踪传入访客的 session 并从中生成 token ,以防购物车上的商品被保存。我们需要跟踪此访客 session / token ,以便万一用户决定登录我们的网站来结帐这些商品,后端服务可以根据 session / token 映射购物车的所有权。

最佳答案

默认情况下,如果用户未登录并查看内容,AEM 会在内部将用户记录为“匿名”,您可以将其视为访客。

您可以通过以下方式获取该值:

 import org.apache.jackrabbit.api.security.user.Authorizable;
 import org.apache.jackrabbit.api.security.user.UserManager;
 import org.apache.sling.api.resource.ResourceResolver;
 import javax.jcr.Session;
 ...
 UserManager userManager = resourceResolver.adaptTo(UserManager.class);
 Session session = resourceResolver.adaptTo(Session.class);

 // Getting the current user                        
 Authorizable auth = userManager.getAuthorizable(session.getUserID());
 log.info("\n--- User, Principal="+auth.getID()+","+auth.getPrincipal().getName());

 // Do not try to get the token if no user logged in - anonymous
 if (auth.getID().equals(ANONYMOUS_USER)) {
     // Write your logic here        
 } else {
     // User logged
 }

关于java - 创建访客 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34916446/

相关文章:

java - 如何在 Spring Boot 中注册和使用 jackson AfterburnerModule?

java - 使用 flavor 维度时设置 Android applicationId 的正确方法是什么?

跨端点的 Java websockets 共享 session

php - 警告 : session_destroy()?

aem - 通过 sling 重命名用户

java - AEM 6.1 文档中的非常基本的示例不起作用

java - 如何使用Scanner检查用户输入是否为整数?

java - 将字符串添加到 TreeSet<String> 时出现 NullPointerException

javascript - 在 nowjs 中运行不同的实例

regex - 如果在字符串中找到 2 个不同的子字符串中的任何一个,Adobe CQ5 正则表达式将拒绝整个字符串