Adding server-side user preferences.
More work still needs to get done to allow client to process
server-pushed preferences updates.
Change-Id: I6e80e3f3677285cb19cfa3b6240c1b13aac56622
diff --git a/web/gui/src/main/java/org/onosproject/ui/impl/UiWebSocketServlet.java b/web/gui/src/main/java/org/onosproject/ui/impl/UiWebSocketServlet.java
index 564b07f..a9f349f 100644
--- a/web/gui/src/main/java/org/onosproject/ui/impl/UiWebSocketServlet.java
+++ b/web/gui/src/main/java/org/onosproject/ui/impl/UiWebSocketServlet.java
@@ -70,7 +70,10 @@
if (isStopped) {
return null;
}
- UiWebSocket socket = new UiWebSocket(directory);
+
+ // FIXME: Replace this with globally shared opaque token to allow secure failover
+ String userName = request.getUserPrincipal().getName();
+ UiWebSocket socket = new UiWebSocket(directory, userName);
synchronized (sockets) {
sockets.add(socket);
}
@@ -89,6 +92,20 @@
}
}
+ /**
+ * Sends the specified message to all the GUI clients of the specified user.
+ *
+ * @param userName user name
+ * @param type message type
+ * @param payload message payload
+ */
+ static void sendToUser(String userName, String type, ObjectNode payload) {
+ if (instance != null) {
+ instance.sockets.stream().filter(ws -> userName.equals(ws.userName()))
+ .forEach(ws -> ws.sendMessage(type, 0, payload));
+ }
+ }
+
// Task for pruning web-sockets that are idle.
private class Pruner extends TimerTask {
@Override