mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-07-31 17:39:05 +00:00
Merged missing changes to file-servers.xml and file-servers.properties from 13521 in V3.1
Synchronized new file-servers-context.xml with these changes Debugged NFS and Desktop Action Initialization via Spring git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@13831 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -2,42 +2,94 @@
|
||||
|
||||
<config evaluator="string-compare" condition="CIFS Server">
|
||||
<serverEnable enabled="${cifs.enabled}"/>
|
||||
|
||||
<host name="${cifs.localname}A" domain="${cifs.domain}"/>
|
||||
<comment>Alfresco CIFS Server</comment>
|
||||
|
||||
<!-- Set to the broadcast mask for the subnet -->
|
||||
<broadcast>${cifs.broadcast}</broadcast>
|
||||
|
||||
<!-- Set to the IP for the adapter for Java socket -->
|
||||
<bindto>${cifs.bindto}</bindto>
|
||||
|
||||
<!-- Use Java socket based NetBIOS over TCP/IP and native SMB on linux -->
|
||||
<tcpipSMB platforms="linux,solaris,macosx"/>
|
||||
<tcpipSMB ipv6="${cifs.ipv6}" platforms="linux,solaris,macosx"/>
|
||||
<netBIOSSMB bindto="${cifs.bindto}" platforms="linux,solaris,macosx"/>
|
||||
|
||||
<!-- Can be mapped to non-privileged ports, then use firewall rules to forward
|
||||
requests from the standard ports -->
|
||||
<!--
|
||||
<tcpipSMB port="1445" platforms="linux,solaris,macosx"/>
|
||||
<tcpipSMB port="1445" ipv6="${cifs.ipv6}" platforms="linux,solaris,macosx"/>
|
||||
<netBIOSSMB sessionPort="1139" namePort="1137" datagramPort="1138" platforms="linux,solaris,macosx"/>
|
||||
-->
|
||||
|
||||
<hostAnnounce interval="5"/>
|
||||
<!-- Announce the server to the workgroup/domain -->
|
||||
<!-- Use enabled="false" attribute to disable announcements -->
|
||||
<hostAnnounce interval="5" enabled="${cifs.hostannounce}"/>
|
||||
|
||||
<!-- Use Win32 NetBIOS interface on Windows -->
|
||||
<Win32NetBIOS/>
|
||||
<Win32Announce interval="5"/>
|
||||
|
||||
<!-- Announce the server to the workgroup/domain -->
|
||||
<!-- Use enabled="false" attribute to disable announcements -->
|
||||
<Win32Announce interval="5" enabled="${cifs.hostannounce}"/>
|
||||
|
||||
<!-- CIFS authentication -->
|
||||
<authenticator type="enterprise">
|
||||
</authenticator>
|
||||
<!-- Available types are 'alfresco', 'passthru' and 'enterprise' -->
|
||||
<authenticator type="enterprise"/>
|
||||
|
||||
<!--
|
||||
<!-- CIFS Passthru authentication sample -->
|
||||
<!-- Also see the <DomainMappings> config in the 'Filesystem Security' section below -->
|
||||
<!--
|
||||
<authenticator type="passthru">
|
||||
<Server>ALFRESCO\adsrv1,ADOMAIN\adsrv2,adsrv1</Server>
|
||||
<protocolOrder>TCPIP,NetBIOS</protocolOrder>
|
||||
<offlineCheckInterval>60</offlineCheckInterval>
|
||||
</authenticator>
|
||||
-->
|
||||
|
||||
<!-- CIFS Enterprise authentication sample with Kerberos -->
|
||||
<!--
|
||||
<authenticator type="enterprise"/>
|
||||
<KDC>192.168.1.240</KDC>
|
||||
<Realm>WIN2003.ALFRESCO.ORG</Realm>
|
||||
<Password>password</Password>
|
||||
|
||||
<kerberosDebug/>
|
||||
</authenticator>
|
||||
-->
|
||||
|
||||
<!-- Disable the use of asynchronous sockets/NIO code -->
|
||||
<!--
|
||||
<disableNIO/>
|
||||
-->
|
||||
|
||||
<!-- Disable the use of JNI code -->
|
||||
<!-- Only currently affects Windows -->
|
||||
<!--
|
||||
<disableNativeCode/>
|
||||
-->
|
||||
|
||||
<!-- Session timeout, in seconds -->
|
||||
<!-- Defaults to 15 minutes, to match the default Windows client setting -->
|
||||
<!-- If no I/O is received within that time the session is closed by the server -->
|
||||
<!--
|
||||
<sessionTimeout>300</sessionTimeout>
|
||||
-->
|
||||
|
||||
<!-- Enable WINS if used for NetBIOS name lookups -->
|
||||
<!--
|
||||
<WINS>
|
||||
<primary>1.2.3.4</primary>
|
||||
<secondary>5.6.7.8</secondary>
|
||||
</WINS>
|
||||
-->
|
||||
-->
|
||||
|
||||
<!-- CIFS server debug settings -->
|
||||
<!-- Enable 'log4j.logger.org.alfresco.fileserver=debug' in log4j.properties file -->
|
||||
<!--
|
||||
<sessionDebug flags="Negotiate,Socket"/>
|
||||
-->
|
||||
</config>
|
||||
|
||||
<config evaluator="string-compare" condition="FTP Server">
|
||||
@@ -49,19 +101,30 @@
|
||||
-->
|
||||
|
||||
<!-- FTP authentication -->
|
||||
<!-- Available types are 'alfresco' and 'passthru' -->
|
||||
<authenticator type="alfresco"/>
|
||||
|
||||
<!-- <debug flags="File,Search,Error,Directory,Info,DataPort"/> -->
|
||||
<!-- FTP server debug settings -->
|
||||
<!-- Enable 'log4j.logger.org.alfresco.fileserver=debug' in log4j.properties file -->
|
||||
<!--
|
||||
<debug flags="File,Search,Error,Directory,Info,DataPort"/>
|
||||
-->
|
||||
</config>
|
||||
|
||||
<config evaluator="string-compare" condition="NFS Server">
|
||||
<serverEnable enabled="${nfs.enabled}"/>
|
||||
|
||||
<!-- Map NFS user/group ids to Alfresco users -->
|
||||
<rpcAuthenticator>
|
||||
<userMappings>
|
||||
<user name="admin" uid="0" gid="0"/>
|
||||
</userMappings>
|
||||
</rpcAuthenticator>
|
||||
</config>
|
||||
|
||||
<config evaluator="string-compare" condition="Filesystems">
|
||||
<filesystems>
|
||||
|
||||
|
||||
<!-- Alfresco repository access shared filesystem -->
|
||||
<filesystem name="${filesystem.name}">
|
||||
<store>workspace://SpacesStore</store>
|
||||
@@ -69,7 +132,7 @@
|
||||
|
||||
<!-- Add a URL file to each folder that links back to the web client -->
|
||||
<urlFile>
|
||||
<filename>__AlfrescoClient.url</filename>
|
||||
<filename>__Alfresco.url</filename>
|
||||
<webpath>http://${localname}:8080/alfresco/</webpath>
|
||||
</urlFile>
|
||||
|
||||
@@ -85,13 +148,27 @@
|
||||
<!-- JavaScript - run a server-side script -->
|
||||
<!-- JavaScriptURL - server-side script that generates a URL to the folder using a ticket -->
|
||||
<!-- to avoid having to logon -->
|
||||
|
||||
<!--
|
||||
<desktopActions>
|
||||
<global>
|
||||
<path>alfresco/desktop/Alfresco.exe</path>
|
||||
<webpath>http://${localname}:8080/alfresco/</webpath>
|
||||
</global>
|
||||
<action>
|
||||
<class>org.alfresco.filesys.repo.desk.CheckInOutDesktopAction</class>
|
||||
<name>CheckInOut</name>
|
||||
<filename>__CheckInOut.exe</filename>
|
||||
</action>
|
||||
<action>
|
||||
<class>org.alfresco.filesys.repo.desk.JavaScriptDesktopAction</class>
|
||||
<name>JavaScriptURL</name>
|
||||
<filename>__ShowDetails.exe</filename>
|
||||
<script>alfresco/desktop/showDetails.js</script>
|
||||
<attributes>anyFiles</attributes>
|
||||
<preprocess>copyToTarget</preprocess>
|
||||
</action>
|
||||
|
||||
<!-- Other desktop actions which may be enabled -->
|
||||
<!--
|
||||
<action>
|
||||
<class>org.alfresco.filesys.repo.desk.EchoDesktopAction</class>
|
||||
<name>Echo</name>
|
||||
@@ -107,11 +184,6 @@
|
||||
<name>CmdLine</name>
|
||||
<filename>__AlfrescoCmd.exe</filename>
|
||||
</action>
|
||||
<action>
|
||||
<class>org.alfresco.filesys.repo.desk.CheckInOutDesktopAction</class>
|
||||
<name>CheckInOut</name>
|
||||
<filename>__AlfrescoCheckInOut.exe</filename>
|
||||
</action>
|
||||
<action>
|
||||
<class>org.alfresco.filesys.repo.desk.JavaScriptDesktopAction</class>
|
||||
<name>JavaScript</name>
|
||||
@@ -120,37 +192,31 @@
|
||||
<attributes>anyFiles, multiplePaths , allowNoParams</attributes>
|
||||
<preprocess>confirm, copyToTarget</preprocess>
|
||||
</action>
|
||||
<action>
|
||||
<class>org.alfresco.filesys.repo.desk.JavaScriptDesktopAction</class>
|
||||
<name>JavaScriptURL</name>
|
||||
<filename>__AlfrescoDetails.exe</filename>
|
||||
<script>alfresco/desktop/showDetails.js</script>
|
||||
<attributes>anyFiles</attributes>
|
||||
<preprocess>copyToTarget</preprocess>
|
||||
</action>
|
||||
|
||||
-->
|
||||
</desktopActions>
|
||||
-->
|
||||
|
||||
<!--
|
||||
<!-- Additional access control of the filesystem -->
|
||||
<!-- Access type of 'none' will stop the filesystem from showing up for that user/address/protocol -->
|
||||
<!--
|
||||
<accessControl default="Write">
|
||||
<user name="admin" access="Write"/>
|
||||
<address subnet="90.1.0.0" mask="255.255.0.0" access="Write"/>
|
||||
<address subnet="192.168.1.0" mask="255.255.255.0" access="Write"/>
|
||||
</accessControl>
|
||||
-->
|
||||
-->
|
||||
</filesystem>
|
||||
|
||||
<!-- AVM virtualization view of all stores/versions for WCM -->
|
||||
<!-- virtual view can be any of the following: normal, site, staging, author, preview -->
|
||||
<!-- virtual view stores filter can be any of the following: normal, site, staging, author, preview -->
|
||||
<avmfilesystem name="AVM">
|
||||
<virtualView stores="site,staging,author" />
|
||||
<virtualView stores="site,staging,author"/>
|
||||
</avmfilesystem>
|
||||
|
||||
</filesystems>
|
||||
</config>
|
||||
|
||||
<config evaluator="string-compare" condition="Filesystem Security">
|
||||
<!-- Domain mappings used for passthri authentication routing -->
|
||||
<!-- Domain mappings used for passthru authentication routing -->
|
||||
<!-- Used when the client does not provide a domain name in the NTLM logon -->
|
||||
<!--
|
||||
<DomainMappings>
|
||||
<Domain name="ALFRESCO" subnet="192.168.1.0" mask="192.168.1.255"/>
|
||||
@@ -164,13 +230,15 @@
|
||||
</shareMapper>
|
||||
-->
|
||||
|
||||
<!--
|
||||
<!-- Global access control list -->
|
||||
<!-- Applied to all filesystems that do not have an <accessControl> block -->
|
||||
<!-- Access type of 'none' will stop the filesystem from showing up for that user/address/protocol -->
|
||||
<!--
|
||||
<globalAccessControl default="None">
|
||||
<user name="admin" access="Write"/>
|
||||
<address ip="90.1.0.90" access="Write"/>
|
||||
<address ip="192.168.1.2" access="Write"/>
|
||||
</globalAccessControl>
|
||||
-->
|
||||
-->
|
||||
</config>
|
||||
|
||||
|
||||
</alfresco-config>
|
||||
|
@@ -85,6 +85,9 @@
|
||||
<property name="platforms">
|
||||
<value>linux,solaris,macosx</value>
|
||||
</property>
|
||||
<property name="ipv6Enabled">
|
||||
<value>${cifs.ipv6.enabled}</value>
|
||||
</property>
|
||||
</bean>
|
||||
</property>
|
||||
<property name="netBIOSSMB">
|
||||
@@ -108,7 +111,7 @@
|
||||
</property>
|
||||
|
||||
<property name="hostAccouncerEnabled">
|
||||
<value>true</value>
|
||||
<value>${cifs.hostannounce}</value>
|
||||
</property>
|
||||
<property name="hostAccounceInterval">
|
||||
<value>5</value>
|
||||
@@ -119,7 +122,7 @@
|
||||
<bean class="org.alfresco.filesys.config.Win32NetBIOSConfigBean" />
|
||||
</property>
|
||||
<property name="win32HostAnnouncerEnabled">
|
||||
<value>true</value>
|
||||
<value>${cifs.hostannounce}</value>
|
||||
</property>
|
||||
<property name="win32HostAnnounceInterval">
|
||||
<value>5</value>
|
||||
@@ -130,6 +133,25 @@
|
||||
<ref bean="cifsAuthenticator" />
|
||||
</property>
|
||||
|
||||
<!-- Disable the use of asynchronous sockets/NIO code -->
|
||||
<property name="disableNIO">
|
||||
<value>${cifs.disableNIO}</value>
|
||||
</property>
|
||||
|
||||
<!-- Disable the use of JNI code -->
|
||||
<!-- Only currently affects Windows -->
|
||||
<property name="disableNativeCode">
|
||||
<value>${cifs.disableNativeCode}</value>
|
||||
</property>
|
||||
|
||||
<!-- Session timeout, in seconds -->
|
||||
<!-- Defaults to 15 minutes, to match the default Windows client setting -->
|
||||
<!-- If no I/O is received within that time the session is closed by the server -->
|
||||
<property name="sessionTimeout">
|
||||
<value>${cifs.sessionTimeout}</value>
|
||||
</property>
|
||||
|
||||
<!-- Enable WINS if used for NetBIOS name lookups -->
|
||||
<property name="WINSConfig">
|
||||
<bean class="org.alfresco.filesys.config.WINSConfigBean">
|
||||
<property name="autoDetectEnabled">
|
||||
@@ -144,9 +166,9 @@
|
||||
</bean>
|
||||
</property>
|
||||
|
||||
<property name="sessionDebugFlags">
|
||||
<value>Negotiate,Socket</value>
|
||||
</property>
|
||||
<!--
|
||||
<property name="sessionDebugFlags"> <value>Negotiate,Socket</value> </property>
|
||||
-->
|
||||
</bean>
|
||||
|
||||
<bean id="ftpServerConfig" class="org.alfresco.filesys.config.FTPConfigBean">
|
||||
@@ -163,9 +185,13 @@
|
||||
<ref bean="ftpAuthenticator" />
|
||||
</property>
|
||||
|
||||
<!--property name="debugFlags">
|
||||
<!-- FTP server debug settings -->
|
||||
<!-- Enable 'log4j.logger.org.alfresco.fileserver=debug' in log4j.properties file -->
|
||||
<!--
|
||||
<property name="debugFlags">
|
||||
<value>File,Search,Error,Directory,Info,DataPort</value>
|
||||
</property-->
|
||||
</property>
|
||||
-->
|
||||
|
||||
</bean>
|
||||
|
||||
@@ -173,6 +199,27 @@
|
||||
<property name="serverEnabled">
|
||||
<value>${nfs.enabled}</value>
|
||||
</property>
|
||||
|
||||
<!-- Map NFS user/group ids to Alfresco users -->
|
||||
<property name="rpcAuthenticator">
|
||||
<bean class="org.alfresco.filesys.auth.nfs.AlfrescoRpcAuthenticator">
|
||||
<property name="userMappings">
|
||||
<list>
|
||||
<bean class="org.alfresco.filesys.auth.nfs.UserMapping">
|
||||
<property name="name">
|
||||
<value>${alfresco_user_store.adminusername}</value>
|
||||
</property>
|
||||
<property name="uid">
|
||||
<value>0</value>
|
||||
</property>
|
||||
<property name="gid">
|
||||
<value>0</value>
|
||||
</property>
|
||||
</bean>
|
||||
</list>
|
||||
</property>
|
||||
</bean>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<bean id="filesystemContexts" class="org.springframework.beans.factory.config.ListFactoryBean">
|
||||
@@ -184,17 +231,17 @@
|
||||
<value>${filesystem.name}</value>
|
||||
</property>
|
||||
<property name="storeName">
|
||||
<value>workspace://SpacesStore</value>
|
||||
<value>${spaces.store}</value>
|
||||
</property>
|
||||
<property name="rootPath">
|
||||
<value>/app:company_home</value>
|
||||
<value>/${spaces.company_home.childname}</value>
|
||||
</property>
|
||||
<!-- Add a URL file to each folder that links back to the web client -->
|
||||
<property name="URLFileName">
|
||||
<value>__AlfrescoClient.url</value>
|
||||
<value>__Alfresco.url</value>
|
||||
</property>
|
||||
<property name="URLPrefix">
|
||||
<value>http://${localname}:8080/alfresco/</value>
|
||||
<value>${cifs.urlfile.prefix}</value>
|
||||
</property>
|
||||
<!-- Mark locked files as offline -->
|
||||
<property name="offlineFiles">
|
||||
@@ -210,19 +257,45 @@
|
||||
<!-- JavaScript - run a server-side script -->
|
||||
<!-- JavaScriptURL - server-side script that generates a URL to the folder using a ticket -->
|
||||
<!-- to avoid having to logon -->
|
||||
<!--
|
||||
<property name="globalDesktopActionConfig">
|
||||
<bean class="org.alfresco.filesys.config.GlobalDesktopActionConfigBean">
|
||||
<property name="path">
|
||||
<value>alfresco/desktop/Alfresco.exe</value>
|
||||
</property>
|
||||
<property name="webpath">
|
||||
<value>http://${localname}:8080/alfresco/</value>
|
||||
<value>${cifs.urlfile.prefix}</value>
|
||||
</property>
|
||||
</bean>
|
||||
</property>
|
||||
<property name="desktopActions">
|
||||
<property name="desktopActionList">
|
||||
<list>
|
||||
<bean class="org.alfresco.filesys.repo.desk.CheckInOutDesktopAction">
|
||||
<property name="name">
|
||||
<value>CheckInOut</value>
|
||||
</property>
|
||||
<property name="filename">
|
||||
<value>__CheckInOut.exe</value>
|
||||
</property>
|
||||
</bean>
|
||||
<bean class="org.alfresco.filesys.repo.desk.JavaScriptDesktopAction">
|
||||
<property name="name">
|
||||
<value>JavaScriptURL</value>
|
||||
</property>
|
||||
<property name="filename">
|
||||
<value>__ShowDetails.exe</value>
|
||||
</property>
|
||||
<property name="scriptName">
|
||||
<value>alfresco/desktop/showDetails.js</value>
|
||||
</property>
|
||||
<property name="attributeList">
|
||||
<value>anyFiles</value>
|
||||
</property>
|
||||
<property name="preprocess">
|
||||
<value>copyToTarget</value>
|
||||
</property>
|
||||
</bean>
|
||||
<!-- Other desktop actions which may be enabled -->
|
||||
<!--
|
||||
<bean class="org.alfresco.filesys.repo.desk.EchoDesktopAction">
|
||||
<property name="name">
|
||||
<value>Echo</value>
|
||||
@@ -247,14 +320,6 @@
|
||||
<value>__AlfrescoCmd.exe</value>
|
||||
</property>
|
||||
</bean>
|
||||
<bean class="org.alfresco.filesys.repo.desk.CheckInOutDesktopAction">
|
||||
<property name="name">
|
||||
<value>CheckInOut</value>
|
||||
</property>
|
||||
<property name="filename">
|
||||
<value>__AlfrescoCheckInOut.exe</value>
|
||||
</property>
|
||||
</bean>
|
||||
<bean class="org.alfresco.filesys.repo.desk.JavaScriptDesktopAction">
|
||||
<property name="name">
|
||||
<value>JavaScript</value>
|
||||
@@ -265,34 +330,19 @@
|
||||
<property name="scriptName">
|
||||
<value>alfresco/desktop/dumpRequest.js</value>
|
||||
</property>
|
||||
<property name="attributes">
|
||||
<property name="attributeList">
|
||||
<value>anyFiles, multiplePaths, allowNoParams</value>
|
||||
</property>
|
||||
<property name="preProcessActions">
|
||||
<property name="preprocess">
|
||||
<value>confirm, copyToTarget</value>
|
||||
</property>
|
||||
</bean>
|
||||
<bean class="org.alfresco.filesys.repo.desk.JavaScriptDesktopAction">
|
||||
<property name="name">
|
||||
<value>JavaScriptURL</value>
|
||||
</property>
|
||||
<property name="filename">
|
||||
<value>__AlfrescoDetails.exe</value>
|
||||
</property>
|
||||
<property name="scriptName">
|
||||
<value>alfresco/desktop/showDetails.js</value>
|
||||
</property>
|
||||
<property name="attributes">
|
||||
<value>anyFiles</value>
|
||||
</property>
|
||||
<property name="preProcessActions">
|
||||
<value>copyToTarget</value>
|
||||
</property>
|
||||
</bean>
|
||||
-->
|
||||
</list>
|
||||
</property>
|
||||
-->
|
||||
<!--
|
||||
<!-- Additional access control of the filesystem -->
|
||||
<!-- Access type of 'none' will stop the filesystem from showing up for that user/address/protocol -->
|
||||
<!--
|
||||
<property name="defaultAccessLevel">
|
||||
<value>Write</value>
|
||||
</property>
|
||||
@@ -308,10 +358,10 @@
|
||||
</bean>
|
||||
<bean class="org.alfresco.jlan.server.auth.acl.IpAddressAccessControl">
|
||||
<property name="subNet">
|
||||
<value>90.1.0.0</value>
|
||||
<value>192.168.1.0</value>
|
||||
</property>
|
||||
<property name="netMask">
|
||||
<value>255.255.0.0</value>
|
||||
<value>255.255.255.0</value>
|
||||
</property>
|
||||
<property name="access">
|
||||
<value>Write</value>
|
||||
@@ -319,10 +369,10 @@
|
||||
</bean>
|
||||
</list>
|
||||
</property>
|
||||
-->
|
||||
-->
|
||||
</bean>
|
||||
<!-- AVM virtualization view of all stores/versions for WCM -->
|
||||
<!-- virtual view can be any of the following: normal, site, staging, author, preview -->
|
||||
<!-- virtual view stores filter can be any of the following: normal, site, staging, author, preview -->
|
||||
<bean class="org.alfresco.filesys.avm.AVMContext">
|
||||
<property name="deviceName">
|
||||
<value>AVM</value>
|
||||
@@ -340,7 +390,8 @@
|
||||
|
||||
<bean id="fileSecurityConfig" class="org.alfresco.filesys.config.SecurityConfigBean">
|
||||
<!-- Domain mappings used for passthru authentication routing -->
|
||||
<!--
|
||||
<!-- Used when the client does not provide a domain name in the NTLM logon -->
|
||||
<!--
|
||||
<property name="domainMappings">
|
||||
<list>
|
||||
<bean class="org.alfresco.filesys.config.DomainMappingConfigBean">
|
||||
@@ -356,6 +407,10 @@
|
||||
</bean>
|
||||
</list>
|
||||
</property>
|
||||
-->
|
||||
|
||||
<!-- Custom share mapper when multi-tenancy is enabled -->
|
||||
<!--
|
||||
<property name="shareMapper">
|
||||
<bean class="org.alfresco.filesys.alfresco.MultiTenantShareMapper">
|
||||
<property name="serverConfiguration">
|
||||
@@ -366,6 +421,12 @@
|
||||
</property>
|
||||
</bean>
|
||||
</property>
|
||||
-->
|
||||
|
||||
<!-- Global access control list -->
|
||||
<!-- Applied to all filesystems that do not have an accessControl property -->
|
||||
<!-- Access type of 'none' will stop the filesystem from showing up for that user/address/protocol -->
|
||||
<!--
|
||||
<property name="globalDefaultAccessLevel">
|
||||
<value>None</value>
|
||||
</property>
|
||||
@@ -381,10 +442,10 @@
|
||||
</bean>
|
||||
<bean class="org.alfresco.jlan.server.auth.acl.IpAddressAccessControl">
|
||||
<property name="subNet">
|
||||
<value>90.1.0.0</value>
|
||||
<value>192.168.1.2</value>
|
||||
</property>
|
||||
<property name="netMask">
|
||||
<value>90.1.0.90</value>
|
||||
<value>255.255.255.0</value>
|
||||
</property>
|
||||
<property name="access">
|
||||
<value>Write</value>
|
||||
@@ -392,7 +453,7 @@
|
||||
</bean>
|
||||
</list>
|
||||
</property>
|
||||
-->
|
||||
-->
|
||||
</bean>
|
||||
|
||||
</beans>
|
@@ -6,6 +6,16 @@ cifs.domain=
|
||||
cifs.broadcast=255.255.255.255
|
||||
# An empty value indicates bind to all available network adapters
|
||||
cifs.bindto=
|
||||
cifs.ipv6.enabled=false
|
||||
cifs.hostannounce=true
|
||||
# Enable the use of asynchronous sockets/NIO code
|
||||
cifs.disableNIO=false
|
||||
# Disable the use of JNI code. Only currently affects Windows
|
||||
cifs.disableNativeCode=false
|
||||
# Session timeout, in seconds. Defaults to 15 minutes, to match the default Windows client setting.
|
||||
# If no I/O is received within that time the session is closed by the server
|
||||
cifs.sessionTimeout=900
|
||||
|
||||
# Can be mapped to non-privileged ports, then use firewall rules to forward requests from the standard ports
|
||||
cifs.tcpipSMB.port=445
|
||||
cifs.netBIOSSMB.sessionPort=139
|
||||
@@ -21,3 +31,5 @@ ftp.enabled=true
|
||||
ftp.port=21
|
||||
|
||||
nfs.enabled=false
|
||||
|
||||
cifs.urlfile.prefix=http://${localname}:8080/alfresco/
|
||||
|
@@ -136,6 +136,9 @@
|
||||
<property name="protocolOrder">
|
||||
<value>${ldap.passthru.authentication.protocolOrder}</value>
|
||||
</property>
|
||||
<property name="nullDomainUseAnyServer">
|
||||
<value>true</value>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<!-- CIFS authentication and SMB session listener -->
|
||||
|
@@ -39,6 +39,9 @@
|
||||
<property name="protocolOrder">
|
||||
<value>${passthru.authentication.protocolOrder}</value>
|
||||
</property>
|
||||
<property name="nullDomainUseAnyServer">
|
||||
<value>true</value>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<!-- The authentication component. -->
|
||||
|
@@ -37,7 +37,6 @@ import org.alfresco.jlan.server.filesys.DiskInterface;
|
||||
import org.alfresco.jlan.server.filesys.FileSystem;
|
||||
import org.alfresco.jlan.server.filesys.SrvDiskInfo;
|
||||
import org.alfresco.jlan.server.filesys.pseudo.PseudoFileInterface;
|
||||
import org.springframework.beans.factory.InitializingBean;
|
||||
|
||||
|
||||
/**
|
||||
@@ -47,7 +46,7 @@ import org.springframework.beans.factory.InitializingBean;
|
||||
*
|
||||
* @author GKSpencer
|
||||
*/
|
||||
public abstract class AlfrescoContext extends DiskDeviceContext implements InitializingBean
|
||||
public abstract class AlfrescoContext extends DiskDeviceContext
|
||||
{
|
||||
// Token name to substitute current servers DNS name or TCP/IP address into the webapp URL
|
||||
|
||||
@@ -71,6 +70,7 @@ public abstract class AlfrescoContext extends DiskDeviceContext implements Initi
|
||||
|
||||
private GlobalDesktopActionConfigBean m_globalDesktopActionConfig = new GlobalDesktopActionConfigBean();
|
||||
private DesktopActionTable m_desktopActions;
|
||||
private List<DesktopAction> m_desktopActionsToInitialize;
|
||||
|
||||
// I/O control handler
|
||||
|
||||
@@ -94,8 +94,27 @@ public abstract class AlfrescoContext extends DiskDeviceContext implements Initi
|
||||
enableChangeHandler(!disableChangeNotification);
|
||||
}
|
||||
|
||||
public void afterPropertiesSet()
|
||||
/**
|
||||
* Complete initialization by registering with a disk driver
|
||||
*/
|
||||
public void initialize(AlfrescoDiskDriver filesysDriver)
|
||||
{
|
||||
if (m_desktopActionsToInitialize != null)
|
||||
{
|
||||
for (DesktopAction desktopAction : m_desktopActionsToInitialize)
|
||||
{
|
||||
// Initialize the desktop action
|
||||
try
|
||||
{
|
||||
desktopAction.initializeAction(filesysDriver, this);
|
||||
}
|
||||
catch (DesktopActionException ex)
|
||||
{
|
||||
throw new AlfrescoRuntimeException("Failed to initialize desktop action", ex);
|
||||
}
|
||||
addDesktopAction(desktopAction);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -400,19 +419,12 @@ public abstract class AlfrescoContext extends DiskDeviceContext implements Initi
|
||||
*
|
||||
* @param desktopActions DesktopAction List
|
||||
*/
|
||||
public final void setDesktopActions(List<DesktopAction> desktopActions)
|
||||
public final void setDesktopActionList(List<DesktopAction> desktopActions)
|
||||
{
|
||||
// Enumerate the desktop actions and add to this filesystem
|
||||
|
||||
for (DesktopAction desktopAction : desktopActions)
|
||||
{
|
||||
addDesktopAction(desktopAction);
|
||||
m_desktopActionsToInitialize = desktopActions;
|
||||
}
|
||||
|
||||
// Note it is assumed that a AlfrescoDiskDriver.register() call will initialise the I/O control handler
|
||||
}
|
||||
|
||||
protected void setGlobalDesktopActionConfig(GlobalDesktopActionConfigBean desktopActionConfig)
|
||||
public void setGlobalDesktopActionConfig(GlobalDesktopActionConfigBean desktopActionConfig)
|
||||
{
|
||||
m_globalDesktopActionConfig = desktopActionConfig;
|
||||
}
|
||||
@@ -424,6 +436,8 @@ public abstract class AlfrescoContext extends DiskDeviceContext implements Initi
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Create the I/O control handler for this filesystem type
|
||||
*
|
||||
|
@@ -29,6 +29,8 @@ import javax.transaction.UserTransaction;
|
||||
import org.alfresco.error.AlfrescoRuntimeException;
|
||||
import org.alfresco.filesys.state.FileStateReaper;
|
||||
import org.alfresco.jlan.server.SrvSession;
|
||||
import org.alfresco.jlan.server.core.DeviceContext;
|
||||
import org.alfresco.jlan.server.core.DeviceContextException;
|
||||
import org.alfresco.jlan.server.filesys.IOControlNotImplementedException;
|
||||
import org.alfresco.jlan.server.filesys.IOCtlInterface;
|
||||
import org.alfresco.jlan.server.filesys.NetworkFile;
|
||||
@@ -346,4 +348,20 @@ public abstract class AlfrescoDiskDriver implements IOCtlInterface, Transactiona
|
||||
|
||||
sess.setTransaction( this);
|
||||
}
|
||||
|
||||
/**
|
||||
* Registers a device context object for this instance
|
||||
* of the shared device. The same DeviceInterface implementation may be used for multiple
|
||||
* shares. In this base class, we initialize all desktop actions.
|
||||
*
|
||||
* @param ctx the context
|
||||
* @exception DeviceContextException
|
||||
*/
|
||||
public void registerContext(DeviceContext ctx) throws DeviceContextException
|
||||
{
|
||||
if (ctx instanceof AlfrescoContext)
|
||||
{
|
||||
((AlfrescoContext) ctx).initialize(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -30,21 +30,20 @@ import java.net.InetAddress;
|
||||
import java.net.URL;
|
||||
import java.net.URLDecoder;
|
||||
|
||||
import org.alfresco.config.ConfigElement;
|
||||
import org.alfresco.jlan.server.filesys.DiskSharedDevice;
|
||||
import org.alfresco.jlan.server.filesys.pseudo.LocalPseudoFile;
|
||||
import org.alfresco.jlan.server.filesys.pseudo.PseudoFile;
|
||||
import org.alfresco.config.ConfigElement;
|
||||
import org.alfresco.service.ServiceRegistry;
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.springframework.beans.factory.InitializingBean;
|
||||
|
||||
/**
|
||||
* Desktop Action Class
|
||||
*
|
||||
* @author gkspencer
|
||||
*/
|
||||
public abstract class DesktopAction implements InitializingBean{
|
||||
public abstract class DesktopAction {
|
||||
|
||||
// Logging
|
||||
|
||||
@@ -118,7 +117,6 @@ public abstract class DesktopAction implements InitializingBean{
|
||||
|
||||
// Filesystem driver and context
|
||||
|
||||
private DiskSharedDevice m_diskSharedDevice;
|
||||
private AlfrescoDiskDriver m_filesysDriver;
|
||||
private AlfrescoContext m_filesysContext;
|
||||
|
||||
@@ -312,13 +310,14 @@ public abstract class DesktopAction implements InitializingBean{
|
||||
public void initializeAction(ConfigElement global, ConfigElement config, DiskSharedDevice fileSys)
|
||||
throws DesktopActionException
|
||||
{
|
||||
if ( !(fileSys.getContext() instanceof AlfrescoContext))
|
||||
throw new DesktopActionException("Desktop action requires an Alfresco filesystem driver");
|
||||
// Perform standard initialization
|
||||
|
||||
standardInitialize(global, config, fileSys);
|
||||
|
||||
// Complete initialization
|
||||
|
||||
afterPropertiesSet();
|
||||
initializeAction((AlfrescoDiskDriver) fileSys.getDiskInterface(), (AlfrescoContext) fileSys.getDiskContext());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -332,8 +331,6 @@ public abstract class DesktopAction implements InitializingBean{
|
||||
public void standardInitialize(ConfigElement global, ConfigElement config, DiskSharedDevice fileSys)
|
||||
throws DesktopActionException
|
||||
{
|
||||
setDiskSharedDevice(fileSys);
|
||||
|
||||
// Check for standard config values
|
||||
ConfigElement elem = config.getChild("name");
|
||||
if ( elem != null && elem.getValue().length() > 0)
|
||||
@@ -380,20 +377,17 @@ public abstract class DesktopAction implements InitializingBean{
|
||||
}
|
||||
|
||||
|
||||
public void afterPropertiesSet() throws DesktopActionException
|
||||
/**
|
||||
* Initialize the desktop action
|
||||
*
|
||||
* @exception DesktopActionException
|
||||
*/
|
||||
public void initializeAction(AlfrescoDiskDriver filesysDriver, AlfrescoContext filesysContext) throws DesktopActionException
|
||||
{
|
||||
if (m_diskSharedDevice == null)
|
||||
throw new DesktopActionException("Desktop action requires an Alfresco filesystem driver");
|
||||
|
||||
// Save the filesystem device and I/O handler
|
||||
|
||||
if ( m_diskSharedDevice.getContext() instanceof AlfrescoContext)
|
||||
{
|
||||
m_filesysDriver = (AlfrescoDiskDriver) m_diskSharedDevice.getDiskInterface();
|
||||
m_filesysContext = (AlfrescoContext) m_diskSharedDevice.getDiskContext();
|
||||
}
|
||||
else
|
||||
throw new DesktopActionException("Desktop action requires an Alfresco filesystem driver");
|
||||
m_filesysDriver = filesysDriver;
|
||||
m_filesysContext = filesysContext;
|
||||
|
||||
// Check for standard config values
|
||||
|
||||
@@ -602,15 +596,6 @@ public abstract class DesktopAction implements InitializingBean{
|
||||
m_debug = ena;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the disk shared device.
|
||||
* @param diskSharedDevice
|
||||
*/
|
||||
public void setDiskSharedDevice(DiskSharedDevice diskSharedDevice)
|
||||
{
|
||||
m_diskSharedDevice = diskSharedDevice;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the webapp URL
|
||||
*
|
||||
@@ -663,4 +648,5 @@ public abstract class DesktopAction implements InitializingBean{
|
||||
|
||||
return str.toString();
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -69,6 +69,8 @@ public class PassthruServerFactory implements FactoryBean, InitializingBean, Dis
|
||||
|
||||
private PassthruServers passthruServers;
|
||||
|
||||
private boolean nullDomainUseAnyServer;
|
||||
|
||||
/**
|
||||
* Sets the timeout for opening a session to an authentication server
|
||||
*
|
||||
@@ -124,6 +126,17 @@ public class PassthruServerFactory implements FactoryBean, InitializingBean, Dis
|
||||
this.offlineCheckInterval = offlineCheckInterval;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the null domain to use any available server option
|
||||
*
|
||||
* @param nullDomain boolean
|
||||
*/
|
||||
public final void setNullDomainUseAnyServer( boolean nullDomain)
|
||||
{
|
||||
this.nullDomainUseAnyServer = nullDomain;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Set the protocol order for passthru connections
|
||||
*
|
||||
@@ -234,6 +247,8 @@ public class PassthruServerFactory implements FactoryBean, InitializingBean, Dis
|
||||
passthruServers.setConnectionTimeout(this.timeout);
|
||||
}
|
||||
|
||||
passthruServers.setNullDomainUseAnyServer(this.nullDomainUseAnyServer);
|
||||
|
||||
// Check if a server name has been specified
|
||||
|
||||
String srvList = null;
|
||||
|
@@ -478,10 +478,6 @@ public class AlfrescoRpcAuthenticator implements RpcAuthenticator, InitializingB
|
||||
// Process the user list
|
||||
|
||||
for ( UserMapping userElem : this.userMappings)
|
||||
{
|
||||
// Validate the element type
|
||||
|
||||
if ( userElem.getName().equalsIgnoreCase( "user"))
|
||||
{
|
||||
// Get the user name, user id and group id
|
||||
|
||||
@@ -511,9 +507,6 @@ public class AlfrescoRpcAuthenticator implements RpcAuthenticator, InitializingB
|
||||
logger.debug("Ignored duplicate mapping for uid=" + userElem.getUid() + ", gid=" + userElem.getGid());
|
||||
}
|
||||
}
|
||||
else
|
||||
throw new InvalidConfigurationException( "Invalid user mapping, " + userElem.getName());
|
||||
}
|
||||
}
|
||||
|
||||
// Make sure there are some user mappings
|
||||
|
@@ -29,6 +29,7 @@ import java.util.StringTokenizer;
|
||||
|
||||
import org.alfresco.error.AlfrescoRuntimeException;
|
||||
import org.alfresco.filesys.alfresco.AlfrescoContext;
|
||||
import org.alfresco.filesys.alfresco.AlfrescoDiskDriver;
|
||||
import org.alfresco.filesys.alfresco.IOControlHandler;
|
||||
import org.alfresco.filesys.state.FileState;
|
||||
import org.alfresco.filesys.state.FileStateTable;
|
||||
@@ -126,8 +127,6 @@ public class AVMContext extends AlfrescoContext
|
||||
|
||||
// Set the store version to use
|
||||
setVersion(version);
|
||||
|
||||
afterPropertiesSet();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -146,8 +145,6 @@ public class AVMContext extends AlfrescoContext
|
||||
// Enable the virtualization view
|
||||
setVirtualView(true);
|
||||
setShowOptions(showOptions);
|
||||
|
||||
afterPropertiesSet();
|
||||
}
|
||||
|
||||
public void setStorePath(String path)
|
||||
@@ -213,10 +210,10 @@ public class AVMContext extends AlfrescoContext
|
||||
m_createStore = createStore;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void afterPropertiesSet()
|
||||
{
|
||||
|
||||
@Override
|
||||
public void initialize(AlfrescoDiskDriver filesysDriver)
|
||||
{
|
||||
if (m_virtualView)
|
||||
{
|
||||
// A context for a view onto all stores/versions within AVM.
|
||||
@@ -241,7 +238,7 @@ public class AVMContext extends AlfrescoContext
|
||||
|
||||
setShareName(m_storePath + "(" + m_version + ")");
|
||||
}
|
||||
super.afterPropertiesSet();
|
||||
super.initialize(filesysDriver);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -426,9 +426,12 @@ public class AVMDiskDriver extends AlfrescoDiskDriver implements DiskInterface
|
||||
* @param context the device context
|
||||
* @exception DeviceContextException
|
||||
*/
|
||||
@Override
|
||||
public void registerContext(DeviceContext ctx)
|
||||
throws DeviceContextException
|
||||
{
|
||||
super.registerContext(ctx);
|
||||
|
||||
AVMContext context = (AVMContext)ctx;
|
||||
// Use the system user as the authenticated context for the filesystem initialization
|
||||
|
||||
@@ -625,7 +628,6 @@ public class AVMDiskDriver extends AlfrescoDiskDriver implements DiskInterface
|
||||
{
|
||||
AuthenticationUtil.popAuthentication();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -499,7 +499,7 @@ public class CIFSConfigBean
|
||||
*
|
||||
* @return the session timeout
|
||||
*/
|
||||
protected Integer getSessionTimeout()
|
||||
public Integer getSessionTimeout()
|
||||
{
|
||||
return sessionTimeout;
|
||||
}
|
||||
@@ -510,7 +510,7 @@ public class CIFSConfigBean
|
||||
* @param sessionTimeout
|
||||
* the new session timeout
|
||||
*/
|
||||
protected void setSessionTimeout(Integer sessionTimeout)
|
||||
public void setSessionTimeout(Integer sessionTimeout)
|
||||
{
|
||||
this.sessionTimeout = sessionTimeout;
|
||||
}
|
||||
|
@@ -28,6 +28,7 @@ import java.util.List;
|
||||
|
||||
import org.alfresco.error.AlfrescoRuntimeException;
|
||||
import org.alfresco.filesys.alfresco.AlfrescoContext;
|
||||
import org.alfresco.filesys.alfresco.AlfrescoDiskDriver;
|
||||
import org.alfresco.filesys.alfresco.IOControlHandler;
|
||||
import org.alfresco.jlan.server.auth.acl.AccessControl;
|
||||
import org.alfresco.jlan.server.core.DeviceContextException;
|
||||
@@ -100,8 +101,6 @@ public class ContentContext extends AlfrescoContext
|
||||
setStoreName(storeName);
|
||||
setRootPath(rootPath);
|
||||
setRootNodeRef(rootNodeRef);
|
||||
|
||||
afterPropertiesSet();
|
||||
}
|
||||
|
||||
public void setStoreName(String name)
|
||||
@@ -148,9 +147,9 @@ public class ContentContext extends AlfrescoContext
|
||||
|
||||
|
||||
@Override
|
||||
public void afterPropertiesSet()
|
||||
public void initialize(AlfrescoDiskDriver filesysDriver)
|
||||
{
|
||||
super.afterPropertiesSet();
|
||||
super.initialize(filesysDriver);
|
||||
|
||||
if (m_storeName == null || m_storeName.length() == 0)
|
||||
{
|
||||
|
@@ -426,8 +426,6 @@ public class ContentDiskDriver extends AlfrescoDiskDriver implements DiskInterfa
|
||||
context.setDisableNodeMonitor(true);
|
||||
}
|
||||
|
||||
context.afterPropertiesSet();
|
||||
|
||||
registerContext(context);
|
||||
|
||||
// Return the context for this shared filesystem
|
||||
@@ -444,8 +442,11 @@ public class ContentDiskDriver extends AlfrescoDiskDriver implements DiskInterfa
|
||||
* @param ctx the context
|
||||
* @exception DeviceContextException
|
||||
*/
|
||||
@Override
|
||||
public void registerContext(DeviceContext ctx) throws DeviceContextException
|
||||
{
|
||||
super.registerContext(ctx);
|
||||
|
||||
ContentContext context = (ContentContext)ctx;
|
||||
|
||||
// Wrap the initialization in a transaction
|
||||
|
@@ -35,6 +35,8 @@ import java.util.Map;
|
||||
import java.util.StringTokenizer;
|
||||
|
||||
import org.alfresco.config.ConfigElement;
|
||||
import org.alfresco.filesys.alfresco.AlfrescoContext;
|
||||
import org.alfresco.filesys.alfresco.AlfrescoDiskDriver;
|
||||
import org.alfresco.filesys.alfresco.DesktopAction;
|
||||
import org.alfresco.filesys.alfresco.DesktopActionException;
|
||||
import org.alfresco.filesys.alfresco.DesktopParams;
|
||||
@@ -42,7 +44,6 @@ import org.alfresco.filesys.alfresco.DesktopResponse;
|
||||
import org.alfresco.jlan.server.filesys.DiskSharedDevice;
|
||||
import org.alfresco.scripts.ScriptException;
|
||||
import org.alfresco.service.cmr.repository.ScriptService;
|
||||
import org.alfresco.service.transaction.TransactionService;
|
||||
|
||||
/**
|
||||
* Javascript Desktop Action Class
|
||||
@@ -126,7 +127,7 @@ public class JavaScriptDesktopAction extends DesktopAction {
|
||||
throw new DesktopActionException("Empty desktop action attributes");
|
||||
|
||||
// Parse the attribute string
|
||||
setAttributes(elem.getValue());
|
||||
setAttributeList(elem.getValue());
|
||||
}
|
||||
|
||||
// Check if the desktop action pre-processing options have been specified
|
||||
@@ -134,16 +135,17 @@ public class JavaScriptDesktopAction extends DesktopAction {
|
||||
elem = config.getChild("preprocess");
|
||||
if ( elem != null)
|
||||
{
|
||||
setPreProcessActions(elem.getValue());
|
||||
setPreprocess(elem.getValue());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void afterPropertiesSet() throws DesktopActionException
|
||||
public void initializeAction(AlfrescoDiskDriver filesysDriver, AlfrescoContext filesysContext)
|
||||
throws DesktopActionException
|
||||
{
|
||||
// Perform standard initialization
|
||||
|
||||
super.afterPropertiesSet();
|
||||
super.initializeAction(filesysDriver, filesysContext);
|
||||
|
||||
// Get the script file name and check that it exists
|
||||
|
||||
@@ -368,7 +370,7 @@ public class JavaScriptDesktopAction extends DesktopAction {
|
||||
*
|
||||
* @param name String
|
||||
*/
|
||||
protected final void setScriptName(String name)
|
||||
public final void setScriptName(String name)
|
||||
{
|
||||
m_scriptName = name;
|
||||
}
|
||||
@@ -379,7 +381,7 @@ public class JavaScriptDesktopAction extends DesktopAction {
|
||||
* @param attributes String
|
||||
* @throws DesktopActionException
|
||||
*/
|
||||
protected void setAttributes(String attributes) throws DesktopActionException
|
||||
public void setAttributeList(String attributes) throws DesktopActionException
|
||||
{
|
||||
// Check if the attribute string is empty
|
||||
if ( attributes == null || attributes.length() == 0)
|
||||
@@ -431,7 +433,7 @@ public class JavaScriptDesktopAction extends DesktopAction {
|
||||
* @param preProcessActions String
|
||||
* @throws DesktopActionException
|
||||
*/
|
||||
protected void setPreProcessActions(String preProcessActions) throws DesktopActionException
|
||||
public void setPreprocess(String preProcessActions) throws DesktopActionException
|
||||
{
|
||||
// Check if the pre-process string is empty
|
||||
|
||||
|
Reference in New Issue
Block a user