packetfilterplugin.java

来自「openfire 服务器源码下载」· Java 代码 · 共 68 行

JAVA
68
字号
package org.jivesoftware.openfire.plugin;import org.jivesoftware.openfire.XMPPServer;import org.jivesoftware.openfire.container.Plugin;import org.jivesoftware.openfire.container.PluginManager;import org.jivesoftware.openfire.interceptor.InterceptorManager;import org.jivesoftware.openfire.interceptor.PacketInterceptor;import org.jivesoftware.openfire.interceptor.PacketRejectedException;import org.jivesoftware.openfire.plugin.rules.Rule;import org.jivesoftware.openfire.plugin.rules.RuleManager;import org.jivesoftware.openfire.plugin.rules.RuleManagerProxy;import org.jivesoftware.openfire.session.Session;import org.jivesoftware.util.Log;import org.xmpp.packet.Packet;import java.io.File;public class PacketFilterPlugin implements Plugin, PacketInterceptor {    private static PluginManager pluginManager;    public PacketFilterPlugin() {        XMPPServer server = XMPPServer.getInstance();        interceptorManager = InterceptorManager.getInstance();    }    //Packet Filter    private PacketFilter pf;    //Hook for intercpetorn    private InterceptorManager interceptorManager;    public void initializePlugin(PluginManager manager, File pluginDirectory) {        // register with interceptor manager        Log.info("Packet Filter loaded...");        interceptorManager.addInterceptor(this);        this.pluginManager = manager;        pf = PacketFilter.getInstance();        RuleManager ruleManager = new RuleManagerProxy();        pf.setRuleManager(ruleManager);            }    public void destroyPlugin() {        // unregister with interceptor manager        interceptorManager.removeInterceptor(this);    }    public String getName() {        return "packetFilter";            }    public static PluginManager getPluginManager() {        return pluginManager;    }    public void interceptPacket(Packet packet, Session session, boolean incoming, boolean processed) throws PacketRejectedException {        Rule rule = pf.findMatch(packet);        if (rule != null) {            rule.doAction(packet);        }    }}       

⌨️ 快捷键说明

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