[Résolu]Fonctionnement sporadique CIFS....

cancel
Showing results for 
Search instead for 
Did you mean: 
globulle
Member II

[Résolu]Fonctionnement sporadique CIFS....

Bonjour,

Voila un petit moment que je travaille avec la technologie alfresco sur le système d'information de mon entreprise, et jusque la avec un alfresco sous linux, aucun problème d'utilisation n'était à déplorer.

Cependant recemment j'ai du procéder a la migration du depot documentaire vers une installation de Alfresco en 2.1 (la mème que l'ancienne) mais sur un Windows Server 2008.

La migration c'est plutot bien passée (aucune perte de doc ^^) mais le partage CIFS a un fonctionnement totalement erratique.

J'ai deux type de clients des Vista Enterprise et des Windows XP.

Je n'ai pas oublié de mettre mon fichier Win32NetBIOS.dll dans ma racine Windows, et j'ai ensuite customiser un poil mon fichier file-server-custom.xml

Concernant mon fichier File-Server-custom.xml :

<config evaluator="string-compare" condition="CIFS Server">
     <serverEnable enabled="true"/>
      <host name="DepotDoc"/>
      <comment>Alfresco CIFS Server</comment>

      <!– Set to the broadcast mask for the subnet –>
      <broadcast>192.168.1.255</broadcast>
      <bindto>192.168.1.10</bindto>

      <!– Use Java socket based NetBIOS over TCP/IP and native SMB on linux –>
      <!–
      <tcpipSMB platforms="linux,solaris,macosx"/>
      <netBIOSSMB platforms="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"/>
      <netBIOSSMB sessionPort="1139" namePort="1137" datagramPort="1138" platforms="linux,solaris,macosx"/>

     
      <hostAnnounce interval="5"/>

      <!– Use Win32 NetBIOS interface on Windows –>
      <Win32NetBIOS/>
      <Win32Announce interval="5"/>

      <sessionDebug flags="Negotiate,Socket"/>
   </config>

et mon file-server.xml

<alfresco-config area="file-servers">

   <config evaluator="string-compare" condition="CIFS Server">
     <serverEnable enabled="true"/>
      <host name="PROD"/>
      <comment>Alfresco CIFS Server</comment>

      <!– Set to the broadcast mask for the subnet –>
      <broadcast>192.168.1.255</broadcast>

      <!– Use Java socket based NetBIOS over TCP/IP and native SMB on linux –>
      <tcpipSMB platforms="linux,solaris,macosx"/>
      <netBIOSSMB platforms="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"/>
      <netBIOSSMB sessionPort="1139" namePort="1137" datagramPort="1138" platforms="linux,solaris,macosx"/>
     –>
      
      <hostAnnounce interval="5"/>

      <!– Use Win32 NetBIOS interface on Windows –>
      <Win32NetBIOS/>
      <Win32Announce interval="5"/>

<!–
      <WINS>
         <primary>1.2.3.4</primary>
         <secondary>5.6.7.8</secondary>
      </WINS>
–>
      <sessionDebug flags="Negotiate,Socket"/>
   </config>

   <config evaluator="string-compare" condition="FTP Server">
     <serverEnable enabled="true"/>
<!–      <debug flags="File,Search,Error,Directory,Info,DataPort"/> –>
   </config>
  
   <config evaluator="string-compare" condition="NFS Server">
     <serverEnable enabled="false"/>
   </config>
   
   <config evaluator="string-compare" condition="Filesystems">
     <filesystems>
       
       <!– Alfresco repository access shared filesystem –>
         <filesystem name="PROD">
            <store>workspace://SpacesStore</store>
            <rootPath>/app:company_home</rootPath>

         <!– Add a URL file to each folder that links back to the web client –>
         <urlFile>
               <filename>__AlfrescoClient.url</filename>
               <webpath>http://${localname}:8080/alfresco/</webpath>
            </urlFile>

         <!– Mark locked files as offline –>
          <offlineFiles/>

         <!– Desktop actions –>
         <!– Uses a client-side application to trigger a server-side action                         –>
         <!–   Echo - displays a message echoed from the server                                     –>
         <!–   URL  - launches a URL via the Windows shell                                          –>
         <!–   CmdLine - launches the Notepad application                                           –>
         <!–   CheckInOut - checks files in/out, drag and drop files onto the application           –>
         <!–   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.smb.server.repo.desk.EchoDesktopAction</class>
               <name>Echo</name>
                 <filename>__AlfrescoEcho.exe</filename>
            </action>
            <action>
               <class>org.alfresco.filesys.smb.server.repo.desk.URLDesktopAction</class>
               <name>URL</name>
                 <filename>__AlfrescoURL.exe</filename>
            </action>
            <action>
               <class>org.alfresco.filesys.smb.server.repo.desk.CmdLineDesktopAction</class>
               <name>CmdLine</name>
                 <filename>__AlfrescoCmd.exe</filename>
            </action>
            <action>
               <class>org.alfresco.filesys.smb.server.repo.desk.CheckInOutDesktopAction</class>
               <name>CheckInOut</name>
                 <filename>__AlfrescoCheckInOut.exe</filename>
            </action>
            <action>
               <class>org.alfresco.filesys.smb.server.repo.desk.JavaScriptDesktopAction</class>
               <name>JavaScript</name>
               <filename>__AlfrescoScript.exe</filename>
               <script>alfresco/desktop/dumpRequest.js</script>
               <attributes>anyFiles, multiplePaths , allowNoParams</attributes>
               <preprocess>confirm, copyToTarget</preprocess>
            </action>
            <action>
               <class>org.alfresco.filesys.smb.server.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>
