如何在aem中更改特定组的登录页面?

问题描述 投票:0回答:1

如何更改特定组的登录页面。

例如,我有一个组DAM用户,我只希望这个组重定向到特定的登录页面,而不是所有组,它们具有ROOT MAPPING中提到的标准登录页面。

aem
1个回答
0
投票

您必须编写自定义代码才能实现此目的。如果您正在使用/扩展AuthenticationHandler,那么您可以查看实现AuthenticationFeedbackHandler,您可以在重定向上提供自定义实现。另请参阅DefaultAuthenticationFeedbackHandler

您可以拥有一个提供基于组的重定向映射和/或默认重定向的服务/配置,以便成功使用UserManager API来登录用户的实例,并从中获取组信息。用它来处理成功的重定向。

final Session adminSession = adminResolver.adaptTo(Session.class);
final UserManager userManager = adminResolver.adaptTo(UserManager.class);
final User user = (User) userManager.getAuthorizable(adminSession.getUserID());

Iterator<Group> itr=user.memberOf();
       while(itr.hasNext())
       {
          Group group=(Group)itr.next();
           logger.info("group.getID().."+group.getID());
           logger.info("group.getPrincipal().getName().."+group.getPrincipal().getName());
        }     

----------------------更新示例代码----------------

在Adobe的ACS Common项目中有一个示例实现,可以找到here

看看方法 - public boolean authenticationSucceeded(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, AuthenticationInfo authenticationInfo)

你可以在这里提供你的实现,而不是使用DeferredRedirectHttpServletResponse。在您的实现中,您需要检索您的URL /路径以重定向并发送重定向(确保请求包装器中的路径身份验证信息,以便继续执行登录状态)

© www.soinside.com 2019 - 2024. All rights reserved.