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

📄 abstractrequesthandler.java

📁 使用工具jublider开发的一个聊天室实现基本功能,
💻 JAVA
字号:
package freecs.external;

import java.net.InetAddress;
import java.nio.channels.SelectionKey;
import java.nio.channels.SocketChannel;

import freecs.Server;
import freecs.content.ContentContainer;
import freecs.interfaces.IRequest;
import freecs.interfaces.IResponseHeaders;
import freecs.util.HttpAuth;

public abstract class AbstractRequestHandler implements IRequestHandler {

	private String handlerName;
	
	/**
	 * construct a new handler mounted to a given name 
	 */
	public AbstractRequestHandler(String handlerName) {
		this.handlerName = handlerName;
	}
	
	public void checkAccessIp(IRequest req, ContentContainer c) throws AccessForbiddenException {
		SelectionKey key = req.getKey ();
		InetAddress ia = null;
		try {
			SocketChannel sc = (SocketChannel) key.channel ();
			ia = sc.socket ().getInetAddress ();
		} catch (Exception e) {
			Server.debug (this, "" + ia.toString (), e, Server.MSG_STATE, Server.LVL_MAJOR);
			throw new AccessForbiddenException(true);
		}
		if (!Server.srv.isAdminHost(ia)) {
			Server.log (this, "access to " + getHandlerName() + " denied for " + ia.toString (), Server.MSG_STATE, Server.LVL_MAJOR);
			throw new AccessForbiddenException(true);
		}
	}

	public void checkAccessAuth(IRequest req, ContentContainer c) throws AccessForbiddenException {
		if (Server.srv.ADMIN_HTTP_USERNAME == null || Server.srv.ADMIN_HTTP_PASSWORD == null) {
			Server.log (this, "authentication not properly configured in server config! access denied.", Server.MSG_CONFIG, Server.LVL_MAJOR);
			// hide page if auth is not configured ok!
			throw new AccessForbiddenException(true);
		}
		HttpAuth auth = HttpAuth.parse(req.getProperty("authorization"));
		if (auth == null || auth.username == null || auth.password == null ||
				!auth.username.equals(Server.srv.ADMIN_HTTP_USERNAME) ||
				!auth.password.equals(Server.srv.ADMIN_HTTP_PASSWORD)) {
			c.setResCode(IResponseHeaders.AUTHENTICATE_CODE);
			c.wrap("Access denied.");
			throw new AccessForbiddenException(false);
		}
	}
	
	/**
	 * returns the string which this handler is mounted to
	 */
	public String getHandlerName() {
		return handlerName;
	}
	
}

⌨️ 快捷键说明

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