–>         
                   
<!–
            <accessControl default="Write">
               <user name="admin" access="Write"/>
               <address subnet="90.1.0.0" mask="255.255.0.0" access="Write"/>
            </accessControl>
–>
         </filesystem>
       
       <!– AVM virtualization view of all stores/versions for WCM –>
         <avmfilesystem name="AVM">
            <virtualView/>
         </avmfilesystem>
       
      </filesystems>
   </config>

   <config evaluator="string-compare" condition="Filesystem Security">
      <authenticator type="enterprise">
      </authenticator>

<!–
      <globalAccessControl default="None">
         <user name="admin" access="Write"/>
         <address ip="90.1.0.90" access="Write"/>
      </globalAccessControl>

      <users>
         <localuser name="user">
            <password>user</password>
            <comment>Normal user account</comment>
         </localuser>
   
         <localuser name="administrator">
            <password>admin</password>
            <administrator/>
            <comment>Administrator account</comment>
         </localuser>
      </users>
–>
   </config>


</alfresco-config>

J'ai changé le nom du partage CIFS racine de Alfresco pour des besoin d'intégration. J'ai du pratiquer deux ou trois petit ajustement eu égard a toute les solution que j'ai pu tester. Donc si le fichier n'est pas "hyper propre" je pense que c'est normal Smiley Happy

Et voici un exemple de log qui me cause des soucis :

07:09:46,593 ERROR [org.alfresco.smb.protocol] Closing session due to exception
net.sf.acegisecurity.AuthenticationCredentialsNotFoundException: A valid SecureContext was not provided in the RequestContext
   at net.sf.acegisecurity.intercept.AbstractSecurityInterceptor.credentialsNotFound(AbstractSecurityInterceptor.java:477)
   at net.sf.acegisecurity.intercept.AbstractSecurityInterceptor.beforeInvocation(AbstractSecurityInterceptor.java:355)
   at net.sf.acegisecurity.intercept.method.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:77)
   at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:176)
   at org.alfresco.repo.security.permissions.impl.ExceptionTranslatorMethodInterceptor.invoke(ExceptionTranslatorMethodInterceptor.java:49)
   at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:176)
   at org.alfresco.repo.audit.AuditComponentImpl.auditImpl(AuditComponentImpl.java:256)
   at org.alfresco.repo.audit.AuditComponentImpl.audit(AuditComponentImpl.java:191)
   at org.alfresco.repo.audit.AuditMethodInterceptor.invoke(AuditMethodInterceptor.java:69)
   at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:176)
   at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:107)
   at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:176)
   at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:210)
   at $Proxy40.searchSimple(Unknown Source)
   at org.alfresco.filesys.smb.server.repo.CifsHelper.getDirectDescendents(CifsHelper.java:430)
   at org.alfresco.filesys.smb.server.repo.CifsHelper.addDescendents(CifsHelper.java:405)
   at org.alfresco.filesys.smb.server.repo.CifsHelper.getNodeRefs(CifsHelper.java:498)
   at org.alfresco.filesys.smb.server.repo.CifsHelper.getNodeRef(CifsHelper.java:521)
   at org.alfresco.filesys.smb.server.repo.ContentDiskDriver.getNodeForPath(ContentDiskDriver.java:2309)
   at org.alfresco.filesys.smb.server.repo.ContentDiskDriver.getFileInformation(ContentDiskDriver.java:593)
   at org.alfresco.filesys.smb.server.CoreProtocolHandler.procGetFileAttributes(CoreProtocolHandler.java:1338)
   at org.alfresco.filesys.smb.server.CoreProtocolHandler.runProtocol(CoreProtocolHandler.java:3721)
   at org.alfresco.filesys.smb.server.NTProtocolHandler.runProtocol(NTProtocolHandler.java:371)
   at org.alfresco.filesys.smb.server.SMBSrvSession.run(SMBSrvSession.java:1352)
   at java.lang.Thread.run(Thread.java:595)
