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

📄 password.java

📁 一个日本流行的,功能较全的开源Web办公管理(Groupware)系统。
💻 JAVA
字号:
package jp.co.sjts.gsession.main;

/*
 * 儐乕僓僨乕僞  Password.java
 * Copyright (C) 1999-2000 Japan Total System Co,LTD
 *    Satoru K  <koni@sjts.co.jp>
 */

import java.io.Serializable;
import java.util.Collections;
import java.util.Collection;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.Map;
import java.util.HashMap;
import java.util.StringTokenizer;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import jp.co.sjts.gsession.tools.*;

public class Password implements Cloneable,IPassword,Serializable
{

	// 僟僀僕僃僗僩嶌惉梡丂曄峏偟偰僐儞僷僀儖偡傞傋偒両両
	private static final String passphrase = "Gsession";

	private String	User;					// 儐乕僓幆暿
	private String	mdPass;					// 埫崋壔僷僗儚乕僪
	private int		UserID;					// 儐乕僓ID
	private Map 	GroupMap = null;		// 僌儖乕僾IDs & Auth
	private String	Name;					// 儐乕僓柤
	private String	LastLoginTime;			// 慜夞儘僌僀儞帪娫

	public String GetUser() { return new String(User); }
	public int GetUserID() { return UserID; }
	public String GetName() { return new String(Name); }
	public String GetLastLoginTime() { return new String(LastLoginTime); }

	public synchronized IPassword.GroupAuth[] GetGroupAuthArray(){
		Collection collection = GroupMap.values();
		if(collection.size()>0)
			return (IPassword.GroupAuth[])collection.toArray(new IPassword.GroupAuth[1]);
		else
			return null;
	}

	public synchronized IPassword.GroupAuth GetGroupAuth(int gid){
		return (IPassword.GroupAuth)GroupMap.get(new Integer(gid));
	}

	public synchronized void SetMDPass(String mdPass){
		this.mdPass = mdPass;
	}

	public synchronized String GetMDPass(){
		return mdPass;
	}

	// 儘僌僆儞梡偺儐乕僓幆暿愝掕
	public synchronized void SetUser(String User){
		this.User = User;
	}

	public synchronized void SetName(String Name){
		this.Name = Name;
	}

	public synchronized void SetLastLoginTime(String LastLoginTime){
		this.LastLoginTime = LastLoginTime;
	}


	public Object clone() throws java.lang.CloneNotSupportedException
	{
		return super.clone();
    }

	/*
	* 僐儞僗僩儔僋僞
	*/
	public Password(String User,String mdPass,String UserID,String groupids,String Name,String LastLoginTime)
	{
		this.User = User;
		this.mdPass = mdPass;
		this.UserID = Integer.parseInt(UserID);
		this.Name = Name;
		this.LastLoginTime = LastLoginTime;

		GroupMap = Collections.synchronizedMap(new HashMap());

		StringTokenizer st = new StringTokenizer(groupids,":");
		while(st.hasMoreTokens())
		{
			IPassword.GroupAuth ga;
			String group = st.nextToken();
			if(group.endsWith("a"))
			{// 偙偺僌儖乕僾偺娗棟幰尃尷傪帩偭偰偄傞
				String gid = group.substring(0,group.length()-1);
				ga = new IPassword.GroupAuth(Integer.parseInt(gid),AUTH_ADMIN);
			}else
			{// 偙偺僌儖乕僾偺堦斒儐乕僓偱偁傞
				ga = new IPassword.GroupAuth(Integer.parseInt(group),AUTH_NORMAL);
			}
			GroupMap.put(new Integer(ga.GID),ga);
		}
	}

	public Password(String User,String mdPass,int UserID,int[] groupids,String Name,String LastLoginTime)
	{
		this.User = User;
		this.mdPass = mdPass;
		this.UserID = UserID;
		this.Name = Name;
		this.LastLoginTime = LastLoginTime;

		GroupMap = Collections.synchronizedMap(new HashMap());

		for(int i=0;i<groupids.length;i++)
		{
			IPassword.GroupAuth ga;
				ga = new IPassword.GroupAuth(groupids[i],AUTH_NORMAL);
			GroupMap.put(new Integer(ga.GID),ga);
		}
	}

	/*
	* 僌儖乕僾偺捛壛
	* in:	gid(int)	捛壛偡傞僌儖乕僾偺ID
	*		auth(int)	尃尷
	*
	* out: 側偟
	*/
	public synchronized void AddGroup(int gid,int auth)
	{
		synchronized(GroupMap) {
			GroupMap.put(new Integer(gid),new IPassword.GroupAuth(gid,auth));
		}
	}

