Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
J
jumpserver
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
ops
jumpserver
Commits
742e56fc
Commit
742e56fc
authored
Nov 24, 2015
by
wangyong
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'dev' of
https://git.coding.net/jumpserver/jumpserver
into dev
parents
0262d94d
1a63d32f
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
18 additions
and
30 deletions
+18
-30
connect.py
connect.py
+3
-2
views.py
jlog/views.py
+1
-0
api.py
jumpserver/api.py
+4
-1
run_websocket.py
run_websocket.py
+7
-12
log_online.html
templates/jlog/log_online.html
+3
-15
No files found.
connect.py
View file @
742e56fc
...
...
@@ -211,8 +211,8 @@ class Tty(object):
获取需要登陆的主机的信息和映射用户的账号密码
"""
asset_info
=
get_asset_info
(
self
.
asset
)
role_key
=
get_role_key
(
self
.
user
,
self
.
role
)
role_pass
=
CRYPTOR
.
decrypt
(
self
.
role
.
password
)
role_key
=
os
.
path
.
join
(
self
.
role
.
key_path
,
'id_rsa'
)
self
.
connect_info
=
{
'user'
:
self
.
user
,
'asset'
:
self
.
asset
,
'ip'
:
asset_info
.
get
(
'ip'
),
'port'
:
int
(
asset_info
.
get
(
'port'
)),
'role_name'
:
self
.
role
.
name
,
'role_pass'
:
role_pass
,
'role_key'
:
role_key
}
...
...
@@ -234,7 +234,7 @@ class Tty(object):
ssh
.
load_system_host_keys
()
ssh
.
set_missing_host_key_policy
(
paramiko
.
AutoAddPolicy
())
try
:
role_key
=
get_role_key
(
self
.
user
,
self
.
role
)
role_key
=
connect_info
.
get
(
'role_key'
)
if
role_key
and
os
.
path
.
isfile
(
role_key
):
try
:
ssh
.
connect
(
connect_info
.
get
(
'ip'
),
...
...
@@ -245,6 +245,7 @@ class Tty(object):
self
.
ssh
=
ssh
return
ssh
except
(
paramiko
.
ssh_exception
.
AuthenticationException
,
paramiko
.
ssh_exception
.
SSHException
):
logger
.
warning
(
'Use ssh key
%
s Failed.'
%
role_key
)
pass
ssh
.
connect
(
connect_info
.
get
(
'ip'
),
...
...
jlog/views.py
View file @
742e56fc
...
...
@@ -51,6 +51,7 @@ def log_list(request, offset):
web_monitor_uri
=
'ws://
%
s/monitor'
%
WEB_SOCKET_HOST
web_kill_uri
=
'http://
%
s/kill'
%
WEB_SOCKET_HOST
session_id
=
request
.
session
.
session_key
return
render_to_response
(
'jlog/log_
%
s.html'
%
offset
,
locals
(),
context_instance
=
RequestContext
(
request
))
...
...
jumpserver/api.py
View file @
742e56fc
...
...
@@ -54,7 +54,10 @@ def get_asset_info(asset):
if
default
:
info
[
'port'
]
=
default
.
default_port
info
[
'username'
]
=
default
.
default_user
info
[
'password'
]
=
CRYPTOR
.
decrypt
(
default
.
default_password
)
try
:
info
[
'password'
]
=
CRYPTOR
.
decrypt
(
default
.
default_password
)
except
ServerError
:
pass
info
[
'ssh_key'
]
=
default
.
default_pri_key_path
else
:
info
[
'port'
]
=
asset
.
port
...
...
run_websocket.py
View file @
742e56fc
...
...
@@ -42,7 +42,7 @@ def require_auth(role='user'):
if
request
.
get_cookie
(
'sessionid'
):
session_key
=
request
.
get_cookie
(
'sessionid'
)
else
:
session_key
=
request
.
get_
secure_cookie
(
'sessionid
'
)
session_key
=
request
.
get_
argument
(
'sessionid'
,
'
'
)
logger
.
debug
(
'Websocket: session_key:
%
s'
%
session_key
)
if
session_key
:
...
...
@@ -62,7 +62,10 @@ def require_auth(role='user'):
return
func
(
request
,
*
args
,
**
kwargs
)
else
:
logger
.
debug
(
'Websocket: session expired:
%
s'
%
session_key
)
request
.
close
()
try
:
request
.
close
()
except
AttributeError
:
pass
logger
.
warning
(
'Websocket: Request auth failed.'
)
# asset_id = int(request.get_argument('id', 9999))
# print asset_id
...
...
@@ -99,14 +102,7 @@ class EventHandler(ProcessEvent):
def
__init__
(
self
,
client
=
None
):
self
.
client
=
client
def
process_IN_CREATE
(
self
,
event
):
print
"Create file:
%
s."
%
os
.
path
.
join
(
event
.
path
,
event
.
name
)
def
process_IN_DELETE
(
self
,
event
):
print
"Delete file:
%
s."
%
os
.
path
.
join
(
event
.
path
,
event
.
name
)
def
process_IN_MODIFY
(
self
,
event
):
print
"Modify file:
%
s."
%
os
.
path
.
join
(
event
.
path
,
event
.
name
)
self
.
client
.
write_message
(
f
.
read
())
...
...
@@ -222,12 +218,11 @@ class WebTerminalKillHandler(tornado.web.RequestHandler):
ws_id
=
self
.
get_argument
(
'id'
)
Log
.
objects
.
filter
(
id
=
ws_id
)
.
update
(
is_finished
=
True
)
for
ws
in
WebTerminalHandler
.
clients
:
print
ws
.
id
if
ws
.
id
==
int
(
ws_id
):
print
"killed"
logger
.
debug
(
"Kill log id
%
s"
%
ws_id
)
ws
.
log
.
save
()
ws
.
close
()
print
len
(
WebTerminalHandler
.
clients
)
logger
.
debug
(
'Websocket: web terminal client num:
%
s'
%
len
(
WebTerminalHandler
.
clients
)
)
class
WebTerminalHandler
(
tornado
.
websocket
.
WebSocketHandler
):
...
...
templates/jlog/log_online.html
View file @
742e56fc
...
...
@@ -50,7 +50,7 @@
<div
class=
"col-lg-12"
>
<div
class=
"ibox float-e-margins"
>
<div
id=
"ibox-content"
class=
"ibox-title"
>
<h5>
用户日志详细信息列表
<
input
type=
"button"
id=
"test_connect"
class=
"btn btn-primary"
value=
"测试连接 web terminal"
/>
<
/h5>
<h5>
用户日志详细信息列表
</h5>
<div
class=
"ibox-tools"
>
<a
class=
"collapse-link"
>
<i
class=
"fa fa-chevron-up"
></i>
...
...
@@ -186,29 +186,17 @@
});
});
{
#
function
log_search
(){
#
}
{
#
$
.
ajax
({
#
}
{
#
type
:
"GET"
,
#
}
{
#
url
:
"/jlog/search/?env=online"
,
#
}
{
#
data
:
$
(
"#search_form"
).
serialize
(),
#
}
{
#
success
:
function
(
data
)
{
#
}
{
#
$
(
".tab-content"
).
html
(
data
);
#
}
{
#
}
#
}
{
#
});
#
}
{
#
}
#
}
function
cut
(
num
,
host
){
console
.
log
(
host
);
if
(
host
==
'Web'
){
var
g_url
=
'{{ web_kill_uri }}'
+
'?id='
+
num
;
}
else
{
g_url
=
"/jlog/log_kill/?id="
+
num
;
var
g_url
=
"/jlog/log_kill/?id="
+
num
;
}
$
.
ajax
({
type
:
"GET"
,
url
:
g_url
,
url
:
g_url
+
"&sessionid={{ session_id }}"
,
success
:
window
.
open
(
"/jlog/log_list/online/"
,
"_self"
)
});
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment