有没有办法在 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/