	/*
	* 僌儖乕僾偺嶍彍
	* in:	gid(int)	嶍彍偡傞僌儖乕僾偺ID
	*
	* out: 側偟
	*/
	public synchronized void DelGroup(int gid)
	{
		synchronized(GroupMap) {
			GroupMap.remove(new Integer(gid));
		}
	}

	/*
	* 暥帤楍昞尰傪曉偡
	* in: 側偟
	* out:(String)暥帤楍昞尰
	*/
	public synchronized String toString()
	{

		synchronized(GroupMap) {
			String buf = "";
			Iterator it = GroupMap.values().iterator();
			while(it.hasNext())
			{
				IPassword.GroupAuth ga =  (IPassword.GroupAuth)it.next();
				buf += Integer.toString(ga.GID);
				if(ga.Auth==AUTH_ADMIN)
					buf += "a";
				buf += ":";
			}
			if(buf.length()>0)
				buf = buf.substring(0,buf.length()-1);

			return User+","+mdPass+","+UserID+","+buf+","
				+GSTool.delimitEncorde(",",Name)+","+LastLoginTime;
		}
	}

	/*
	* 僷僗儚乕僪偺僄儞僐乕僪傪峴側偆(MD5偱埫崋壔偟丄Base64偱晞崋壔)
	* in: Pass(byte[]) 埫崋慜偺Byte攝楍
	* out:(String) 埫崋壔偟偨寢壥
	*/
	public static String encode(byte[] pass) throws GSException
	{
		if(pass.length == 0)
			return "";

		String mdpassstring=null;
		try {
			MessageDigest md = MessageDigest.getInstance("MD5");
			md.update(passphrase.getBytes());
			byte[] mdpass = md.digest(pass);
			mdpassstring = Base64.encode(mdpass);
		} catch(NoSuchAlgorithmException e) {
			throw new GSException(e.toString());
		}
		return mdpassstring;
	}

	/*
	* 僷僗儚乕僪僠僃僢僋
	* in: pass(String) 埫崋壔偝傟偰偄側偄僷僗儚乕僪
	* out: (boolean) 僷僗儚乕僪偑擣傔傜傟偨傜(ture) 偦傟埲奜偼(false)
	*/
	public synchronized boolean isEqualPass(String pass) throws GSException
	{
		pass = pass.trim();
		if((pass.length()==0) && (mdPass.length()==0))
			return true;

		String mdpass = encode(pass.getBytes());
		return mdPass.equals(mdpass);
	}

	/**
	 * 強懏偟偰偄傞僌儖乕僾ID攝楍傪庢摼
	 */
	public synchronized int[] getGroups()
	{
		int[] groups=null;
		synchronized(GroupMap) {
			int size = GroupMap.size();
			if(size>0)
			{
				groups= new int[size];
				Iterator it = GroupMap.values().iterator();
				for(int i=0;it.hasNext();i++)
				{
					IPassword.GroupAuth ga =  (IPassword.GroupAuth)it.next();
					groups[i] = ga.GID;
				}
			}
		}
		return groups;
	}

	/**
	 * 僌儖乕僾娗棟幰尃尷傪帩偭偰偄傞僌儖乕僾ID攝楍傪庢摼
	 */
	public synchronized int[] getGroupAdminGroups()
	{
		int[] groupadmins = null;
		synchronized(GroupMap) {
			if(GroupMap.size()==0)
				return null;

			ArrayList list = new ArrayList();
			Iterator it = GroupMap.values().iterator();
			while(it.hasNext()) {
				IPassword.GroupAuth ga =  (IPassword.GroupAuth)it.next();
				if(ga.Auth == IPassword.AUTH_ADMIN) {
					list.add(new Integer(ga.GID));
				}
			}

			if(list.size()==0)
				return null;

			groupadmins = new int[list.size()];
			it = list.iterator();
			for(int i=0;it.hasNext();i++)
				groupadmins[i] = ((Integer)it.next()).intValue(); 
		}
		return groupadmins;
	}

	// 巜掕偝傟偨僌儖乕僾偵強懏偟偰偄傞偐
	public boolean existsGroup(int gid)
	{
		synchronized(GroupMap) {
			if(GroupMap.get(new Integer(gid))!=null)
				return true;
		}
		return false;
	}

}

⌨️ 快捷键说明

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