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

📄 user.java

📁 一个可以在applet窗体上持行sql语句并显示返回结果的程序
💻 JAVA
字号:
/*
 * User.java
 */

package org.hsql;
import java.sql.*;
import java.util.*;

class User {
  private boolean bAdministrator;
  private Hashtable hRight;
  private String sName,sPassword;
  private User uPublic;

  User(String name,String password,boolean admin,User pub) {
    hRight=new Hashtable();
    sName=name;
    setPassword(password);
    bAdministrator=admin;
    uPublic=pub;
  }
  String getName() {
    return sName;
  }
  String getPassword() {
    // necessary to create the script
    return sPassword;
  }
  Hashtable getRights() {
    // necessary to create the script
    return hRight;
  }
  void setPassword(String password) {
    sPassword=password;
  }
  void checkPassword(String test) throws SQLException {
    Trace.check(test.equals(sPassword),Trace.ACCESS_IS_DENIED);
    // this is a safer (but slower) version:
    // if the password is not over 64 characters then this
    // algorithm needs always about the same amount of time
    /*
    int maxtest=test.length();
    int maxpass=sPassword.length();
    int max=64;
    if(maxtest>max) {
      max=maxtest;
    }
    if(maxpass>max) {
      max=maxpass;
    }
    boolean correct=true,dummy=true;
    for(int i=0;i<max;i++) {
      char a= (i>=maxtest) ? 0 : test.charAt(i);
      char b= (i>=maxpass) ? 0 : sPassword.charAt(i);
      if(a!=b) {
        correct=false;
      } else {
        dummy=true;
      }
    }
    Trace.check(correct,Trace.ACCESS_IS_DENIED);
    */
  }
  void grant(String object,int right) {
    Integer n=(Integer)hRight.get(object);
    if(n==null) {
      n=new Integer(right);
    } else {
      n=new Integer(n.intValue() | right);
    }
    hRight.put(object,n);
  }
  void revoke(String object,int right) {
    Integer n=(Integer)hRight.get(object);
    if(n==null) {
      n=new Integer(right);
    } else {
      n=new Integer(n.intValue() & (Access.ALL-right));
    }
    hRight.put(object,n);
  }
  void revokeAll() {
    hRight=null;
    bAdministrator=false;
  }
  void check(String object,int right) throws SQLException {
    if(bAdministrator) {
      return;
    }
    Integer n;
    n=(Integer)hRight.get(object);
    if(n!=null && (n.intValue()&right)!=0) {
      return;
    }
    if(uPublic!=null) {
      n=(Integer)(uPublic.hRight).get(object);
      if(n!=null && (n.intValue()&right)!=0) {
        return;
      }
    }
    throw Trace.error(Trace.ACCESS_IS_DENIED);
  }
  void checkAdmin() throws SQLException {
    Trace.check(isAdmin(),Trace.ACCESS_IS_DENIED);
  }
  boolean isAdmin() {
    return bAdministrator;
  }
}

⌨️ 快捷键说明

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