ONOS-3810 augmenting Rest southbound protocol and provider for https and password based auth

Change-Id: I3e5f07ba6a751bc8a7637373c037a1910181f9ab
diff --git a/protocols/rest/api/src/main/java/org/onosproject/protocol/rest/DefaultRestSBDevice.java b/protocols/rest/api/src/main/java/org/onosproject/protocol/rest/DefaultRestSBDevice.java
index baf26cb..aa1b959 100644
--- a/protocols/rest/api/src/main/java/org/onosproject/protocol/rest/DefaultRestSBDevice.java
+++ b/protocols/rest/api/src/main/java/org/onosproject/protocol/rest/DefaultRestSBDevice.java
@@ -16,7 +16,9 @@
 
 package org.onosproject.protocol.rest;
 
+import com.google.common.base.MoreObjects;
 import com.google.common.base.Preconditions;
+import org.apache.commons.lang3.StringUtils;
 import org.onlab.packet.IpAddress;
 import org.onosproject.net.DeviceId;
 
@@ -34,18 +36,20 @@
     private final String password;
     private boolean isActive;
     private String protocol;
+    private String url;
 
     public DefaultRestSBDevice(IpAddress ip, int port, String name, String password,
-                               String protocol, boolean isActive) {
+                               String protocol, String url, boolean isActive) {
         Preconditions.checkNotNull(ip, "IP address cannot be null");
         Preconditions.checkArgument(port > 0, "Port address cannot be negative");
         Preconditions.checkNotNull(protocol, "protocol address cannot be null");
         this.ip = ip;
         this.port = port;
         this.name = name;
-        this.password = password;
+        this.password = StringUtils.isEmpty(password) ? null : password;
         this.isActive = isActive;
         this.protocol = protocol;
+        this.url = StringUtils.isEmpty(url) ? null : url;
     }
 
     @Override
@@ -89,6 +93,22 @@
     }
 
     @Override
+    public String url() {
+        return url;
+    }
+
+    @Override
+    public String toString() {
+        return MoreObjects.toStringHelper(this)
+                .add("url", url)
+                .add("protocol", protocol)
+                .add("name", name)
+                .add("port", port)
+                .add("ip", ip)
+                .toString();
+    }
+
+    @Override
     public boolean equals(Object obj) {
         if (obj == this) {
             return true;