关于Web脚本控制器类、Spring、AMP和编译的问题



所以我最近一直在尝试在Oracle Linux 6虚拟机上集成CAS和Alfresco,但运气不太好。因此,我已经完成了许多教程,目前正在努力完成这一教程。但是,在标题为"为Alfresco Explorer配置CAS SSO"的部分中,我完全不了解步骤3-5。


3) 确保org.mycompany.cms.authentication.LoginCas Web脚本控制器类中的URL正确无误:

public class LoginCas extends DeclarativeWebScript 
{
   private final static String CAS_WEBAPP_URL = "https://localhost:8443/cas-server-webapp-3.4.6";
   private final static String ALFRESCO_WEBAPP_URL = "http://localhost:8080/alfresco";

4) 在Spring上下文文件中配置LoginCas web脚本控制器:

声明性web脚本需要从Springbean配置中加载和设置。如果要为此创建一个新的AMP文件,请将以下Springbean配置添加到module-text.xml中:

<bean id="webscript.org.mycompany.authentication.logincas.get" class="org.mycompany.cms.authentication.LoginCas" parent="webscript">
   <property name="authenticationService" ref="authenticationService" />
   <property name="authenticationComponent" ref="authenticationComponent" />
</bean>

5) 查找如何设置AMP构建项目并使用它将web脚本控制器、身份验证过滤器、CAS库和Spring上下文文件打包在一起

需要根据alfresco 3.4 SDK和CAS库编译alfresco_war包源代码中的以下两个类:

org.mycompany.cms.authentication.LoginCas
org.mycompany.cms.authentication.CasAuthenticationFilter

要编译这些类,您需要CAS客户端库(例如CAS-Client-core-3.1.12.jar),它也需要打包在AMP中。


我想从第3步开始,我的问题是,我在哪里找到这个"Web脚本控制器类"?我需要在我的虚拟机上安装一个IDE来执行此操作吗?

我不知道第4步是什么意思。有人能试着用一种更简单的方式来解释这一点吗?(我没有使用Spring或AMP btw的经验)

对于第5步,虽然这听起来像是一个新手问题,但"需要根据alfresco 3.4 SDK和CAS库编译alfresco_war包源代码中的以下两个类"到底是什么意思?我知道编译是什么的基本概念,但"被编译反对"意味着什么?我该如何做到这一点?

感谢您提供的任何帮助!

在学习Alfresco Java支持的web脚本速成课程的同时,您似乎正在学习配置CAS。在这一点上,运行一个关于通过Web脚本框架扩展Alfresco的教程将对您大有裨益。关于这个主题有很多资源,这里有几个。

Alfresco Wiki

官方文件

Jeff Potts的简介白皮书

现在,回答您的问题:

3.)"控制器类"指的是在调用web脚本时将运行的逻辑。由于这是一个支持java的web脚本,因此逻辑将在java类(.java)中运行,而不是在标准JavaScript(.js)文件中运行。当然,您这里不需要IDE,但创建一个eclipse项目会很方便,您可以在其中导入Alfresco SDK、CAS所需的jar以及web脚本的组件到单个位置(此外,使用ant将使构建和编译更加简单)。

编辑:要回答"在哪里"问题,您的控制器脚本是LoginCas.java.

4.)为了让Alfresco识别您的自定义代码,您需要向Spring提供一些信息。在引导过程中,Alfresco使用Spring根据类在-context.xml文件中的定义方式加载该类。Alfresco模块包(AMP)只是一种将自定义代码存储在整洁的小包中以供部署的方法。web脚本框架在很大程度上依赖于Spring,所以如果你计划进行大量的Alfresco定制,我建议你也学习一下这项技术。

5.)还记得我在问题3中所说的关于eclipse项目的内容吗?步骤5告诉您根据3.4 SDK和CAS jar编译控制器类,这意味着如果您在命令行中这样做,您将运行javac,同时将Alfresco SDK和CAS组件中的所有库作为该调用的库参数传递。这里的最终目标是从您的.java控制器中获得一个已编译的.class文件。使用ANT脚本处理这一点要容易得多。

如果您下载Alfresco SDK并将其导入eclipse,您可以看到一些如何扩展Alfreco的示例。这将是运行完一些文档后的第二步。希望这能有所帮助,祝你好运!