⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jembossauthserver.java

📁 emboss的linux版本的源代码
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
  /**  *  * Returns the results for a saved project.  * @param project 	project directory name  * @param cl		unused if showing all results   *			otherwise this is the name of   *    			the file to display  * @param userName	username  * @param passwd	passwd  * @return 		saved results files  *  */  public Vector show_saved_results(String project, String cl,                              String userName, byte[] passwd)  {    Ajax aj = new Ajax();    Vector ssr = new Vector();    if(!verifyUser(aj,userName,passwd,ssr))      return ssr;    project = tmproot.concat(userName+fs+project);    if(cl.equals(""))    {      File projectDir = new File(project);      ssr = loadFilesContent(aj,userName,passwd,                      projectDir,project,ssr,null);    }    else    {      byte fbuf[]=null;      try      {        fbuf =  aj.getFile(userName,passwd,environ,                                  project+fs+cl);        ssr.add(cl);        ssr.add(new String(fbuf));      }      catch(Exception exp){}    }     ssr.add("status");    ssr.add("0");    ssr.add("msg");    ssr.add("OK");    for(int i=0;i<passwd.length;i++)      passwd[i] = '\0';    return ssr;  }  /**  *    * Save a file to a project directory on the server.  * @return 	message  *  */  public Vector save_project_file(String project, String filename,                     String notes, String userName, byte[] passwd)  {    Ajax aj = new Ajax();    Vector v = new Vector(4);    if(!verifyUser(aj,userName,passwd,v))    {      v.trimToSize();      return v;    }    final String fn = tmproot + fs + userName+ fs +                      project + fs + filename;    boolean ok = aj.putFile(userName,passwd,environ,                            fn,notes.getBytes());    v.add("status");    v.add("0");    v.add("msg");    for(int i=0;i<passwd.length;i++)      passwd[i] = '\0';    if(ok)      v.add("OK");     else      return returnError(aj,"Failed to save file "+fn,userName);            return v;  }  /**  *    * Deletes a projects saved results.  * @param project	project directory name  * @param cl		unused  * @param userName	username  * @param passwd	passwd  * @return message  *  */  public Vector delete_saved_results(String project, String cl,                                String userName, byte[] passwd)  {    Vector dsr = new Vector(4);    Ajax aj = new Ajax();    if(!verifyUser(aj,userName,passwd,dsr))    {      dsr.trimToSize();      return dsr;    }    tmproot = tmproot.concat(userName+fs);    StringTokenizer st = new StringTokenizer(project,"\n");    while(st.hasMoreTokens())     {      String proj = tmproot.concat(st.nextToken());      boolean ok = aj.delDir(userName,passwd,environ,proj);      if(!ok || !aj.getErrStd().equals(""))        return returnError(aj,"Failed deletion of directory "+proj,userName);    }    dsr.add("status");    dsr.add("0");    dsr.add("msg");    dsr.add("Results deleted successfully.");    for(int i=0;i<passwd.length;i++)      passwd[i] = '\0';    return dsr;  }  /**  *  * List of the saved results on the server.  * @param userName     username  * @param passwd       passwd  * @return 		list of the saved results.  *  */  public Vector list_saved_results(String userName, byte[] passwd)  {    Ajax aj = new Ajax();    Vector lsr = new Vector();    if(!verifyUser(aj,userName,passwd,lsr))      return lsr;    tmproot = tmproot.concat(userName+fs);    lsr.add("status");    lsr.add("0");    lsr.add("msg");    lsr.add("OK");    aj.setErrStd();    boolean lsd = aj.listDirs(userName,passwd,environ,tmproot);        String outStd = aj.getOutStd();    int indStart = 0;    int indEnd   = 0;//  StringTokenizer stok = new StringTokenizer(outStd,"\n");//  while(stok.hasMoreTokens())    while((indEnd = outStd.indexOf("\n",indStart)) > -1)     {//    String dirname = stok.nextToken();      String dirname = outStd.substring(indStart,indEnd);      indStart = indEnd+1;      lsr.add(dirname);      byte fbuf[] = aj.getFile(userName,passwd,environ,                     tmproot + dirname + fs + ".desc");      lsr.add(new String(fbuf));      if(aj.getFileok()!=1)      {        String dat = new Date().toString();        dat = dat.replace(':','_');        appendToLogFile(userName+":: "+dat+" Calling getFile : "+tmproot +                        dirname + fs + ".desc\n"+                        "STDERR "+aj.getErrStd()+"\n"+                        "STDOUT "+aj.getOutStd(),errorLog);      }    }        lsr.add("list");    lsr.add(outStd);    for(int i=0;i<passwd.length;i++)      passwd[i] = '\0';    return lsr;  }  /**  *  * Appends a log entry to the log file  * @param logEntry	entry to add to log file  * @param logFileName 	log file name  *  */   private void appendToLogFile(String logEntry, String logFileName)  {    BufferedWriter bw = null;    try     {      bw = new BufferedWriter(new FileWriter(logFileName, true));      bw.write(logEntry);      bw.newLine();      bw.flush();    }     catch (Exception ioe)     {      System.out.println("Error writing to log file "+logFile);      ioe.printStackTrace();    }     finally                     // always close the file    {                             if(bw != null)       try      {        bw.close();      }       catch (IOException ioe2) {}    }  }  /**  *  * Reads in files from EMBOSS output  * @param aj		ajax/jni  * @param userName	username  * @param passwd	passwd  * @param projectDir	project directory  * @param project     	project name  * @param result	results  * @param inFiles	input files  * @return		result  *  */  private Vector loadFilesContent(Ajax aj, String userName,             byte[] passwd, File projectDir, String project,            Vector result, Vector inFiles)  {    boolean ls = false;    try    {      ls = aj.listFiles(userName,passwd,environ,project);    }    catch(Exception exp){}    if(!ls)    {      String dat = new Date().toString();      dat = dat.replace(':','_');      appendToLogFile(userName+":: "+dat+                      " Failed loadFilesContent\n"+                      "STDERR "+aj.getErrStd()+"\n"+                      "STDOUT "+aj.getOutStd(),errorLog);    }    StringTokenizer stok = new StringTokenizer(aj.getOutStd(),"\n");    String fn =  null;    while(stok.hasMoreTokens())     {      fn = stok.nextToken();      if(inFiles == null || !inFiles.contains(fn))      {        byte fbuf[]=null;        try        {          fbuf =  aj.getFile(userName,passwd,environ,                                    project+fs+fn);        }        catch(Exception exp){}        if(aj.getFileok()==1)        {          result.add(fn);          result.add(fbuf);        }        else        {          String dat = new Date().toString();          dat = dat.replace(':','_');          appendToLogFile(userName+":: "+dat+                          " Cannot getFile "+project+fs+fn,errorLog);        }      }    }    return result;  }  /**  *  * Used to provide information on the batch/background  * processes.  * @param prog         program  * @param opt          options  * @param resToQuery   results to query  * @param userName     username  * @param passwd       passwd  *  */  public Vector update_result_status(String prog, String opt,                        Vector resToQuery,String userName,                        byte[] passwd)  {    Ajax aj = new Ajax();    Vector vans = new Vector();    if(!verifyUser(aj,userName,passwd,vans))      return vans;    tmproot = tmproot.concat(userName+fs);    for(Enumeration e = resToQuery.elements() ; e.hasMoreElements() ;)    {      String thiskey = (String)e.nextElement();      e.nextElement();      try      {        aj.getFile(userName,passwd,environ,                 tmproot+thiskey+fs+".finished");      }      catch(Exception ex){}      if((aj.getErrStd().indexOf("stat error") == -1) &&         (aj.getFileok()==1))      {        vans.add(thiskey);        vans.add("complete");                byte fbuf[] = aj.getFile(userName,passwd,environ,                tmproot + fs + thiskey+ fs + ".desc");        if(aj.getFileok()==1)        {          vans.add(thiskey+"-description");          vans.add(new String(fbuf));        }      }      else      {        vans.add(thiskey);        vans.add("pending");      }    }    for(int i=0;i<passwd.length;i++)      passwd[i] = '\0';    return vans;  }  /**  *  * Verify the username/passwd  * @param aj		ajax/jni  * @param userName 	username  * @param passwd	password  * @param res		results vector  * @return		true if authenticated ok  *  */  private boolean verifyUser(Ajax aj, String userName,                             byte[] passwd, Vector res)  {    if(userName == null || passwd == null)    {//    System.out.println("Failed Authorisation "+userName);      res.add("msg");      res.add("Failed Authorisation ");      res.add("status");      res.add("1");      return false;    }    boolean ok = false;    try    {      ok = aj.userAuth(userName,passwd,environ);    }    catch(Exception exp)     {      ok = false;    }    if(!ok)    {      String dat = new Date().toString();      dat = dat.replace(':','_');      appendToLogFile(userName+":: "+dat+                      " Failed Authorisation "+userName+"\n"+                      "STDERR "+aj.getErrStd(),errorLog);      res.add("msg");      res.add("Failed Authorisation "+userName);      res.add("status");      res.add("1");      return false;    }    return true;  }  /**  *  * Report the stderr and stdout to error logs  * @param aj	ajax/jni  * @param msg 	message  * @return	vector containing the message   *  */  private Vector returnError(Ajax aj, String msg, String userName)  {    String dat = new Date().toString();    dat = dat.replace(':','_');    appendToLogFile(userName+":: "+dat+                    " STDERR "+aj.getErrStd()+"\n"+                    "STDOUT "+aj.getOutStd()+"\n"+                    "MSG    "+msg,errorLog);    Vector vans = new Vector(4);    vans.add("msg");    vans.add(aj.getErrStd());    vans.add("status");    vans.add("1");    return vans;  }  public final Object clone() throws java.lang.CloneNotSupportedException  {    throw new java.lang.CloneNotSupportedException();  }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -