Search in sources :

Example 1 with UserSchSessions

use of com.keybox.manage.model.UserSchSessions in project KeyBox by skavanagh.

the class SecureShellWS method onMessage.

@OnMessage
public void onMessage(String message) {
    if (session.isOpen() && StringUtils.isNotEmpty(message)) {
        Map jsonRoot = new Gson().fromJson(message, Map.class);
        String command = (String) jsonRoot.get("command");
        Integer keyCode = null;
        Double keyCodeDbl = (Double) jsonRoot.get("keyCode");
        if (keyCodeDbl != null) {
            keyCode = keyCodeDbl.intValue();
        }
        for (String idStr : (ArrayList<String>) jsonRoot.get("id")) {
            Integer id = Integer.parseInt(idStr);
            //get servletRequest.getSession() for user
            UserSchSessions userSchSessions = SecureShellAction.getUserSchSessionMap().get(sessionId);
            if (userSchSessions != null) {
                SchSession schSession = userSchSessions.getSchSessionMap().get(id);
                if (keyCode != null) {
                    if (keyMap.containsKey(keyCode)) {
                        try {
                            schSession.getCommander().write(keyMap.get(keyCode));
                        } catch (IOException ex) {
                            log.error(ex.toString(), ex);
                        }
                    }
                } else {
                    schSession.getCommander().print(command);
                }
            }
        }
        //update timeout
        AuthUtil.setTimeout(httpSession);
    }
}
Also used : UserSchSessions(com.keybox.manage.model.UserSchSessions) SchSession(com.keybox.manage.model.SchSession) ArrayList(java.util.ArrayList) Gson(com.google.gson.Gson) IOException(java.io.IOException) HashMap(java.util.HashMap) Map(java.util.Map)

Example 2 with UserSchSessions

use of com.keybox.manage.model.UserSchSessions in project KeyBox by skavanagh.

the class SecureShellWS method onClose.

@OnClose
public void onClose() {
    if (SecureShellAction.getUserSchSessionMap() != null) {
        UserSchSessions userSchSessions = SecureShellAction.getUserSchSessionMap().get(sessionId);
        if (userSchSessions != null) {
            Map<Integer, SchSession> schSessionMap = userSchSessions.getSchSessionMap();
            for (Integer sessionKey : schSessionMap.keySet()) {
                SchSession schSession = schSessionMap.get(sessionKey);
                //disconnect ssh session
                schSession.getChannel().disconnect();
                schSession.getSession().disconnect();
                schSession.setChannel(null);
                schSession.setSession(null);
                schSession.setInputToChannel(null);
                schSession.setCommander(null);
                schSession.setOutFromChannel(null);
                schSession = null;
                //remove from map
                schSessionMap.remove(sessionKey);
            }
            //clear and remove session map for user
            schSessionMap.clear();
            SecureShellAction.getUserSchSessionMap().remove(sessionId);
            SessionOutputUtil.removeUserSession(sessionId);
        }
    }
}
Also used : UserSchSessions(com.keybox.manage.model.UserSchSessions) SchSession(com.keybox.manage.model.SchSession)

Aggregations

SchSession (com.keybox.manage.model.SchSession)2 UserSchSessions (com.keybox.manage.model.UserSchSessions)2 Gson (com.google.gson.Gson)1 IOException (java.io.IOException)1 ArrayList (java.util.ArrayList)1 HashMap (java.util.HashMap)1 Map (java.util.Map)1