Jump to content

linuxx

Members
  • Posts

    1
  • Joined

  • Last visited

Everything posted by linuxx

  1. We use DFS exclusively with our internal file shares. Since our company has started a global initiative with our partners, and international facilities, we found more of a need to deploy something to give access to our corporate DFS tree from anywhere in the world. When we found OpenVPN-ALS (Adito) on a episode of Hak5, we were excited about the opportunities it would open. OpenVPN installed seamlessly in a VMware Ubuntu box without trouble. It was very easy to integrate with our Active Directory. We ran into the first SNAFU with DFS. Every time we would hit a DFS leaf that was supposed to transverse to another file server we would receive the following error... ERROR FileSystemViewDispatchAction - File system error:org.apache.commons.vfs.FileSystemException: Could not list the contents of folder "smb://user:********@fileserver.domain.local/root/Accounting/yadda/yadda". at org.apache.commons.vfs.provider.AbstractFileObject.getChildren(AbstractFileObject.java:552) at com.adito.networkplaces.NetworkPlaceVFSResource.getChildren(NetworkPlaceVFSResource.java:86) at com.adito.networkplaces.actions.FileSystemViewDispatchAction.buildModel(FileSystemViewDispatchAction.java:470) at com.adito.networkplaces.actions.FileSystemViewDispatchAction.list(FileSystemViewDispatchAction.java:413) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:274) at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:194) at com.adito.core.actions.DefaultDispatchAction.execute(DefaultDispatchAction.java:42) at com.adito.core.actions.AuthenticatedDispatchAction.execute(AuthenticatedDispatchAction.java:196) at com.adito.core.actions.AbstractPopupAuthenticatedDispatchAction.execute(AbstractPopupAuthenticatedDispatchAction.java:87) at com.adito.networkplaces.actions.FileSystemViewDispatchAction.execute(FileSystemViewDispatchAction.java:138) at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419) at com.adito.core.CoreRequestProcessor.processActionPerform(CoreRequestProcessor.java:198) at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224) at com.adito.core.CoreRequestProcessor.process(CoreRequestProcessor.java:129) at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196) at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414) at javax.servlet.http.HttpServlet.service(HttpServlet.java:594) at javax.servlet.http.HttpServlet.service(HttpServlet.java:687) at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:426) at org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:831) at com.adito.core.filters.CompressionFilter.doFilter(CompressionFilter.java:79) at org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:822) at org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(WebApplicationHandler.java:472) at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:555) at org.mortbay.http.HttpContext.handle(HttpContext.java:1562) at org.mortbay.jetty.servlet.WebApplicationContext.handle(WebApplicationContext.java:622) at org.mortbay.http.HttpContext.handle(HttpContext.java:1514) at org.mortbay.http.HttpServer.service(HttpServer.java:955) at org.mortbay.http.HttpConnection.service(HttpConnection.java:813) at org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:980) at org.mortbay.http.HttpConnection.handle(HttpConnection.java:830) at org.mortbay.http.SocketListener.handleConnection(SocketListener.java:243) at org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:356) at org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:533) Caused by: jcifs.smb.SmbException: The system cannot find the path specified. at jcifs.smb.SmbTransport.checkStatus(SmbTransport.java:510) at jcifs.smb.SmbTransport.send(SmbTransport.java:587) at jcifs.smb.SmbSession.send(SmbSession.java:231) at jcifs.smb.SmbTree.send(SmbTree.java:102) at jcifs.smb.SmbFile.send(SmbFile.java:689) at jcifs.smb.SmbFile.doFindFirstNext(SmbFile.java:1698) at jcifs.smb.SmbFile.list(SmbFile.java:1563) at jcifs.smb.SmbFile.list(SmbFile.java:1455) at org.apache.commons.vfs.provider.smb.SmbFileObject.doListChildren(SmbFileObject.java:126) at org.apache.commons.vfs.provider.AbstractFileObject.getChildren(AbstractFileObject.java:548) Through some searching I found that this error was a bug in the older version of jcifs. I searched around and found that adito-0.9.1 used jcifs v1.2.13 (please correct me if I am wrong). The bug with DFS was corrected with jcifs v1.2.24. When you go to the jcifs website, they have a downloadable version of 1.2.25. So I used the following steps to patch our OpenVPN-ALS (we installed it in /opt/adito-0.9.1/) cd /opt/adito-0.9.1/webapp/WEB-INF/lib/ mv adito-jcifs.jar adito-jcifs.jar.backup wget http://jcifs.samba.org/src/jcifs-1.2.25.jar mv jcifs-1.2.25.jar adito-jcifs.jar Then bounce OpenVPN-ALS and DFS should work. **EDIT** I still had issues with DFS after this patch. Here was my log... [main-2] INFO FileSystemViewDispatchAction - Unable to display file ***** as it is an imaginary file. [main-2] INFO FileSystemViewDispatchAction - Unable to display file ***** as it is an imaginary file. [main-2] INFO FileSystemViewDispatchAction - Unable to display file ***** as it is an imaginary file. [main-2] INFO FileSystemViewDispatchAction - Unable to display file ***** as it is an imaginary file. [main-2] INFO FileSystemViewDispatchAction - Unable to display file ***** as it is an imaginary file. [main-2] INFO FileSystemViewDispatchAction - Unable to display file ***** as it is an imaginary file. [main-2] INFO FileSystemViewDispatchAction - Unable to display file ***** as it is an imaginary file. [main-2] INFO FileSystemViewDispatchAction - Unable to display file ***** as it is an imaginary file. After further discovery I found that I needed a newer version of jcifs. I tried jcifs-1.3.12.jar, but when I would open the "Network Place" it would prompt me for credentials. I tried DOMAIN\username, username@domain.local, etc without luck. Then I noticed jcifs-krb5-1.3.12.jar in http://jcifs.samba.org/src/. I downloaded that, renamed it adito-jcifs.jar and tried again. I was prompted for credentials again, but this time DOMAIN\username worked. So I changed the network place username to DOMAIN\${session:username}. Now it works without any problems. **New Steps** cd /opt/adito-0.9.1/webapp/WEB-INF/lib/ mv adito-jcifs.jar adito-jcifs.jar.backup wget http://jcifs.samba.org/src/jcifs-krb5-1.3.12.jar mv jcifs-krb5-1.3.12.jar adito-jcifs.jar Linuxx
×
×
  • Create New...