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

📄 authenticator.java

📁 一个用java编写的服务器,对于学习网络编程的人来说是个很好的例子
💻 JAVA
字号:
/*
 * This file is part of the QuickServer library 
 * Copyright (C) 2003-2005 QuickServer.org
 *
 * Use, modification, copying and distribution of this software is subject to
 * the terms and conditions of the GNU Lesser General Public License. 
 * You should have received a copy of the GNU LGP License along with this 
 * library; if not, you can download a copy from <http://www.quickserver.org/>.
 *
 * For questions, suggestions, bug-reports, enhancement-requests etc.
 * visit http://www.quickserver.org
 *
 */

package ftpserver;

import org.quickserver.net.server.*;
import org.quickserver.net.AppException;
import java.io.*;
import java.util.*;

public class Authenticator extends QuickAuthenticator {

	public boolean askAuthorisation(ClientHandler clientHandler)
			throws IOException, AppException {
		
		String username = askStringInput(clientHandler, null); //USER <USERNAME>
		//no need to check for null : done by QuickAuthenticator

		if(username.equalsIgnoreCase("QUIT")) {
			sendString(clientHandler, "221 Logged out.");
			throw new AppException("Quit");
		}
		if( username.toUpperCase().startsWith("USER ") == false){
			sendString(clientHandler, "503 Bad sequence of command, USER required.");
			return false;
		} else {
			sendString(clientHandler, "331 User name okay, need password.");
		}

		String password = askStringInput(clientHandler, null);//PASS <PASSWORD>
		//no need to check for null : done by QuickAuthenticator

		if(password.equalsIgnoreCase("QUIT")) {
			sendString(clientHandler, "221 Logged out.");
			throw new AppException("Quit");
		}
		if( password.toUpperCase().startsWith("PASS ") == false ){
			sendString(clientHandler, "503 Bad sequence of command, PASS required.");
			return false;
		} 

		Data data = (Data)clientHandler.getClientData();
		data.username = username;
		/*
		sendString(clientHandler, "332 PASS password okay, need account.");
		data.account = in.readLine();
		if( data.account==null || 
			!data.account.toUpperCase().startsWith("ACCT ") ){
			sendString(clientHandler, "503 Bad sequence of command, ACCT required.");
			return false;
		} 
		*/
		
		if(username.toLowerCase().equals("user anonymous")) {	
			//data.root = (String)clientHandler.getServer().getStoreObjects()[0];
			HashMap appConfig = 
				clientHandler.getServer().getConfig().getApplicationConfiguration();
			String temp = null;
			if(appConfig!=null)
				temp = (String)appConfig.get("FTP_ROOT");
			else
				temp = System.getProperty("user.home");
			data.root = temp;
			sendString(clientHandler, "230 User logged in, proceed.");
			return true;
		} else {
			sendString(clientHandler, "530 Not logged in.");
			return false;
		}
	}
}

⌨️ 快捷键说明

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