Skip to content

Commit de2600c

Browse files
committed
WIP: Simple fixes following review
1 parent 62833f2 commit de2600c

4 files changed

Lines changed: 54 additions & 50 deletions

File tree

src/java/org/jivesoftware/openfire/plugin/rest/AuthFilter.java

Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -86,16 +86,7 @@ public void filter(ContainerRequestContext containerRequest) throws IOException
8686

8787
if (!plugin.getAllowedIPs().isEmpty()) {
8888
// Get client's IP address
89-
String ipAddress = httpRequest.getHeader("x-forwarded-for");
90-
if (ipAddress == null) {
91-
ipAddress = httpRequest.getHeader("X_FORWARDED_FOR");
92-
if (ipAddress == null) {
93-
ipAddress = httpRequest.getHeader("X-Forward-For");
94-
if (ipAddress == null) {
95-
ipAddress = httpRequest.getRemoteAddr();
96-
}
97-
}
98-
}
89+
String ipAddress = getClientIPAddressForRequest(httpRequest);
9990
if (!plugin.getAllowedIPs().contains(ipAddress)) {
10091
LOG.warn("REST API rejected service for IP address: " + ipAddress);
10192
throw new WebApplicationException(Status.UNAUTHORIZED);
@@ -106,7 +97,8 @@ public void filter(ContainerRequestContext containerRequest) throws IOException
10697
String auth = containerRequest.getHeaderString("authorization");
10798

10899
if (auth == null) {
109-
LOG.warn("REST API request with no Authorization header rejected");
100+
LOG.warn("REST API request with no Authorization header rejected. [Request IP: {}, Request URI: {}]",
101+
getClientIPAddressForRequest(httpRequest), containerRequest.getUriInfo().getRequestUri());
110102
throw new WebApplicationException(Status.UNAUTHORIZED);
111103
}
112104

@@ -153,4 +145,18 @@ private boolean isStatusEndpoint(String path){
153145
path.equals("/plugins/restapi/v1/system/readiness") ||
154146
path.startsWith("/plugins/restapi/v1/system/readiness/");
155147
}
148+
149+
private String getClientIPAddressForRequest(HttpServletRequest request) {
150+
String ipAddress = request.getHeader("x-forwarded-for");
151+
if (ipAddress == null) {
152+
ipAddress = request.getHeader("X_FORWARDED_FOR");
153+
if (ipAddress == null) {
154+
ipAddress = request.getHeader("X-Forward-For");
155+
if (ipAddress == null) {
156+
ipAddress = request.getRemoteAddr();
157+
}
158+
}
159+
}
160+
return ipAddress;
161+
}
156162
}

src/java/org/jivesoftware/openfire/plugin/rest/entity/GroupEntity.java

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,7 @@
1919
import com.fasterxml.jackson.annotation.JsonProperty;
2020
import io.swagger.v3.oas.annotations.media.ArraySchema;
2121
import io.swagger.v3.oas.annotations.media.Schema;
22-
import org.glassfish.jersey.internal.guava.MoreObjects;
23-
import org.jivesoftware.util.StringUtils;
24-
2522
import java.util.List;
26-
import java.util.Optional;
2723

2824
import javax.xml.bind.annotation.XmlElement;
2925
import javax.xml.bind.annotation.XmlElementWrapper;
@@ -178,14 +174,13 @@ public void setMembers(List<String> members) {
178174
@Override
179175
public String toString() {
180176

181-
return MoreObjects.toStringHelper(this)
182-
.add("name", this.name)
183-
.add("description", this.description)
184-
.add( "admins", this.admins)
185-
.add("members", this.members)
186-
.add("shared", this.shared)
187-
.toString();
188-
177+
return "GroupEntity [" +
178+
"name='" + name +
179+
", description='" + description +
180+
", admins=" + admins +
181+
", members=" + members +
182+
", shared=" + shared +
183+
"]";
189184
}
190185

191186
}

src/java/org/jivesoftware/openfire/plugin/rest/entity/MUCRoomEntity.java

Lines changed: 25 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818

1919
import com.fasterxml.jackson.annotation.JsonProperty;
2020
import io.swagger.v3.oas.annotations.media.Schema;
21-
import org.glassfish.jersey.internal.guava.MoreObjects;
2221
import org.xmpp.packet.JID;
2322

2423
import java.util.Date;
@@ -366,30 +365,30 @@ public void setAdminGroups(List<String> adminGroups) {
366365

367366
@Override
368367
public String toString() {
369-
return MoreObjects.toStringHelper(this)
370-
.add("roomName", roomName)
371-
.add("description", description)
372-
.add("persistent", persistent)
373-
.add("publicRoom", publicRoom)
374-
.add("registrationEnabled", registrationEnabled)
375-
.add("canAnyoneDiscoverJID", canAnyoneDiscoverJID)
376-
.add("canOccupantsChangeSubject", canOccupantsChangeSubject)
377-
.add("canOccupantsInvite", canOccupantsInvite)
378-
.add("canChangeNickname", canChangeNickname)
379-
.add("logEnabled", logEnabled)
380-
.add("loginRestrictedToNickname", loginRestrictedToNickname)
381-
.add("membersOnly", membersOnly)
382-
.add("moderated", moderated)
383-
.add("broadcastPresenceRoles", broadcastPresenceRoles)
384-
.add("owners", owners)
385-
.add("ownerGroups", ownerGroups)
386-
.add("members", members)
387-
.add("memberGroups", memberGroups)
388-
.add("outcasts", outcasts)
389-
.add("outcastGroups", outcastGroups)
390-
.add("admins", admins)
391-
.add("adminGroups", adminGroups)
392-
.toString();
368+
return "MUCRoomEntity ["
369+
+ "roomName=" + roomName
370+
+ ", naturalName=" + naturalName
371+
+ ", description=" + description
372+
+ ", persistent=" + persistent
373+
+ ", publicRoom=" + publicRoom
374+
+ ", canAnyoneDiscoverJID=" + canAnyoneDiscoverJID
375+
+ ", canOccupantsChangeSubject=" + canOccupantsChangeSubject
376+
+ ", canOccupantsInvite=" + canOccupantsInvite
377+
+ ", canChangeNickname=" + canChangeNickname
378+
+ ", logEnabled=" + logEnabled
379+
+ ", loginRestrictedToNickname=" + loginRestrictedToNickname
380+
+ ", membersOnly=" + membersOnly
381+
+ ", moderated=" + moderated
382+
+ ", registrationEnabled=" + registrationEnabled
383+
+ ", broadcastPresenceRoles=" + broadcastPresenceRoles
384+
+ ", owners=" + owners
385+
+ ", ownerGroups=" + ownerGroups
386+
+ ", members=" + members
387+
+ ", memberGroups=" + memberGroups
388+
+ ", outcasts=" + outcasts
389+
+ ", outcastGroups=" + outcastGroups
390+
+ ", admins=" + admins
391+
+ ", adminGroups=" + adminGroups
392+
+ "]";
393393
}
394-
395394
}

src/java/org/jivesoftware/openfire/plugin/rest/utils/LoggingUtils.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616

1717
package org.jivesoftware.openfire.plugin.rest.utils;
1818

19+
import org.eclipse.jetty.util.log.Log;
1920
import org.jivesoftware.openfire.plugin.rest.RESTServicePlugin;
2021
import org.jivesoftware.util.JiveGlobals;
2122
import org.slf4j.Logger;
@@ -25,6 +26,7 @@
2526

2627
public class LoggingUtils {
2728
private static final Logger AUDIT_LOG = LoggerFactory.getLogger("RestAPI-Plugin-Audit");
29+
private static final Logger LOG = LoggerFactory.getLogger(LoggingUtils.class);
2830

2931
public enum AuditEvent {
3032
//Clustering
@@ -116,7 +118,9 @@ private static String getCaller() {
116118
}
117119
return element.getClassName() + "." + element.getMethodName();
118120
}
119-
} catch (Exception ignored) {}
121+
} catch (Exception e) {
122+
LOG.error("Unable to get caller of the logger. This should be impossible.", e);
123+
}
120124
return "unknown";
121125
}
122126
}

0 commit comments

Comments
 (0)