123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223 |
- package de.tudarmstadt.informatik.hostage.protocol.cifs;
- //import org.alfresco.config.ConfigElement;
- import org.alfresco.jlan.server.NetworkServer;
- 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.DiskDeviceContext;
- import org.alfresco.jlan.server.filesys.DiskInterface;
- import org.alfresco.jlan.server.filesys.FileAttribute;
- import org.alfresco.jlan.server.filesys.FileExistsException;
- import org.alfresco.jlan.server.filesys.FileInfo;
- import org.alfresco.jlan.server.filesys.FileName;
- import org.alfresco.jlan.server.filesys.FileOpenParams;
- import org.alfresco.jlan.server.filesys.FileStatus;
- import org.alfresco.jlan.server.filesys.FileSystem;
- import org.alfresco.jlan.server.filesys.NetworkFile;
- import org.alfresco.jlan.server.filesys.SearchContext;
- import org.alfresco.jlan.server.filesys.TreeConnection;
- import org.alfresco.jlan.smb.server.disk.JavaNetworkFile;
- import org.springframework.extensions.config.ConfigElement;
- import java.io.File;
- import java.io.FileNotFoundException;
- import java.io.IOException;
- public class PseudoCIFSDiskDriver implements DiskInterface {
- private TreeConnection SMBTree;
- private static class PseudoNetworkFile extends NetworkFile {
- public PseudoNetworkFile(String name){
- super(name);
- setFileSize(12);
- setModifyDate(System.currentTimeMillis());
- setCreationDate(System.currentTimeMillis());
- }
- @Override
- public void openFile(boolean createFlag) throws IOException {
- setClosed(false);
- }
- @Override
- public int readFile(byte[] buf, int len, int pos, long fileOff) throws IOException {
- return 0;
- }
- @Override
- public void writeFile(byte[] buf, int len, int pos, long fileOff) throws IOException {
- }
- @Override
- public long seekFile(long pos, int typ) throws IOException {
- return 0;
- }
- @Override
- public void flushFile() throws IOException {
- }
- @Override
- public void truncateFile(long siz) throws IOException {
- }
- @Override
- public void closeFile() throws IOException {
- setClosed(true);
- }
- }
- @Override
- public void closeFile(SrvSession srvSession, TreeConnection treeConnection, NetworkFile networkFile) throws IOException {
- networkFile.closeFile();
- }
- @Override
- public void createDirectory(SrvSession srvSession, TreeConnection treeConnection, FileOpenParams fileOpenParams) throws IOException {
- }
- @Override
- public NetworkFile createFile(SrvSession srvSession, TreeConnection treeConnection, FileOpenParams fileOpenParams) throws IOException {
- throw new FileExistsException();
- }
- @Override
- public void deleteDirectory(SrvSession srvSession, TreeConnection treeConnection, String s) throws IOException {
- }
- @Override
- public void deleteFile(SrvSession srvSession, TreeConnection treeConnection, String s) throws IOException {
- }
- @Override
- public int fileExists(SrvSession srvSession, TreeConnection treeConnection, String s) {
- DeviceContext ctx = treeConnection.getContext();
- String filename = FileName.buildPath(ctx.getDeviceName(), s, null, File.separatorChar);
- File chkFile = new File(filename);
- if(chkFile.isFile()){
- return FileStatus.FileExists;
- }
- else {
- return FileStatus.DirectoryExists;
- }
- }
- @Override
- public void flushFile(SrvSession srvSession, TreeConnection treeConnection, NetworkFile networkFile) throws IOException {
- }
- @Override
- public FileInfo getFileInformation(SrvSession srvSession, TreeConnection treeConnection, String name) throws IOException {
- //String path = FileName.buildPath(treeConnection.getContext().getDeviceName(), "/", "jlan", java.io.File.separatorChar);
- //File file = new File(treeConnection.getContext().getDeviceName(), "jlan");
- //int fattr = FileAttribute.ReadOnly;
- String path = FileName.buildPath(treeConnection.getContext().getDeviceName(), name, null, java.io.File.separatorChar);
- System.out.println("PATH::::"+path);
- int fattr = FileAttribute.Directory;
- FileInfo finfo = new FileInfo(path, 0, fattr);
- long fdate = System.currentTimeMillis();
- finfo.setModifyDateTime(fdate);
- finfo.setFileId(path.hashCode());
- finfo.setCreationDateTime(fdate - 1000);
- finfo.setChangeDateTime(fdate);
- return finfo;
- }
- @Override
- public boolean isReadOnly(SrvSession srvSession, DeviceContext deviceContext) throws IOException {
- return true;
- }
- @Override
- public NetworkFile openFile(SrvSession srvSession, TreeConnection treeConnection, FileOpenParams fileOpenParams) throws IOException {
- System.out.println("openFile method::::"+srvSession + " - " + treeConnection + " - " + fileOpenParams);
- String fname = FileName.buildPath(treeConnection.getContext().getDeviceName(), fileOpenParams.getPath(), null, java.io.File.separatorChar);
- File file = new File(fname);
- File subFile = new File("/test.txt");
- NetworkFile netFile = new JavaNetworkFile(file,fname);
- netFile.setGrantedAccess(fileOpenParams.getAttributes());
- netFile.setAttributes(FileAttribute.Directory);
- netFile.setDirectoryId(5);
- NetworkFile subNetFile = new JavaNetworkFile(subFile, "/test.txt");
- subNetFile.setGrantedAccess(NetworkFile.READONLY);
- subNetFile.setAttributes(FileAttribute.ReadOnly);
- subNetFile.setDirectoryId(netFile.getDirectoryId());
- return netFile;
- }
- @Override
- public int readFile(SrvSession srvSession, TreeConnection treeConnection, NetworkFile networkFile, byte[] bytes, int i, int i2, long l) throws IOException {
- System.out.println("readFile method::::"+srvSession + " - " + treeConnection + " - "+networkFile);
- return 0;
- }
- @Override
- public void renameFile(SrvSession srvSession, TreeConnection treeConnection, String s, String s2) throws IOException {
- }
- @Override
- public long seekFile(SrvSession srvSession, TreeConnection treeConnection, NetworkFile networkFile, long l, int i) throws IOException {
- System.out.println("seekFile method::::"+srvSession + " - " + treeConnection + " - "+networkFile);
- return 0;
- }
- @Override
- public void setFileInformation(SrvSession srvSession, TreeConnection treeConnection, String s, FileInfo fileInfo) throws IOException {
- }
- @Override
- public SearchContext startSearch(SrvSession srvSession, TreeConnection treeConnection, String s, int i) throws FileNotFoundException {
- throw new FileNotFoundException();
- }
- @Override
- public void truncateFile(SrvSession srvSession, TreeConnection treeConnection, NetworkFile networkFile, long l) throws IOException {
- }
- @Override
- public int writeFile(SrvSession srvSession, TreeConnection treeConnection, NetworkFile networkFile, byte[] bytes, int i, int i2, long l) throws IOException {
- return 0;
- }
- @Override
- public DeviceContext createContext(String s, ConfigElement configElement) throws DeviceContextException {
- DiskDeviceContext ctx = new DiskDeviceContext("/");
- ctx.setFilesystemAttributes(FileSystem.CasePreservedNames + FileSystem.UnicodeOnDisk);
- ctx.setAvailable(true);
- return ctx;
- }
- @Override
- public void treeOpened(SrvSession srvSession, TreeConnection treeConnection) {
- System.out.println("treeOpened method::::"+srvSession + " - " + treeConnection);
- System.out.println("treeOpened method::::"+treeConnection.getContext().getDeviceName());
- }
- @Override
- public void treeClosed(SrvSession srvSession, TreeConnection treeConnection) {
- }
- }
|