From bbabf827f4edb032b7c43d9a2216dd83e49a20a5 Mon Sep 17 00:00:00 2001 From: Michael Bayne Date: Wed, 13 Oct 2004 01:02:19 +0000 Subject: [PATCH] A simple server useful for rejecting client logins when we don't want to run a real server. git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3131 542714f4-19e9-0310-aa3c-eee0fc999fb1 --- .../threerings/presents/server/Rejector.java | 70 +++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 src/java/com/threerings/presents/server/Rejector.java diff --git a/src/java/com/threerings/presents/server/Rejector.java b/src/java/com/threerings/presents/server/Rejector.java new file mode 100644 index 000000000..dc44dbaa1 --- /dev/null +++ b/src/java/com/threerings/presents/server/Rejector.java @@ -0,0 +1,70 @@ +// +// $Id: Rejector.java,v 1.1 2004/10/13 01:02:19 mdb Exp $ + +package com.threerings.presents.server; + +import com.threerings.util.MessageBundle; + +import com.threerings.presents.Log; +import com.threerings.presents.net.AuthResponse; +import com.threerings.presents.net.AuthResponseData; +import com.threerings.presents.server.net.AuthingConnection; + +/** + * A simple server that does nothing more than spit out a canned error + * response to everyone who logs in. + */ +public class Rejector extends PresentsServer +{ + // documentation inherited + public void init () + throws Exception + { + super.init(); + conmgr.setAuthenticator(new RejectingAuthenticator()); + } + + public static void main (String[] args) + { + if (args.length < 1) { + System.err.println("Usage: Rejector error_msg [args]"); + System.exit(-1); + } + + _errmsg = args[0]; + if (args.length > 1) { + String[] eargs = new String[args.length-1]; + System.arraycopy(args, 1, eargs, 0, eargs.length); + _errmsg = MessageBundle.tcompose(_errmsg, eargs); + } + + Rejector server = new Rejector(); + try { + server.init(); + server.run(); + } catch (Exception e) { + Log.warning("Unable to initialize server."); + Log.logStackTrace(e); + } + } + + /** + * An authenticator implementation that refuses all authentication + * requests. + */ + protected class RejectingAuthenticator extends Authenticator + { + /** + * Accept all authentication requests. + */ + public void authenticateConnection (AuthingConnection conn) + { + Log.info("Accepting request: " + conn.getAuthRequest()); + AuthResponseData rdata = new AuthResponseData(); + rdata.code = _errmsg; + connectionWasAuthenticated(conn, new AuthResponse(rdata)); + } + } + + protected static String _errmsg; +}