Skip to content

Commit

Permalink
Security: Use EDN to read saved tasks from server
Browse files Browse the repository at this point in the history
Previous versions of jscfi just executed the code stored on the SCPI.
  • Loading branch information
vi committed Apr 15, 2013
1 parent ad7dd52 commit 3ef9b54
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 4 deletions.
2 changes: 1 addition & 1 deletion project.clj
Expand Up @@ -2,7 +2,7 @@
jscfi
"1.7"
:description "GUI for uploading MPI programs into PBS-controlled servers"
:dependencies [[org.clojure/clojure "1.3.0-alpha4"]
:dependencies [[org.clojure/clojure "1.5.1"]
#_ "Alpha version because of http://dev.clojure.org/jira/browse/CLJ-855"
[org.clojure/tools.logging "0.2.3"]
[com/miglayout/miglayout "3.7.2"]
Expand Down
26 changes: 23 additions & 3 deletions src/org/vi_server/jscfi/engine.clj
Expand Up @@ -19,6 +19,7 @@
message
something-changed
text-info]])
(:require clojure.edn)
(:import
(com.jcraft.jsch
ChannelSftp
Expand Down Expand Up @@ -61,10 +62,29 @@
(info (format "Reading script %s with format arguments %s" script-name args))
(apply format (read-script-noformat script-name) args))

;;(defn serialise [object]
;; (binding [*print-dup* true] (with-out-str (prn object))))

(defn serialise [object]
(binding [*print-dup* true] (with-out-str (prn object))))

(defn deserialise [string] (read-string string))
(->
object
prn-str
(clojure.string/replace " {" "\n{")
(clojure.string/replace ", " ",\n")))



;;(defn deserialise [string] (read-string string))
(defn deserialise [string]
(let [fixed-string
(if
(re-matches #".*clojure\.lang\.PersistentArrayMap/create(?:.*\n*)*" string)
;; old format
(nth (re-find #_"(" #"clojure.lang.PersistentArrayMap/create (.*?)\)" string) 1)
;; normal format
string
)]
(clojure.edn/read-string fixed-string)))

(defn ssh-execute-output [session command input-str output]
(info "ssh-execute-output")
Expand Down

0 comments on commit 3ef9b54

Please sign in to comment.