因此,对于我目前正在进行的项目,在参加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>
但是这没用。有没有人建议我们如何获得所需的身份验证?
由于
答案 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来执行此操作,具体取决于您的偏好。