/** * Delete connection from configuration. * * @param req HTTP request * @param id forward id to delete * @return service response. */ @DELETE @Path("connection/delete/{id}") @Produces(MediaType.APPLICATION_JSON) public ServiceResponse deleteConnection( @Context HttpServletRequest req, @PathParam("id") String id) { Configuration cfg = getEditConfiguration(req); for (SshSession sshClient : cfg.getSshSession()) { for (Forward fwd : sshClient.getForward()) { if (((Connection) fwd.getConnection()).getId().equals(id)) { return ServiceUtils.createNOKResponse( "Connection is in use by session " + sshClient.getName()); } } } Iterator<Connection> iter = cfg.getConnection().iterator(); while (iter.hasNext()) { Connection connection = iter.next(); if (connection.getId().equals(id)) { iter.remove(); return ServiceUtils.createOKResponse("Connection deleted"); } } return ServiceUtils.createOKResponse("Connection not found: " + id); }
/** * Change forward configuration. * * @param req HTTP request * @param id forward id to change * @return service response. */ @POST @Path("forward/update/{id}") @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON) public ServiceResponse updateForward( @Context HttpServletRequest req, @PathParam("id") String id, Forward forwardReq) { Configuration cfg = getEditConfiguration(req); for (SshSession sshClient : cfg.getSshSession()) { Iterator<Forward> iter = sshClient.getForward().iterator(); while (iter.hasNext()) { Forward fwd = iter.next(); if (fwd.getId().equals(id)) { Connection mAccount = getConnectionById((String) forwardReq.getConnection(), cfg); if (mAccount != null) { fwd.setDescription(forwardReq.getDescription()); fwd.setEnabled(forwardReq.isEnabled()); fwd.setType(forwardReq.getType()); fwd.setRHost(forwardReq.getRHost()); fwd.setSHost(forwardReq.getSHost()); fwd.setRPort(forwardReq.getRPort()); fwd.setSPort(forwardReq.getSPort()); fwd.setConnection(mAccount); fwd.setFilter(forwardReq.getFilter()); return ServiceUtils.createOKResponse("Forward changed"); } return ServiceUtils.createNOKResponse("Connection not found"); } } } return ServiceUtils.createOKResponse("Forward not found: " + id); }
/** * Add new forward to configuration. * * @param req HTTP request * @param forwardReq forward data * @return service response. */ @POST @Path("forward/add/{id}") @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON) public ServiceResponse addForward( @Context HttpServletRequest req, @PathParam("id") String sessionId, Forward forwardReq) { Configuration cfg = getEditConfiguration(req); for (SshSession sshClient : cfg.getSshSession()) { if (sshClient.getId().equals(sessionId)) { Connection mAccount = getConnectionById((String) forwardReq.getConnection(), cfg); if (mAccount != null) { Forward fwd = new Forward(); fwd.setConnection(mAccount); fwd.setId(StringUtils.createUUID()); fwd.setDescription(forwardReq.getDescription()); fwd.setEnabled(forwardReq.isEnabled()); fwd.setSHost(forwardReq.getSHost()); fwd.setSPort(forwardReq.getSPort()); fwd.setRHost(forwardReq.getRHost()); fwd.setRPort(forwardReq.getRPort()); fwd.setType(forwardReq.getType()); sshClient.getForward().add(fwd); return ServiceUtils.createOKResponse("SSH forward added"); } return ServiceUtils.createNOKResponse("SSH connection not found"); } } return ServiceUtils.createNOKResponse("SSH client not found"); }