07:09:46,609 ERROR [org.alfresco.smb.protocol] Closing session due to exception

J'ai beaucoup de mal à identifier les défaut de conf avec le log alfresco. Pendant mes test avant la mise en production j'ai mis en place un cluster alfresco (deux serveur un SGBD Mysql ect…) le debug de la configuration a été un veritable enfer.
Bon pour le coup j'ai vu SMB ecrit donc eu égard aux problèmes d'accès au partage CIFS j'ai percuté directement, mais bon sa reste quand même assez approximatif comme diagnostique.

Ce log se répète en boucle je pense que cela se produit au moment d'une tentative de connexion au CIFS. Par contre aucune idée pour ce qui est de régler le problème. J'ai pas mal parcouru les docs disponibles sur le wiki donc je commence a me faire du soucis, vais je devoir complètement désactiver le CIFS ?

Concrètement le problème se traduit par un message au moment de l'accès au partage (en montant un lecteur réseau) "Le nom de réseau n'est plus disponible".
Ce qui arrive également pendant un transfert de fichier vers le CIFS Alfresco, lorsque j'arrive a obtenir un lecteur réseau ….
4 Replies
michaelh
Active Member

Re: [Résolu]Fonctionnement sporadique CIFS....

Ce qui est un miracle, c'est que ça fonctionne parfois  :wink:

Vous déclarez des variables avec des noms différents selon le fichier …
<host name=""/>

En plus sous Windows il ne faut PAS spécifier "host name" avec le nom d'hôte du serveur car Windows fournit aussi des partages et il est alors impossible de différencier la partie Alfresco de celle de la machine hôte. C'est pour cette raison que logiquement le "host name" est en général "nomdemachinea" (notez le "a" qui est ajouté pour faire la différence).

Je me demande si vous connaissez la différence entre fichier de conf "blabla.xml" et "blabla-custom.xml". On utilise l'un ou l'autre (idéalement le second), mais pas les deux.

Enfin une lecture de http://wiki.alfresco.com/wiki/File_Server_Configuration#Vista_And_Windows_2008 s'impose (et pas seulement ce paragraphe, mais toute la page)
globulle
Member II

Re: [Résolu]Fonctionnement sporadique CIFS....

Merci pour avoir pris le temps de me répondre. Voici ce que je vais tenter.

Je vais tacher de remettre tout cela au propre.

Pour plus de clarté je vais recommencer a partir des fichier de configuration "sample".

En fait d'emblée  si le CIFS n'a pas fonctionné c'est à cause des requètes envoyée sur le port 445 ?

Si je repars sur des fichiers de configuration d'origine avec la modification du firewall tout devrait rentrer dans l'ordre ?

Bien évidemment la racine de l'arborescence CIFS va changer de nom mais pour l'instant c'est le cadet de mes soucis.
globulle
Member II

Re: [Résolu]Fonctionnement sporadique CIFS....

Navré pour le double post ^^

Concernant le partage CIFS j'ai réglé le problème avec la manipulation mentionnée ci-dessus. Remise des fichiers de conf d'origine + blocage du protocole SMB.

Cela dit Au niveau du blocage du protocole SMB comme mentionné dans le wiki il faut ajouter la clef de registre ET bloquer dans le parefeu windows. J'ai essayé en configurant uniquement le blocage le CIFS n'a pas fonctionné, une fois ajouté la clef de registre sa été tout seul !

Merci pour m'avoir pousser a mieux utiliser le wiki mes utilisateurs sont heureux d'avoir récupéré leur partage réseau Smiley Happy

Cela dit je suis tout de même perplexe devant la méthode utilisée. Ce n'est que mon avis évidemment mais bloquer le protocole brutalement via le parefeu c'est pas vraiment propre.

N'y a t il vraiment pas un meilleur moyen ?

Merci encore !
michaelh
Active Member

Re: [Résolu]Fonctionnement sporadique CIFS....

Ce n'est en effet pas le plus propre, mais puisque Microsoft a décidé de ne plus permettre de stopper SMB via la base de registre (c'était possible avec les version précédentes), on a pas trop le choix …