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

📄 redirect.java

📁 openfire 服务器源码下载
💻 JAVA
字号:
package org.jivesoftware.openfire.plugin.rules;import org.jivesoftware.openfire.SessionManager;import org.jivesoftware.openfire.XMPPServer;import org.jivesoftware.openfire.group.Group;import org.jivesoftware.openfire.interceptor.PacketRejectedException;import org.jivesoftware.openfire.plugin.PacketFilterUtil;import org.jivesoftware.openfire.session.ClientSession;import org.jivesoftware.util.Log;import org.xmpp.packet.JID;import org.xmpp.packet.Message;import org.xmpp.packet.Packet;import java.util.Collection;public class Redirect extends AbstractRule implements Rule {     public String getDisplayName() {        return "Redirect";                                                                       }    public Packet doAction(Packet packet) throws PacketRejectedException {       Message newPacket = null;               if (packet instanceof Message) {        if (getDestType().equals(Rule.SourceDestType.Group.toString())) {            Group sendGroup = PacketFilterUtil.getGroup(getDestination());            ClientSession clientSession;            for (JID jid : sendGroup.getMembers()) {                newPacket = (Message) packet.createCopy();                newPacket.setTo(jid);                sendPacket(newPacket);            }        }        else {                JID jid = new JID(getDestination());                newPacket = (Message) packet.createCopy();                newPacket.setFrom("test@machintosh.local");                newPacket.setTo(jid);                sendPacket(newPacket);        }        if (doLog())  {            Log.info("Redirecting from "+packet.getFrom()+" to "+packet.getTo());        }       }       throw new PacketRejectedException();            }    public boolean destMustMatch() {        return false;    }    private static void sendPacket(Packet packet) {        SessionManager sessionManager = XMPPServer.getInstance().getSessionManager();        ClientSession clientSession;        clientSession = sessionManager.getSession(packet.getTo());        Log.info("Sending to "+packet.getTo());        if (clientSession != null) {            Log.info("***** Session Not Null ******");            clientSession.process(packet);        }    }}

⌨️ 快捷键说明

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