aboutsummaryrefslogtreecommitdiff
path: root/juick-xmpp/src/main/java/com/juick/components
diff options
context:
space:
mode:
Diffstat (limited to 'juick-xmpp/src/main/java/com/juick/components')
-rw-r--r--juick-xmpp/src/main/java/com/juick/components/XMPPServer.java10
-rw-r--r--juick-xmpp/src/main/java/com/juick/components/s2s/ConnectionIn.java11
-rw-r--r--juick-xmpp/src/main/java/com/juick/components/s2s/ConnectionRouter.java21
-rw-r--r--juick-xmpp/src/main/java/com/juick/components/s2s/JuickBot.java57
4 files changed, 50 insertions, 49 deletions
diff --git a/juick-xmpp/src/main/java/com/juick/components/XMPPServer.java b/juick-xmpp/src/main/java/com/juick/components/XMPPServer.java
index 3bfa49e1..4a182cc9 100644
--- a/juick-xmpp/src/main/java/com/juick/components/XMPPServer.java
+++ b/juick-xmpp/src/main/java/com/juick/components/XMPPServer.java
@@ -2,7 +2,6 @@ package com.juick.components;
import com.juick.components.s2s.*;
import com.juick.service.*;
-import com.juick.xmpp.JID;
import com.juick.xmpp.Stanza;
import com.juick.xmpp.StanzaChild;
import com.juick.xmpp.extensions.JuickMessage;
@@ -13,6 +12,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.core.env.Environment;
import org.xmlpull.v1.XmlPullParserException;
+import rocks.xmpp.addr.Jid;
import javax.inject.Inject;
import java.io.IOException;
@@ -59,7 +59,7 @@ public class XMPPServer implements AutoCloseable {
@Inject
public SubscriptionService subscriptionService;
- private JID jid;
+ private Jid jid;
private ServerSocket listener;
@@ -76,7 +76,7 @@ public class XMPPServer implements AutoCloseable {
keystorePassword = env.getProperty("keystore_password");
brokenSSLhosts = Arrays.asList(env.getProperty("broken_ssl_hosts", StringUtils.EMPTY).split(","));
bannedHosts = Arrays.asList(env.getProperty("banned_hosts", StringUtils.EMPTY).split(","));
- jid = new JID(env.getProperty("xmppbot_jid"));
+ jid = Jid.of(env.getProperty("xmppbot_jid"));
boolean disabled = BooleanUtils.toBoolean(env.getProperty("xmpp_disabled", "false"));
childParsers.put(JuickMessage.XMLNS, new JuickMessage());
@@ -196,7 +196,7 @@ public class XMPPServer implements AutoCloseable {
}
public void sendOut(Stanza s) {
- sendOut(s.to.Host, s.toString());
+ sendOut(s.to.getDomain(), s.toString());
}
public void sendOut(String hostname, String xml) {
@@ -286,7 +286,7 @@ public class XMPPServer implements AutoCloseable {
stanzaListeners.forEach(l -> l.stanzaReceived(type, xmlValue));
}
- public JID getJid() {
+ public Jid getJid() {
return jid;
}
}
diff --git a/juick-xmpp/src/main/java/com/juick/components/s2s/ConnectionIn.java b/juick-xmpp/src/main/java/com/juick/components/s2s/ConnectionIn.java
index 882cc2f7..8713aa03 100644
--- a/juick-xmpp/src/main/java/com/juick/components/s2s/ConnectionIn.java
+++ b/juick-xmpp/src/main/java/com/juick/components/s2s/ConnectionIn.java
@@ -2,11 +2,11 @@ package com.juick.components.s2s;
import com.juick.components.XMPPServer;
import com.juick.xmpp.Iq;
-import com.juick.xmpp.JID;
import com.juick.xmpp.Message;
import com.juick.xmpp.Presence;
import com.juick.xmpp.utils.XmlUtils;
import org.xmlpull.v1.XmlPullParser;
+import rocks.xmpp.addr.Jid;
import javax.net.ssl.SSLException;
import javax.net.ssl.SSLSocket;
@@ -188,12 +188,13 @@ public class ConnectionIn extends Connection implements Runnable {
String cfrom = parser.getAttributeValue(null, "from");
String cto = parser.getAttributeValue(null, "to");
if (cfrom != null && cto != null && !cfrom.isEmpty() && !cto.isEmpty()) {
- JID jidto = new JID(cto);
- if (jidto.Host != null && jidto.Username != null && jidto.Host.equals(xmpp.HOSTNAME) && jidto.Username.matches("^[a-zA-Z0-9\\-]{2,16}$")) {
- JID jidfrom = new JID(cfrom);
+ Jid jidto = Jid.of(cto);
+ if (jidto.getDomain() != null && jidto.getLocal() != null && jidto.getDomain().equals(xmpp.HOSTNAME)
+ && jidto.getLocal().matches("^[a-zA-Z0-9\\-]{2,16}$")) {
+ Jid jidfrom = Jid.of(cfrom);
int size = from.size();
for (int i = 0; i < size; i++) {
- if (from.get(i).equals(jidfrom.Host)) {
+ if (from.get(i).equals(jidfrom.getDomain())) {
return true;
}
}
diff --git a/juick-xmpp/src/main/java/com/juick/components/s2s/ConnectionRouter.java b/juick-xmpp/src/main/java/com/juick/components/s2s/ConnectionRouter.java
index 37d3c59f..f0fc3c60 100644
--- a/juick-xmpp/src/main/java/com/juick/components/s2s/ConnectionRouter.java
+++ b/juick-xmpp/src/main/java/com/juick/components/s2s/ConnectionRouter.java
@@ -2,7 +2,6 @@ package com.juick.components.s2s;
import com.juick.User;
import com.juick.components.XMPPServer;
-import com.juick.xmpp.JID;
import com.juick.xmpp.Message;
import com.juick.xmpp.extensions.JuickMessage;
import com.juick.xmpp.extensions.Nickname;
@@ -15,6 +14,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
+import rocks.xmpp.addr.Jid;
import java.io.IOException;
import java.io.InputStreamReader;
@@ -92,15 +92,15 @@ public class ConnectionRouter extends Connection implements Runnable, AutoClosea
String tag = parser.getName();
String to = parser.getAttributeValue(null, "to");
if (to != null && (tag.equals("message") || tag.equals("presence") || tag.equals("iq"))) {
- JID jid = new JID(to);
- if (jid.Host != null) {
- if (jid.Host.equals(componentName)) {
+ Jid jid = Jid.of(to);
+ if (jid.getDomain() != null) {
+ if (jid.getDomain().equals(componentName)) {
if (tag.equals("message")) {
Message xmsg = Message.parse(parser, xmpp.childParsers);
logger.info("stream router (process): {}", xmsg);
JuickMessage jmsg = (JuickMessage) xmsg.getChild(JuickMessage.XMLNS);
if (jmsg != null) {
- if (jid.Username != null && jid.Username.equals("recomm")) {
+ if (jid.getLocal() != null && jid.getLocal().equals("recomm")) {
sendJuickRecommendation(jmsg);
} else {
if (jmsg.getRid() > 0) {
@@ -114,13 +114,14 @@ public class ConnectionRouter extends Connection implements Runnable, AutoClosea
String xml = XmlUtils.parseToString(parser, true);
logger.info("stream router (stanza): {}", xml);
}
- } else if (jid.Host.endsWith(xmpp.HOSTNAME) && (jid.Host.equals(xmpp.HOSTNAME) || jid.Host.endsWith("." + xmpp.HOSTNAME))) {
+ } else if (jid.getDomain().endsWith(xmpp.HOSTNAME) && (jid.getDomain().equals(xmpp.HOSTNAME)
+ || jid.getDomain().endsWith("." + xmpp.HOSTNAME))) {
String xml = XmlUtils.parseToString(parser, true);
logger.info("stream router: {}", xml);
} else {
String xml = XmlUtils.parseToString(parser, true);
logger.info("stream router (out): {}", xml);
- xmpp.sendOut(jid.Host, xml);
+ xmpp.sendOut(jid.getDomain(), xml);
}
} else {
String invalidStanza = XmlUtils.parseToString(parser, true);
@@ -183,7 +184,7 @@ public class ConnectionRouter extends Connection implements Runnable, AutoClosea
}
for (String jid : jids) {
- msg.to = new JID(jid);
+ msg.to = Jid.of(jid);
xmpp.sendOut(msg);
}
}
@@ -214,7 +215,7 @@ public class ConnectionRouter extends Connection implements Runnable, AutoClosea
msg.addChild(jmsg);
for (User user : users) {
for (String jid : xmpp.userService.getJIDsbyUID(user.getUid())) {
- msg.to = new JID(jid);
+ msg.to = Jid.of(jid);
xmpp.sendOut(msg);
}
}
@@ -262,7 +263,7 @@ public class ConnectionRouter extends Connection implements Runnable, AutoClosea
for (User user : users) {
for (String jid : xmpp.userService.getJIDsbyUID(user.getUid())) {
- msg.to = new JID(jid);
+ msg.to = Jid.of(jid);
xmpp.sendOut(msg);
}
}
diff --git a/juick-xmpp/src/main/java/com/juick/components/s2s/JuickBot.java b/juick-xmpp/src/main/java/com/juick/components/s2s/JuickBot.java
index eec9b8e2..f309bd21 100644
--- a/juick-xmpp/src/main/java/com/juick/components/s2s/JuickBot.java
+++ b/juick-xmpp/src/main/java/com/juick/components/s2s/JuickBot.java
@@ -2,13 +2,13 @@ package com.juick.components.s2s;
import com.juick.User;
import com.juick.components.XMPPServer;
-import com.juick.xmpp.JID;
import com.juick.xmpp.Message;
import com.juick.xmpp.Presence;
import com.juick.xmpp.Stanza;
-import com.juick.xmpp.extensions.Error;
+import com.juick.xmpp.extensions.XMPPError;
import com.juick.xmpp.extensions.JuickMessage;
import org.apache.commons.lang3.StringUtils;
+import rocks.xmpp.addr.Jid;
import javax.inject.Inject;
import java.util.List;
@@ -64,13 +64,13 @@ public class JuickBot implements StanzaListener {
+ "Read more: http://juick.com/help/";
public boolean incomingPresence(Presence p) {
- final String username = p.to.Username.toLowerCase();
+ final String username = p.to.getLocal();
final boolean toJuick = username.equals("juick");
if (p.type == null) {
Presence reply = new Presence();
- reply.from = new JID(p.to.Username, p.to.Host, null);
- reply.to = new JID(p.from.Username, p.from.Host, null);
+ reply.from = p.to.asBareJid();
+ reply.to = p.from.asBareJid();
reply.type = Presence.Type.unsubscribe;
xmpp.sendOut(reply);
return true;
@@ -82,15 +82,14 @@ public class JuickBot implements StanzaListener {
if (toJuick || uid_to > 0) {
Presence reply = new Presence();
- reply.from = p.to;
- reply.from.Resource = "Juick";
+ reply.from = p.to.withResource("Juick");
reply.to = p.from;
reply.priority = 10;
xmpp.sendOut(reply);
} else {
Presence reply = new Presence(p.to, p.from, Presence.Type.error);
reply.id = p.id;
- reply.addChild(new Error(Error.Type.cancel, "item-not-found"));
+ reply.addChild(new XMPPError(XMPPError.Type.cancel, "item-not-found"));
xmpp.sendOut(reply);
return true;
}
@@ -102,7 +101,7 @@ public class JuickBot implements StanzaListener {
} else {
int uid_to = xmpp.userService.getUIDbyName(username);
if (uid_to > 0) {
- xmpp.pmQueriesService.addPMinRoster(uid_to, p.from.Bare());
+ xmpp.pmQueriesService.addPMinRoster(uid_to, p.from.asBareJid().toEscapedString());
canSubscribe = true;
}
}
@@ -111,7 +110,7 @@ public class JuickBot implements StanzaListener {
Presence reply = new Presence(p.to, p.from, Presence.Type.subscribed);
xmpp.sendOut(reply);
- reply.from.Resource = "Juick";
+ reply.from = reply.from.withResource("Juick");
reply.priority = 10;
reply.type = null;
xmpp.sendOut(reply);
@@ -120,7 +119,7 @@ public class JuickBot implements StanzaListener {
} else {
Presence reply = new Presence(p.to, p.from, Presence.Type.error);
reply.id = p.id;
- reply.addChild(new Error(Error.Type.cancel, "item-not-found"));
+ reply.addChild(new XMPPError(XMPPError.Type.cancel, "item-not-found"));
xmpp.sendOut(reply);
return true;
}
@@ -128,7 +127,7 @@ public class JuickBot implements StanzaListener {
if (!toJuick) {
int uid_to = xmpp.userService.getUIDbyName(username);
if (uid_to > 0) {
- xmpp.pmQueriesService.removePMinRoster(uid_to, p.from.Bare());
+ xmpp.pmQueriesService.removePMinRoster(uid_to, p.from.asBareJid().toEscapedString());
}
}
@@ -144,13 +143,13 @@ public class JuickBot implements StanzaListener {
return false;
}
- String username = msg.to.Username.toLowerCase();
+ String username = msg.to.getLocal();
User user_from;
String signuphash = StringUtils.EMPTY;
- user_from = xmpp.userService.getUserByJID(msg.from.Bare());
+ user_from = xmpp.userService.getUserByJID(msg.from.asBareJid().toEscapedString());
if (user_from == null) {
- signuphash = xmpp.userService.getSignUpHashByJID(msg.from.Bare());
+ signuphash = xmpp.userService.getSignUpHashByJID(msg.from.asBareJid().toEscapedString());
}
if (user_from == null) {
@@ -173,7 +172,7 @@ public class JuickBot implements StanzaListener {
if (uid_to == 0) {
Message reply = new Message(msg.to, msg.from, Message.Type.error);
reply.id = msg.id;
- reply.addChild(new Error(Error.Type.cancel, "item-not-found"));
+ reply.addChild(new XMPPError(XMPPError.Type.cancel, "item-not-found"));
xmpp.sendOut(reply);
return true;
}
@@ -185,15 +184,15 @@ public class JuickBot implements StanzaListener {
if (success) {
Message m = new Message();
- m.from = new JID("juick", "juick.com", null);
- m.to = new JID(Integer.toString(uid_to), "push.juick.com", null);
+ m.from = Jid.of("juick@juick.com");
+ m.to = Jid.of(Integer.toString(uid_to), "push.juick.com", null);
JuickMessage jmsg = new JuickMessage();
jmsg.setUser(user_from);
jmsg.setText(msg.body);
m.childs.add(jmsg);
xmpp.getRouter().sendStanza(m.toString());
- m.to.Host = "ws.juick.com";
+ m.to = Jid.of(Integer.toString(uid_to), "ws.juick.com", null);
xmpp.getRouter().sendStanza(m.toString());
List<String> jids;
@@ -201,14 +200,14 @@ public class JuickBot implements StanzaListener {
jids = xmpp.userService.getJIDsbyUID(uid_to);
for (String jid : jids) {
Message mm = new Message();
- mm.to = new JID(jid);
+ mm.to = Jid.of(jid);
mm.type = Message.Type.chat;
inroster = xmpp.pmQueriesService.havePMinRoster(user_from.getUid(), jid);
if (inroster) {
- mm.from = new JID(jmsg.getUser().getName(), "juick.com", "Juick");
+ mm.from = Jid.of(jmsg.getUser().getName(), "juick.com", "Juick");
mm.body = msg.body;
} else {
- mm.from = new JID("juick", "juick.com", "Juick");
+ mm.from = Jid.of("juick", "juick.com", "Juick");
mm.body = "Private message from @" + jmsg.getUser().getName() + ":\n" + msg.body;
}
xmpp.sendOut(mm);
@@ -216,7 +215,7 @@ public class JuickBot implements StanzaListener {
} else {
Message reply = new Message(msg.to, msg.from, Message.Type.error);
reply.id = msg.id;
- reply.addChild(new Error(Error.Type.cancel, "not-allowed"));
+ reply.addChild(new XMPPError(XMPPError.Type.cancel, "not-allowed"));
xmpp.sendOut(reply);
}
@@ -313,27 +312,27 @@ public class JuickBot implements StanzaListener {
if (ret == 200) {
Message msg = new Message();
- msg.from = new JID("juick", "juick.com", null);
- msg.to = new JID(Integer.toString(uid_to), "push.juick.com", null);
+ msg.from = Jid.of("juick", "juick.com", null);
+ msg.to = Jid.of(Integer.toString(uid_to), "push.juick.com", null);
JuickMessage jmsg = new JuickMessage();
jmsg.setUser(user_from);
jmsg.setText(body);
msg.childs.add(jmsg);
xmpp.getRouter().sendStanza(msg.toString());
- msg.to.Host = "ws.juick.com";
+ msg.to = Jid.of(Integer.toString(uid_to), "ws.juick.com", null);
xmpp.getRouter().sendStanza(msg.toString());
for (String jid : jids_to) {
Message mm = new Message();
- mm.to = new JID(jid);
+ mm.to = Jid.of(jid);
mm.type = Message.Type.chat;
haveInRoster = xmpp.pmQueriesService.havePMinRoster(user_from.getUid(), jid);
if (haveInRoster) {
- mm.from = new JID(user_from.getName(), "juick.com", "Juick");
+ mm.from = Jid.of(user_from.getName(), "juick.com", "Juick");
mm.body = body;
} else {
- mm.from = new JID("juick", "juick.com", "Juick");
+ mm.from = Jid.of("juick", "juick.com", "Juick");
mm.body = "Private message from @" + user_from.getName() + ":\n" + body;
}
xmpp.sendOut(mm);