import java.util.Set;
import java.util.TreeMap;
import java.util.concurrent.ConcurrentMap;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
import org.codehaus.jackson.map.ObjectMapper;
import org.opendaylight.controller.usermanager.IUserManager;
-import org.opendaylight.controller.web.IOneWeb;
-import org.springframework.security.core.context.SecurityContextHolder;
+import org.opendaylight.controller.web.IDaylightWeb;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
@Controller
@RequestMapping("/")
-public class Devices implements IOneWeb {
+public class Devices implements IDaylightWeb {
private static final UserLevel AUTH_LEVEL = UserLevel.CONTAINERUSER;
private final String WEB_NAME = "Devices";
private final String WEB_ID = "devices";
private final String containerName = GlobalConstants.DEFAULT.toString();
public Devices() {
- ServiceHelper.registerGlobalService(IOneWeb.class, this, null);
+ ServiceHelper.registerGlobalService(IDaylightWeb.class, this, null);
}
@Override
for (Switch device : switchManager.getNetworkDevices()) {
HashMap<String, String> nodeDatum = new HashMap<String, String>();
Node node = device.getNode();
- SwitchConfig switchConfig = switchManager.getSwitchConfig(node.getNodeIDString());
Tier tier = (Tier) switchManager.getNodeProp(node,
Tier.TierPropName);
- String swName = switchConfig == null ? null : switchConfig.getNodeName();
+
nodeDatum.put("containerName", containerName);
- nodeDatum.put("nodeName", swName);
- nodeDatum.put("nodeId", node.getNodeIDString());
+ nodeDatum.put("nodeName", switchManager.getNodeDescription(node));
+ nodeDatum.put("nodeId", node.toString());
int tierNumber = (tier == null) ? TierHelper.unknownTierNumber
: tier.getValue();
nodeDatum.put("tierName", TierHelper.getTierName(tierNumber)
+ " (Tier-" + tierNumber + ")");
nodeDatum.put("tier", tierNumber + "");
SwitchConfig sc = switchManager.getSwitchConfig(device.getNode()
- .getNodeIDString());
+ .toString());
String modeStr = (sc != null) ? sc.getMode() : "0";
nodeDatum.put("mode", modeStr);
Map<Short, String> portList = new HashMap<Short, String>();
for (NodeConnector nodeConnector : nodeConnectorSet) {
nodeConnectorNumberToStr = nodeConnector.getID().toString();
- Name ncName = ((Name) switchManager
- .getNodeConnectorProp(nodeConnector,
- Name.NamePropName));
- nodeConnectorName = (ncName != null) ? ncName.getValue() : "";
+ Name ncName = ((Name) switchManager.getNodeConnectorProp(
+ nodeConnector, Name.NamePropName));
+ nodeConnectorName = (ncName != null) ? ncName.getValue()
+ : "";
portList.put(Short.parseShort(nodeConnectorNumberToStr),
nodeConnectorName);
}
columnNames.add("Tier");
columnNames.add("Mac Address");
columnNames.add("Ports");
-
+
result.setColumnNames(columnNames);
return result;
}
public List<String> getTiers() {
return TierHelper.getTiers();
}
-
+
@RequestMapping(value = "/nodesLearnt/update", method = RequestMethod.GET)
@ResponseBody
public StatusJsonBean updateLearntNode(
@RequestParam("nodeName") String nodeName,
@RequestParam("nodeId") String nodeId,
@RequestParam("tier") String tier,
- @RequestParam("operationMode") String operationMode) {
- if (!authorize(UserLevel.NETWORKADMIN)) {
- return unauthorizedMessage();
- }
-
- StatusJsonBean resultBean = new StatusJsonBean();
+ @RequestParam("operationMode") String operationMode,
+ HttpServletRequest request) {
+ if (!authorize(UserLevel.NETWORKADMIN, request)) {
+ return unauthorizedMessage();
+ }
+
+ StatusJsonBean resultBean = new StatusJsonBean();
try {
ISwitchManager switchManager = (ISwitchManager) ServiceHelper
.getInstance(ISwitchManager.class, containerName, this);
public DevicesJsonBean getStaticRoutes() {
Gson gson = new Gson();
IForwardingStaticRouting staticRouting = (IForwardingStaticRouting) ServiceHelper
- .getInstance(IForwardingStaticRouting.class, containerName, this);
+ .getInstance(IForwardingStaticRouting.class, containerName,
+ this);
List<Map<String, String>> staticRoutes = new ArrayList<Map<String, String>>();
ConcurrentMap<String, StaticRouteConfig> routeConfigs = staticRouting
.getStaticRouteConfigs();
public StatusJsonBean addStaticRoute(
@RequestParam("routeName") String routeName,
@RequestParam("staticRoute") String staticRoute,
- @RequestParam("nextHop") String nextHop) {
- if (!authorize(UserLevel.NETWORKADMIN)) {
- return unauthorizedMessage();
- }
-
+ @RequestParam("nextHop") String nextHop, HttpServletRequest request) {
+ if (!authorize(UserLevel.NETWORKADMIN, request)) {
+ return unauthorizedMessage();
+ }
+
StatusJsonBean result = new StatusJsonBean();
try {
IForwardingStaticRouting staticRouting = (IForwardingStaticRouting) ServiceHelper
@RequestMapping(value = "/staticRoute/delete", method = RequestMethod.GET)
@ResponseBody
public StatusJsonBean deleteStaticRoute(
- @RequestParam("routesToDelete") String routesToDelete) {
- if (!authorize(UserLevel.NETWORKADMIN)) {
- return unauthorizedMessage();
- }
-
+ @RequestParam("routesToDelete") String routesToDelete,
+ HttpServletRequest request) {
+ if (!authorize(UserLevel.NETWORKADMIN, request)) {
+ return unauthorizedMessage();
+ }
+
StatusJsonBean resultBean = new StatusJsonBean();
try {
IForwardingStaticRouting staticRouting = (IForwardingStaticRouting) ServiceHelper
result.setNodeData(subnets);
return result;
}
-
+
@RequestMapping(value = "/subnetGateway/add", method = RequestMethod.GET)
@ResponseBody
public StatusJsonBean addSubnetGateways(
@RequestParam("gatewayName") String gatewayName,
- @RequestParam("gatewayIPAddress") String gatewayIPAddress) {
- if (!authorize(UserLevel.NETWORKADMIN)) {
- return unauthorizedMessage();
- }
+ @RequestParam("gatewayIPAddress") String gatewayIPAddress,
+ HttpServletRequest request) {
+ if (!authorize(UserLevel.NETWORKADMIN, request)) {
+ return unauthorizedMessage();
+ }
StatusJsonBean resultBean = new StatusJsonBean();
try {
@RequestMapping(value = "/subnetGateway/delete", method = RequestMethod.GET)
@ResponseBody
public StatusJsonBean deleteSubnetGateways(
- @RequestParam("gatewaysToDelete") String gatewaysToDelete) {
- if (!authorize(UserLevel.NETWORKADMIN)) {
- return unauthorizedMessage();
- }
-
+ @RequestParam("gatewaysToDelete") String gatewaysToDelete,
+ HttpServletRequest request) {
+ if (!authorize(UserLevel.NETWORKADMIN, request)) {
+ return unauthorizedMessage();
+ }
+
StatusJsonBean resultBean = new StatusJsonBean();
try {
ISwitchManager switchManager = (ISwitchManager) ServiceHelper
public StatusJsonBean addSubnetGatewayPort(
@RequestParam("portsName") String portsName,
@RequestParam("ports") String ports,
- @RequestParam("nodeId") String nodeId) {
- if (!authorize(UserLevel.NETWORKADMIN)) {
- return unauthorizedMessage();
- }
-
+ @RequestParam("nodeId") String nodeId, HttpServletRequest request) {
+ if (!authorize(UserLevel.NETWORKADMIN, request)) {
+ return unauthorizedMessage();
+ }
+
StatusJsonBean resultBean = new StatusJsonBean();
try {
ISwitchManager switchManager = (ISwitchManager) ServiceHelper
@ResponseBody
public StatusJsonBean deleteSubnetGatewayPort(
@RequestParam("gatewayName") String gatewayName,
- @RequestParam("nodePort") String nodePort) {
- if (!authorize(UserLevel.NETWORKADMIN)) {
- return unauthorizedMessage();
- }
-
+ @RequestParam("nodePort") String nodePort,
+ HttpServletRequest request) {
+ if (!authorize(UserLevel.NETWORKADMIN, request)) {
+ return unauthorizedMessage();
+ }
+
StatusJsonBean resultBean = new StatusJsonBean();
try {
ISwitchManager switchManager = (ISwitchManager) ServiceHelper
config.put(name, config_data.get(name));
// Add switch name value (non-configuration field)
config.put("nodeName",
- getNodeName(config_data.get("nodeId")));
+ getNodeDesc(config_data.get("nodeId")));
}
config.put("json", config_json);
spanConfigs.add(config);
@RequestMapping(value = "/spanPorts/add", method = RequestMethod.GET)
@ResponseBody
- public StatusJsonBean addSpanPort(@RequestParam("jsonData") String jsonData) {
- if (!authorize(UserLevel.NETWORKADMIN)) {
- return unauthorizedMessage();
- }
-
+ public StatusJsonBean addSpanPort(
+ @RequestParam("jsonData") String jsonData,
+ HttpServletRequest request) {
+ if (!authorize(UserLevel.NETWORKADMIN, request)) {
+ return unauthorizedMessage();
+ }
+
StatusJsonBean resultBean = new StatusJsonBean();
try {
Gson gson = new Gson();
@RequestMapping(value = "/spanPorts/delete", method = RequestMethod.GET)
@ResponseBody
public StatusJsonBean deleteSpanPorts(
- @RequestParam("spanPortsToDelete") String spanPortsToDelete) {
- if (!authorize(UserLevel.NETWORKADMIN)) {
- return unauthorizedMessage();
- }
-
+ @RequestParam("spanPortsToDelete") String spanPortsToDelete,
+ HttpServletRequest request) {
+ if (!authorize(UserLevel.NETWORKADMIN, request)) {
+ return unauthorizedMessage();
+ }
+
StatusJsonBean resultBean = new StatusJsonBean();
try {
Gson gson = new Gson();
return resultBean;
}
- private String getNodeName(String nodeId) {
- String nodeName = nodeId;
+ private String getNodeDesc(String nodeId) {
ISwitchManager switchManager = (ISwitchManager) ServiceHelper
.getInstance(ISwitchManager.class, containerName, this);
-
- Node node = Node.fromString(nodeId);
+ String description = "";
if (switchManager != null) {
- SwitchConfig config = switchManager.getSwitchConfig(node
- .getNodeIDString());
- if (config != null) {
- nodeName = config.getNodeName();
- }
+ description = switchManager.getNodeDescription(Node
+ .fromString(nodeId));
}
- return nodeName;
+ return (description.isEmpty() || description.equalsIgnoreCase("none")) ? nodeId
+ : description;
}
/**
*
* @param level
*/
- private boolean authorize(UserLevel level) {
- IUserManager userManager = (IUserManager) ServiceHelper
+ private boolean authorize(UserLevel level, HttpServletRequest request) {
+ IUserManager userManager = (IUserManager) ServiceHelper
.getGlobalInstance(IUserManager.class, this);
if (userManager == null) {
- return false;
+ return false;
}
-
- String username = SecurityContextHolder.getContext().getAuthentication().getName();
+
+ String username = request.getUserPrincipal().getName();
UserLevel userLevel = userManager.getUserLevel(username);
if (userLevel.toNumber() <= level.toNumber()) {
- return true;
+ return true;
}
return false;
}
-
+
private StatusJsonBean unauthorizedMessage() {
- StatusJsonBean message = new StatusJsonBean();
- message.setStatus(false);
- message.setMessage("Operation not authorized");
- return message;
+ StatusJsonBean message = new StatusJsonBean();
+ message.setStatus(false);
+ message.setMessage("Operation not authorized");
+ return message;
+ }
+
+ @RequestMapping(value = "login")
+ public String login(final HttpServletRequest request,
+ final HttpServletResponse response) {
+ // response.setHeader("X-Page-Location", "/login");
+ /*
+ * IUserManager userManager = (IUserManager) ServiceHelper
+ * .getGlobalInstance(IUserManager.class, this); if (userManager ==
+ * null) { return "User Manager is not available"; }
+ *
+ * String username = request.getUserPrincipal().getName();
+ *
+ *
+ * model.addAttribute("username", username); model.addAttribute("role",
+ * userManager.getUserLevel(username).toNumber());
+ */
+ return "forward:" + "/";
}
}