// --------------------------------------------------------------------------- // jWebSocket - jWebSocket Sample Filter // Copyright (c) 2010 jWebSocket.org, Alexander Schulze, Innotrade GmbH // --------------------------------------------------------------------------- // This program is free software; you can redistribute it and/or modify it // under the terms of the GNU Lesser General Public License as published by the // Free Software Foundation; either version 3 of the License, or (at your // option) any later version. // This program 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. See the GNU Lesser General Public License for // more details. // You should have received a copy of the GNU Lesser General Public License along // with this program; if not, see <http://www.gnu.org/licenses/lgpl.html>. // --------------------------------------------------------------------------- package org.jwebsocket.filters.sample; import org.apache.log4j.Logger; import org.jwebsocket.api.WebSocketConnector; import org.jwebsocket.filter.TokenFilter; import org.jwebsocket.kit.FilterResponse; import org.jwebsocket.logging.Logging; import org.jwebsocket.server.TokenServer; import org.jwebsocket.token.Token; /** * * @author aschulze */ public class SampleFilter extends TokenFilter { private static Logger mLog = Logging.getLogger(SampleFilter.class); /** * * @param aId */ public SampleFilter(String aId) { super(aId); if (mLog.isDebugEnabled()) { mLog.debug("Instantiating system filter..."); } } /** * * @param aResponse * @param aConnector * @param aToken */ @Override public void processTokenIn(FilterResponse aResponse, WebSocketConnector aConnector, Token aToken) { if (mLog.isDebugEnabled()) { mLog.debug("Checking incoming token from " + (aConnector != null ? aConnector.getId() : "[not given]") + ": " + aToken.toString() + "..."); } TokenServer lServer = getServer(); String lUsername = lServer.getUsername(aConnector); // TODO: very first security test, replace by user's locked state! if ("locked".equals(lUsername)) { Token lToken = lServer.createAccessDenied(aToken); lServer.sendToken(aConnector, lToken); aResponse.rejectMessage(); return; } } /** * * @param aResponse * @param aSource * @param aTarget * @param aToken */ @Override public void processTokenOut(FilterResponse aResponse, WebSocketConnector aSource, WebSocketConnector aTarget, Token aToken) { if (mLog.isDebugEnabled()) { mLog.debug("Checking outgoing token from " + (aSource != null ? aSource.getId() : "[not given]") + " to " + (aTarget != null ? aTarget.getId() : "[not given]") + ": " + aToken.toString() + "..."); } } }