/** * 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 session to configuration. * * @param req HTTP request * @param forwardReq forward data * @return service response. */ @POST @Path("session/add") @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON) public ServiceResponse addSession(@Context HttpServletRequest req, SshSession sessionCfg) { Configuration cfg = getEditConfiguration(req); sessionCfg.setId(StringUtils.createUUID()); cfg.getSshSession().add(sessionCfg); return ServiceUtils.createOKResponse("SSH client session added"); }
/** * Delete session from configuration. * * @param req HTTP request * @param id session id to delete * @return service response. */ @DELETE @Path("session/delete/{id}") @Produces(MediaType.APPLICATION_JSON) public ServiceResponse deleteSession( @Context HttpServletRequest req, @PathParam("id") String id) { Configuration cfg = getEditConfiguration(req); Iterator<SshSession> iter = cfg.getSshSession().iterator(); while (iter.hasNext()) { SshSession sshClient = iter.next(); if (sshClient.getId().equals(id)) { iter.remove(); return ServiceUtils.createOKResponse("Session '" + sshClient.getName() + "' deleted"); } } return ServiceUtils.createNOKResponse("Session not found: " + id); }
/** * Delete forward from configuration. * * @param req HTTP request * @param id forward id to delete * @return service response. */ @DELETE @Path("forward/delete/{id}") @Produces(MediaType.APPLICATION_JSON) public ServiceResponse deleteForward( @Context HttpServletRequest req, @PathParam("id") String id) { 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)) { iter.remove(); return ServiceUtils.createOKResponse("Forward removed"); } } } return ServiceUtils.createOKResponse("Forward not found: " + id); }
/** * Change session configuration. * * @param req HTTP request * @param id session id to change * @return service response. */ @POST @Path("session/update/{id}") @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON) public ServiceResponse updateSession( @Context HttpServletRequest req, @PathParam("id") String id, SshSession newSessionCfg) { Configuration cfg = getEditConfiguration(req); for (SshSession sessionCfg : cfg.getSshSession()) { if (sessionCfg.getId().equals(id)) { sessionCfg.setName(newSessionCfg.getName()); sessionCfg.setEnabled(newSessionCfg.isEnabled()); sessionCfg.setDescription(newSessionCfg.getDescription()); return ServiceUtils.createOKResponse("Session configuration changed"); } } return ServiceUtils.createOKResponse("Session 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"); }