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

📄 userrepository.java

📁 UML for Java Programmers中文版源码
💻 JAVA
字号:
package com.objectmentor.SMCRemote.server;

import org.jdom.*;
import org.jdom.input.SAXBuilder;
import org.jdom.output.XMLOutputter;

import java.io.*;

public class UserRepository implements UserDirectory {
  private File userDirectory = new File("users");

  public UserRepository() {
    if (!userDirectory.exists())
      userDirectory.mkdir();
  }

  public boolean isValid(String username, String password) {
    return password.equals(getPassword(username));
  }

  public String getPassword(String username) {
    String password = null;
    try {
      File userFile = new File(userDirectory, username);
      if (userFile.canRead()) {
        SAXBuilder builder = new SAXBuilder("org.apache.xerces.parsers.SAXParser");
        Document userDoc = builder.build(userFile);
        Element user = userDoc.getRootElement();
        password = user.getChild("password").getTextTrim();
      }
    } catch (JDOMException e) {
      System.out.println("e = " + e);
    }
    return password;
  }

  public boolean add(String username, String password) throws Exception {
    File userFile = new File(userDirectory, username);
    if (userFile.exists() == false) {
      addNewUser(userFile, username, password);
      return true;
    } else {
      return false;
    }
  }

  private void addNewUser(File userFile, String username, String password) throws Exception {
    userFile.createNewFile();
    FileOutputStream os = new FileOutputStream(userFile);
    Document userDoc = createUserDocument(username, password);
    XMLOutputter xmlOut = new XMLOutputter();
    xmlOut.output(userDoc, os);
    os.close();
  }

  private Document createUserDocument(String username, String password) {
    Element user = new Element("user");
    user.addContent(new Element("name").setText(username));
    user.addContent(new Element("password").setText(password));
    Document userDoc = new Document(user);
    return userDoc;
  }

  static boolean clearUserRepository() {
    boolean cleared = true;
    File userDirectory = new File("users");
    File files[] = userDirectory.listFiles();
    for (int i = 0; i < files.length; i++) {
      File file = files[i];
      if (file.delete() == false)
        cleared = false;
    }
    if (userDirectory.delete() == false)
      cleared = false;
    return cleared;
  }
}

⌨️ 快捷键说明

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