Skip to content

Commit 0171e34

Browse files
committed
fixes #288
1 parent 76e0dba commit 0171e34

File tree

13 files changed

+33
-71
lines changed

13 files changed

+33
-71
lines changed

src/main/java/org/buddycloud/channelserver/packetprocessor/iq/namespace/pubsub/PubSubElementProcessorAbstract.java

Lines changed: 1 addition & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,6 @@ public abstract class PubSubElementProcessorAbstract implements PubSubElementPro
3838
protected IQ response;
3939
protected IQ request;
4040
protected JID actor;
41-
protected String serverDomain;
42-
protected String topicsDomain;
4341
protected String node = null;
4442
protected Helper configurationHelper;
4543
protected Map<String, String> nodeConfiguration;
@@ -68,39 +66,17 @@ public void setChannelManager(ChannelManager channelManager) {
6866
this.channelManager = channelManager;
6967
}
7068

71-
public void setServerDomain(String domain) {
72-
serverDomain = domain;
73-
}
74-
75-
protected String getServerDomain() {
76-
if (null == serverDomain) {
77-
serverDomain = Configuration.getInstance().getProperty("server.domain");
78-
}
79-
return serverDomain;
80-
}
81-
8269
protected Collection<JID> getAdminUsers() {
8370
if (null == adminUsers) {
8471
adminUsers = Configuration.getInstance().getAdminUsers();
8572
}
8673
return adminUsers;
8774
}
8875

89-
public void setTopicsDomain(String domain) {
90-
topicsDomain = domain;
91-
}
92-
9376
public void setNode(String node) {
9477
this.node = node;
9578
}
9679

97-
protected String getTopicsDomain() {
98-
if (null == topicsDomain) {
99-
topicsDomain = Configuration.getInstance().getProperty("server.domain.topics");
100-
}
101-
return topicsDomain;
102-
}
103-
10480
public void setConfigurationHelper(Helper helper) {
10581
configurationHelper = helper;
10682
}
@@ -200,7 +176,7 @@ private AccessModels getNodeAccessModel() {
200176
}
201177

