authbrokerstream.java
来自「RESIN 3.2 最新源码」· Java 代码 · 共 197 行
JAVA
197 行
/* * Copyright (c) 1998-2008 Caucho Technology -- all rights reserved * * This file is part of Resin(R) Open Source * * Each copy or derived work must preserve the copyright notice and this * notice unmodified. * * Resin Open Source is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * Resin Open Source is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE, or any warranty * of NON-INFRINGEMENT. See the GNU General Public License for more * details. * * You should have received a copy of the GNU General Public License * along with Resin Open Source; if not, write to the * * Free Software Foundation, Inc. * 59 Temple Place, Suite 330 * Boston, MA 02111-1307 USA * * @author Scott Ferguson */package com.caucho.hemp.servlet;import com.caucho.hmtp.AuthResult;import com.caucho.hmtp.AuthQuery;import com.caucho.bam.BamStream;import com.caucho.bam.AbstractBamStream;import com.caucho.bam.BamError;import java.io.*;import java.util.logging.*;import javax.servlet.*;import com.caucho.hessian.io.*;import com.caucho.server.connection.*;import com.caucho.vfs.*;/** * Main protocol handler for the HTTP version of HeMPP. */public class AuthBrokerStream extends AbstractBamStream{ private static final Logger log = Logger.getLogger(AuthBrokerStream.class.getName()); private ServerBrokerStream _manager; private BamStream _broker; AuthBrokerStream(ServerBrokerStream manager, BamStream server) { _manager = manager; _broker = server; } /** * Handles a get query. * * The get handler must respond with either * a QueryResult or a QueryError */ @Override public boolean queryGet(long id, String to, String from, Serializable value) { _broker.queryError(id, from, to, value, new BamError(BamError.TYPE_CANCEL, BamError.FORBIDDEN)); return true; } /** * Handles a set query. * * The set handler must respond with either * a QueryResult or a QueryError */ @Override public boolean querySet(long id, String to, String from, Serializable value) { if (value instanceof AuthQuery) { AuthQuery auth = (AuthQuery) value; String jid = _manager.login(auth.getUid(), auth.getCredentials(), auth.getResource()); if (jid != null) _broker.queryResult(id, from, to, new AuthResult(jid)); else _broker.queryError(id, from, to, value, new BamError(BamError.TYPE_AUTH, BamError.FORBIDDEN)); } else { // XXX: auth _broker.queryError(id, from, to, value, new BamError(BamError.TYPE_CANCEL, BamError.FORBIDDEN)); } return true; } /** * General presence, for clients announcing availability */ public void sendPresence(String to, String from, Serializable []data) { log.fine(this + " sendPresence requires login first"); } /** * General presence, for clients announcing unavailability */ public void sendPresenceUnavailable(String to, String from, Serializable []data) { log.fine(this + " sendPresenceUnavailable requires login first"); } /** * Presence probe from the server to a client */ public void sendPresenceProbe(String to, String from, Serializable []data) { log.fine(this + " sendPresenceProbe requires login first"); } /** * A subscription request from a client */ public void sendPresenceSubscribe(String to, String from, Serializable []data) { log.fine(this + " sendPresenceSubscribe requires login first"); } /** * A subscription response to a client */ public void sendPresenceSubscribed(String to, String from, Serializable []data) { log.fine(this + " sendPresenceSubscribed requires login first"); } /** * An unsubscription request from a client */ public void sendPresenceUnsubscribe(String to, String from, Serializable []data) { log.fine(this + " sendPresenceUnsubscribe requires login first"); } /** * A unsubscription response to a client */ public void sendPresenceUnsubscribed(String to, String from, Serializable []data) { log.fine(this + " sendPresenceUnsubscribed requires login first"); } /** * An error response to a client */ public void sendPresenceError(String to, String from, Serializable []data, BamError error) { log.fine(this + " sendPresenceError requires login first"); }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?