diff --git a/src/plugins/monitoring/changelog.html b/src/plugins/monitoring/changelog.html
index 900a45a95c..7f9c59f245 100644
--- a/src/plugins/monitoring/changelog.html
+++ b/src/plugins/monitoring/changelog.html
@@ -44,6 +44,11 @@
Monitoring Plugin Changelog
+1.6.1 -- June 28, 2018
+
+ - Fix for archive search with password protected chatrooms.
+
+
1.6.0 -- March 5, 2018
- [OF-1486] - MAM RSM queries for MUC should allow for 'backwards-paging'.
diff --git a/src/plugins/monitoring/plugin.xml b/src/plugins/monitoring/plugin.xml
index a1427d3786..af0bddc263 100644
--- a/src/plugins/monitoring/plugin.xml
+++ b/src/plugins/monitoring/plugin.xml
@@ -5,7 +5,7 @@
Monitoring Service
Monitors conversations and statistics of the server.
IgniteRealtime // Jive Software
- 1.6.0
+ 1.6.1
03/05/2018
4.1.0
monitoring
diff --git a/src/plugins/monitoring/pom.xml b/src/plugins/monitoring/pom.xml
index c121347356..e057d23119 100644
--- a/src/plugins/monitoring/pom.xml
+++ b/src/plugins/monitoring/pom.xml
@@ -8,7 +8,7 @@
org.igniterealtime.openfire.plugins
monitoring
- 1.6.0
+ 1.6.1
Monitoring Plugin
Monitors conversations and statistics of the server.
diff --git a/src/plugins/monitoring/src/java/com/reucon/openfire/plugin/archive/xep0313/IQQueryHandler.java b/src/plugins/monitoring/src/java/com/reucon/openfire/plugin/archive/xep0313/IQQueryHandler.java
index e0d3a7151e..f520881126 100644
--- a/src/plugins/monitoring/src/java/com/reucon/openfire/plugin/archive/xep0313/IQQueryHandler.java
+++ b/src/plugins/monitoring/src/java/com/reucon/openfire/plugin/archive/xep0313/IQQueryHandler.java
@@ -156,6 +156,18 @@ public IQ handleIQ( final IQ packet ) throws UnauthorizedException {
Log.debug("Unable to process query as requestor '{}' is forbidden to retrieve archive for room '{}'.", requestor, archiveJid);
return buildForbiddenResponse(packet);
}
+
+ // Password protected room
+ if (room.isPasswordProtected()) {
+ // check whether requestor is occupant in the room
+ MUCRole occupant = room.getOccupantByFullJID(packet.getFrom());
+
+ if (occupant == null) {
+ // no occupant so currently not authenticated to query archive
+ Log.debug("Unable to process query as requestor '{}' is currently not authenticated for this password protected room '{}'.", requestor, archiveJid);
+ return buildForbiddenResponse(packet);
+ }
+ }
} else if(!archiveJid.equals(requestor)) { // Not user's own
// ... disallow unless admin.
if (!XMPPServer.getInstance().getAdmins().contains(requestor)) {