2016-03-15 53 views
1

是否可以编写一个自己的servlet来登录CQ系统,并将自己的消息作为JSON响应返回。CQ用自己的信息登录

我的意思是和J_Security_Check一样,但是我拥有对消息的控制。登录应该检查凭证并为会话创建令牌。

我在互联网上找不到任何有用的解决方案。

有人知道我该怎么做吗?

AEM有没有什么课程可以帮助解决这种情况?

我使用AEM 6.1。

回答

0

您将需要复制该组件/apps下覆盖AEM的登录组件出现在/libs/granite/core/content/login保持相同的文件夹结构(不同的文件夹中键入heriarchy)。此组件的资源位于/libs/granite/core/components/login,其中包含AEM登录表单的JSP脚本。将所有相关脚本移至/apps后,您可以修改login.jsp中的登录表单操作以指向您的servlet路径。

使用Jquery从/libs/granite/core/content/login/clientlib/login.js提交对服务器的调用,您可以在适当的成功/错误块中处理来自servlet的响应。

除此之外,还有一个OSGI设置,AEM用于呈现登录页面。在Felix控制台中查找Day CQ Login Selector Authentication Handler设置,并在/apps下将Default Login Page更改为您的组件。

+0

这将是太多了。我不想更改默认的登录页面。我需要在我的应用程序中使用我的登录表单,并且在那里,另一个来自cq的登录名也是需要的。 –

1
+0

我已经看过这篇文章。但是这只显示了如何使用其他身份验证(如LDAP或其他)登录,但我必须从我的应用程序以CQ系统中的用户身份登录,用户没有mutch权限,但在我的应用程序中,他们可以添加注释,并进行投票等... –

+0

您可以使用自定义身份验证处理程序来处理普通Sling/AEM用户的正常身份验证。我可能会有一段代码示例,我为Sling应用程序做了一段时间。如果我能找到它,我会在这里发布它。 – nateyolles

+0

感谢代码sampe会很棒,所以我可以理解它是如何工作的。 –