@Context
public void setSecurityContext(SecurityContext context) {
- username = context.getUserPrincipal().getName();
+ if (context != null && context.getUserPrincipal() != null) username = context.getUserPrincipal().getName();
}
protected String getUserName() {
return username;
.getGlobalInstance(IConnectionManager.class, this);
}
- /**
- * If a Network Configuration Service needs a special Management Connection and if the
- * Node Type is unknown, use this REST api to connect to the management session.
- * <pre>
- *
- * Example :
- *
- * Request :
- * http://localhost:8080/controller/nb/v2/networkconfig/bridgedomain/connect/mgmt1/1.1.1.1/6634
- *
- * Response :
- * Node :
- * xml :
- * <node>
- * <id>mgmt1</id>
- * <type>STUB</type>
- * </node>
- *
- * json:
- * {"id": "mgmt1","type": "STUB"}
- *
- *</pre>
- * @param nodeName User-Defined name of the node to connect with. This can be any alpha numeric value
- * @param ipAddress IP Address of the Node to connect with.
- * @param port Layer4 Port of the management session to connect with.
- * @return Node If the connection is successful, HTTP 404 otherwise.
- */
-
- @Path("/connect/{nodeName}/{ipAddress}/{port}/")
- @PUT
- @Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
- @TypeHint(Node.class)
- @StatusCodes( {
- @ResponseCode(code = 201, condition = "Node connected successfully"),
- @ResponseCode(code = 404, condition = "Could not connect to the Node with the specified parameters"),
- @ResponseCode(code = 406, condition = "Invalid IP Address or Port parameter passed."),
- @ResponseCode(code = 503, condition = "Connection Manager Service not available")} )
- public Node connect(
- @PathParam(value = "nodeName") String nodeName,
- @PathParam(value = "ipAddress") String ipAddress,
- @PathParam(value = "port") String port) {
-
- IConnectionManager connectionManager = getConnectionManager();
- if (connectionManager == null) {
- throw new ServiceUnavailableException("IConnectionManager not available.");
- }
-
- if (!NetUtils.isIPv4AddressValid(ipAddress)) {
- throw new NotAcceptableException("Invalid ip address "+ipAddress);
- }
-
- try {
- Integer.parseInt(port);
- } catch (Exception e) {
- throw new NotAcceptableException("Invalid Layer4 Port "+port);
- }
-
- Map<ConnectionConstants, String> params = new HashMap<ConnectionConstants, String>();
- params.put(ConnectionConstants.ADDRESS, ipAddress);
- params.put(ConnectionConstants.PORT, port);
-
- Node node = null;
- try {
- node = connectionManager.connect(nodeName, params);
- if (node == null) {
- throw new ResourceNotFoundException("Failed to connect to Node at "+ipAddress+":"+port);
- }
- return node;
- } catch (Exception e) {
- throw new ResourceNotFoundException(e.getMessage());
- }
- }
-
- /**
- * If a Network Configuration Service needs a special Management Connection, and if the
- * node Type is known, the user can choose to use this REST api to connect to the management session.
- * <pre>
- *
- * Example :
- *
- * Request :
- * http://localhost:8080/controller/nb/v2/networkconfig/bridgedomain/connect/STUB/mgmt1/1.1.1.1/6634
- *
- * Response : Node :
- * xml :
- * <node>
- * <id>mgmt1</id>
- * <type>STUB</type>
- * </node>
- *
- * json:
- * {"id": "mgmt1","type": "STUB"}
- *
- *</pre>
- * @param nodeName User-Defined name of the node to connect with. This can be any alpha numeric value
- * @param ipAddress IP Address of the Node to connect with.
- * @param port Layer4 Port of the management session to connect with.
- * @return Node If the connection is successful, HTTP 404 otherwise.
- */
-
- @Path("/connect/{nodeType}/{nodeId}/{ipAddress}/{port}/")
- @PUT
- @Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
- @TypeHint(Node.class)
- @StatusCodes( {
- @ResponseCode(code = 201, condition = "Node connected successfully"),
- @ResponseCode(code = 404, condition = "Could not connect to the Node with the specified parameters"),
- @ResponseCode(code = 406, condition = "Invalid IP Address or Port parameter passed."),
- @ResponseCode(code = 503, condition = "Connection Manager Service not available")} )
- public Node connect(
- @PathParam(value = "nodeType") String nodeType,
- @PathParam(value = "nodeId") String nodeId,
- @PathParam(value = "ipAddress") String ipAddress,
- @PathParam(value = "port") String port) {
-
- IConnectionManager connectionManager = getConnectionManager();
- if (connectionManager == null) {
- throw new ServiceUnavailableException("IConnectionManager not available.");
- }
-
- if (!NetUtils.isIPv4AddressValid(ipAddress)) {
- throw new NotAcceptableException("Invalid ip address "+ipAddress);
- }
-
- try {
- Integer.parseInt(port);
- } catch (Exception e) {
- throw new NotAcceptableException("Invalid Layer4 Port "+port);
- }
-
- Map<ConnectionConstants, String> params = new HashMap<ConnectionConstants, String>();
- params.put(ConnectionConstants.ADDRESS, ipAddress);
- params.put(ConnectionConstants.PORT, port);
-
- Node node = null;
- try {
- node = connectionManager.connect(nodeType, nodeId, params);
- if (node == null) {
- throw new ResourceNotFoundException("Failed to connect to Node at "+ipAddress+":"+port);
- }
- return node;
- } catch (Exception e) {
- throw new ResourceNotFoundException(e.getMessage());
- }
- }
-
/**
* Create a Bridge.
* <pre>