如何在Alfresco Share上向JSP页面添加身份验证

时间:2012-11-06 18:57:16

标签: java authentication share alfresco web.xml

因此,对于我目前正在进行的项目,在参加Alfresco开发人员课程之前,我们创建了一个自定义JSP页面,我们在工作流程中调用了该页面:C:\Alfresco\tomcat\webapps\share\custom。目前任何人都可以访问此jsp页面。但是,当我们将位置移动到C:\Alfresco\tomcat\webapps\alfresco\jsp\custom时,始终需要登录才能访问该页面,这对我来说似乎很奇怪。但是,这里的问题是我们不希望允许用户访问共享和资源管理器,因此我们不打算在此处配置SSO。我们只允许组“管理员”的人员或“管理员”组中当前登录的用户访问此页面,而它位于共享端。我们已经尝试将以下内容添加到

C:\Alfresco\tomcat\webapps\share\WEB-INF\web.xml档案:

<security-constraint>
        <web-resource-collection>
            <web-resource-name>All</web-resource-name>
            <url-pattern>/custom /*</url-pattern>
            <http-method>GET</http-method>
            <http-method>POST</http-method>
        </web-resource-collection>
        <auth-constraint>
            <role-name>Manager</role-name>
        </auth-constraint>
    </security-constraint>

但是这没用。有没有人建议我们如何获得所需的身份验证?

由于

1 个答案:

答案 0 :(得分:2)

Share中的身份验证由Surf框架控制,具体来说,它是在页面级别设置的。

JSP页面site-index.jsp提供了一个基于JSP的示例页面,用于处理经过身份验证的用户以供您复制,但您还必须将其连接到框架中。

为此,您需要创建类似于以下

的页面定义
<?xml version='1.0' encoding='UTF-8'?>
<page>
   <title>My page</title>
   <description>What the page is for</description>
   <template-instance>my-page</template-instance>
   <authentication>user</authentication>
</page>

WEB-INF/classes/alfresco/site-data/pages/site-index.xml下添加此文件。

您将看到该页面引用了一个模板实例my-page,该实例必须在WEB-INF/classes/alfresco/site-data/template-instances下的第二个XML文件中声明,例如

<?xml version='1.0' encoding='UTF-8'?>
<template-instance>
   <template-type>my-page</template-type>
</template-instance>

模板实例XML文件的名称(不带.xml后缀)必须与页面的<template-instance>属性中指定的名称匹配。

最后在my-page.xml下创建模板类型文件<template-type>(此名称必须与模板实例文件中的WEB-INF/classes/alfresco/site-data/template-types属性匹配),例如

<?xml version="1.0" encoding="UTF-8"?>
<template-type>
        <title>Site index landing page template type</title>
        <description>Site index landing page JSP Template Type</description>

        <!-- Define the rendering processors for this template type -->
        <processor mode="view">
                <id>jsp</id>
                <jsp-path>/my-page.jsp</jsp-path>
        </processor>

</template-type>

文件my-page.jsp将包含您的JSP代码。正如我所提到的,请查看核心文件site-index.jsp以获取示例。

当您完成所有这些工作后,您应该将自定义内容打包到AMP文件中。您可以使用Ant或Maven来执行此操作,具体取决于您的偏好。