202178
protected boolean actorIsRegistered() {
203-
if (actor.getDomain().equals(getServerDomain())) {
179+
if (Configuration.getInstance().isLocalJID(actor)) {
204180
return true;
205181
} else {
206182
setErrorCondition(PacketError.Type.auth, PacketError.Condition.forbidden);

src/main/java/org/buddycloud/channelserver/packetprocessor/iq/namespace/pubsub/set/ItemDelete.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,8 @@ private void deleteReplies() throws NodeStoreException {
9797
reply = replies.next();
9898
channelManager.deleteNodeItemById(reply.getNodeId(), reply.getId());
9999

100-
sendNotifications(node, new GlobalItemIDImpl(new JID(this.getServerDomain()), reply.getNodeId(), reply.getId()));
100+
sendNotifications(node, new GlobalItemIDImpl(new JID(
101+
Configuration.getInstance().getServerDomain()), reply.getNodeId(), reply.getId()));
101102
}
102103
}
103104

@@ -206,7 +207,8 @@ private boolean itemIdProvided() {
206207
if (GlobalItemIDImpl.isGlobalId(id)) {
207208
itemId = GlobalItemIDImpl.fromBuddycloudString(id);
208209
} else {
209-
itemId = new GlobalItemIDImpl(new JID(this.getServerDomain()), node, id);
210+
itemId = new GlobalItemIDImpl(new JID(
211+
Configuration.getInstance().getServerDomain()), node, id);
210212
}
211213
return true;
212214
}

src/main/java/org/buddycloud/channelserver/packetprocessor/iq/namespace/pubsub/set/NodeCreate.java

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -42,16 +42,15 @@ public void process(Element elm, JID actorJID, IQ reqIQ, Element rsm) throws Exc
4242
if (null == actorJID) {
4343
actor = request.getFrom();
4444
}
45-
if (!nodePresent()) {
45+
if (!nodePresent() || !isNodeValid()) {
4646
outQueue.put(response);
4747
return;
4848
}
4949
if (!Configuration.getInstance().isLocalNode(node)) {
5050
makeRemoteRequest();
5151
return;
5252
}
53-
if ((checkNodeExists()) || (!actorIsRegistered()) || (!nodeHandledByThisServer())) {
54-
53+
if ((checkNodeExists()) || (!actorIsRegistered())) {
5554
outQueue.put(response);
5655
return;
5756
}
@@ -100,16 +99,11 @@ protected boolean checkNodeExists() throws NodeStoreException {
10099
return true;
101100
}
102101

103-
private boolean nodeHandledByThisServer() {
102+
private boolean isNodeValid() {
104103
if (!node.matches(NODE_REG_EX)) {
105104
setErrorCondition(PacketError.Type.modify, PacketError.Condition.bad_request);
106105
return false;
107106
}
108-
109-
if ((!node.contains("@" + getServerDomain())) && (!node.contains("@" + getTopicsDomain()))) {
110-
setErrorCondition(PacketError.Type.modify, PacketError.Condition.not_acceptable);
111-
return false;
112-
}
113107
return true;
114108
}
115109
}

src/main/java/org/buddycloud/channelserver/packetprocessor/iq/namespace/pubsub/set/NodeDelete.java

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ public void process(Element elm, JID actorJID, IQ reqIQ, Element rsm) throws Exc
5757
makeRemoteRequest();
5858
return;
5959
}
60-
if (!checkNodeExists() || !actorIsRegistered() || !nodeHandledByThisServer()
60+
if (!checkNodeExists() || !actorIsRegistered()
6161
|| isEphemeralNode() || !actorAllowedToDelete()) {
6262
outQueue.put(response);
6363
return;
@@ -137,14 +137,6 @@ private boolean actorAllowedToDelete() throws NodeStoreException {
137137
return false;
138138
}
139139

140-
private boolean nodeHandledByThisServer() {
141-
if (!node.contains("@" + getServerDomain()) && !node.contains("@" + getTopicsDomain())) {
142-
setErrorCondition(PacketError.Type.modify, PacketError.Condition.not_acceptable);
143-
return false;
144-
}
145-
return true;
146-
}
147-
148140
private boolean nodeValid() {
149141
if (!node.matches(NODE_REG_EX)) {
150142
setErrorCondition(PacketError.Type.modify, PacketError.Condition.bad_request);

src/test/java/org/buddycloud/channelserver/packetprocessor/iq/namespace/pubsub/set/AffiliationEventTest.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,6 @@ public void setUp() throws Exception {
6464
queue = new LinkedBlockingQueue<Packet>();
6565
event = new AffiliationEvent(queue, channelManager);
6666
request = readStanzaAsIq("/iq/pubsub/affiliation/affiliationChange.stanza");
67-
event.setServerDomain("shakespeare.lit");
6867

6968
element = new BaseElement("affiliations");
7069
element.addAttribute("node", node);

src/test/java/org/buddycloud/channelserver/packetprocessor/iq/namespace/pubsub/set/ItemDeleteTest.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,8 +52,6 @@ public void setUp() throws Exception {
5252
itemDelete = new ItemDelete(queue, channelManager);
5353
request = readStanzaAsIq("/iq/pubsub/item/delete/request.stanza");
5454

55-
itemDelete.setServerDomain("shakespeare.lit");
56-
5755
element = new BaseElement("retract");
5856
element.addAttribute("node", node);
5957

src/test/java/org/buddycloud/channelserver/packetprocessor/iq/namespace/pubsub/set/NodeConfigureTest.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,6 @@ public void setUp() throws Exception {
5050
jid = new JID("[email protected]");
5151
request = readStanzaAsIq("/iq/pubsub/channel/configure/request.stanza");
5252

53-
nodeConfigure.setServerDomain("shakespeare.lit");
54-
5553
element = new BaseElement("create");
5654
element.addAttribute("node", "/user/[email protected]/posts");
5755
}

src/test/java/org/buddycloud/channelserver/packetprocessor/iq/namespace/pubsub/set/NodeCreateTest.java

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,6 @@ public void setUp() throws Exception {
4646
jid = new JID("[email protected]");
4747
request = readStanzaAsIq("/iq/pubsub/channel/create/request.stanza");
4848

49-
nodeCreate.setServerDomain("shakespeare.lit");
50-
5149
element = new BaseElement("create");
5250
element.addAttribute("node", node);
5351
}
@@ -106,6 +104,11 @@ public void testRequestingAlreadyExistingNodeReturnsErrorStanza()
106104
public void testUnauthenticatedUserCanNotCreateNode() throws Exception {
107105
JID jid = new JID("[email protected]");
108106

107+
Configuration.getInstance().remove(
108+
Configuration.CONFIGURATION_LOCAL_DOMAIN_CHECKER);
109+
Configuration.getInstance().putProperty(
110+
Configuration.CONFIGURATION_SERVER_DOMAIN, "shakespeare.lit");
111+
109112
nodeCreate.process(element, jid, request, null);
110113
Packet response = queue.poll(100, TimeUnit.MILLISECONDS);
111114

@@ -139,26 +142,24 @@ public void testInvalidlyFormattedNodeReturnsError() throws Exception {
139142
}
140143

141144
@Test
142-
public void testNewNodeMustBeOnADomainSupportedByCurrentServer()
143-
throws Exception {
145+
public void testNodeFromUnknownDomain() throws Exception {
144146
element.addAttribute("node", "/user/capulet@shakespearelit/posts");
145147

146-
nodeCreate.setTopicsDomain("topics.shakespeare.lit");
147-
148+
Configuration.getInstance().putProperty(
149+
Configuration.CONFIGURATION_LOCAL_DOMAIN_CHECKER, Boolean.FALSE.toString());
150+
148151
nodeCreate.process(element, jid, request, null);
149152
Packet response = queue.poll(100, TimeUnit.MILLISECONDS);
150153

151-
PacketError error = response.getError();
152-
Assert.assertNotNull(error);
153-
Assert.assertEquals(PacketError.Type.modify, error.getType());
154-
Assert.assertEquals(PacketError.Condition.not_acceptable, error.getCondition());
154+
Assert.assertNull(response.getError());
155+
Assert.assertNotNull(response.getElement().element("pubsub").element("actor"));
155156
/**
156157
* Add this check back in once Tinder supports xmlns on standard
157158
* conditions Assert.assertEquals(JabberPubsub.NS_XMPP_STANZAS,
158159
* error.getApplicationConditionNamespaceURI());
159160
*/
160161
}
161-
162+
162163
@Test
163164
public void testchannelManagerFailureReturnsInternalServerErrorResponse()
164165
throws Exception {
@@ -270,4 +271,5 @@ public void testFailingNodeConfigurationReturnsErrorStanza()
270271
* error.getApplicationConditionNamespaceURI());
271272
*/
272273
}
274+
273275
}

src/test/java/org/buddycloud/channelserver/packetprocessor/iq/namespace/pubsub/set/NodeDeleteTest.java

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,6 @@ public void setUp() throws Exception {
4949

5050
this.queue = new LinkedBlockingQueue<Packet>();
5151
this.nodeDelete = new NodeDelete(queue, channelManager);
52-
this.nodeDelete.setServerDomain("shakespeare.lit");
5352
this.element = new BaseElement("delete");
5453
Configuration.getInstance().putProperty(Configuration.CONFIGURATION_LOCAL_DOMAIN_CHECKER,
5554
Boolean.TRUE.toString());
@@ -139,8 +138,13 @@ public void testNotRegisteredActor() throws Exception {
139138

140139
String node = deleteEl.attributeValue("node");
141140
Mockito.when(channelManager.nodeExists(node)).thenReturn(true);
142-
nodeDelete.setServerDomain("fake.domain");
141+
142+
Configuration.getInstance().remove(
143+
Configuration.CONFIGURATION_LOCAL_DOMAIN_CHECKER);
144+
Configuration.getInstance().putProperty(
145+
Configuration.CONFIGURATION_SERVER_DOMAIN, "shakespeare.lit");
143146

147+
JID jid = new JID("[email protected]");
144148
nodeDelete.process(deleteEl, jid, request, null);
145149
Packet response = queue.poll();
146150

@@ -214,13 +218,14 @@ public void testNodeFromUnknownDomain() throws Exception {
214218
String node = deleteEl.attributeValue("node");
215219
Mockito.when(channelManager.nodeExists(node)).thenReturn(true);
216220

221+
Configuration.getInstance().putProperty(
222+
Configuration.CONFIGURATION_LOCAL_DOMAIN_CHECKER, Boolean.FALSE.toString());
223+
217224
nodeDelete.process(deleteEl, jid, request, null);
218225
Packet response = queue.poll();
219226

220-
PacketError error = response.getError();
221-
Assert.assertNotNull(error);
222-
Assert.assertEquals(PacketError.Type.modify, error.getType());
223-
Assert.assertEquals(PacketError.Condition.not_acceptable, error.getCondition());
227+
Assert.assertNull(response.getError());
228+
Assert.assertNotNull(response.getElement().element("pubsub").element("actor"));
224229
}
225230

226231
@Test

src/test/java/org/buddycloud/channelserver/packetprocessor/iq/namespace/pubsub/set/PublishTest.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,6 @@ public void setUp() throws Exception {
5959
jid = new JID("[email protected]/balcony");
6060
request = readStanzaAsIq("/iq/pubsub/publish/request.stanza");
6161

62-
publish.setServerDomain("shakespeare.lit");
6362
publish.setChannelManager(channelManager);
6463
publish.setEntryValidator(validateEntry);
6564

0 commit comments

Comments
 (0)