Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
JasonLi30
arthas
提交
f6caa4b3
A
arthas
项目概览
JasonLi30
/
arthas
与 Fork 源项目一致
从无法访问的项目Fork
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
A
arthas
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
f6caa4b3
编写于
8月 05, 2019
作者:
横云断岭
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix security plugin
上级
24a344b0
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
39 addition
and
32 deletion
+39
-32
security-plugin/src/main/java/com/alibaba/arthas/security/plugin/ArthasSecurityManager.java
...alibaba/arthas/security/plugin/ArthasSecurityManager.java
+27
-26
security-plugin/src/main/java/com/alibaba/arthas/security/plugin/SecurityPluginActivator.java
...ibaba/arthas/security/plugin/SecurityPluginActivator.java
+8
-6
security-plugin/src/main/resources/arthas-plugin.properties
security-plugin/src/main/resources/arthas-plugin.properties
+4
-0
未找到文件。
security-plugin/src/main/java/com/alibaba/arthas/security/plugin/ArthasSecurityManager.java
浏览文件 @
f6caa4b3
...
...
@@ -4,10 +4,11 @@ import java.io.FileDescriptor;
import
java.security.Permission
;
import
com.alibaba.arthas.deps.org.slf4j.Logger
;
import
com.alibaba.arthas.deps.org.slf4j.LoggerFactory
;
public
class
ArthasSecurityManager
extends
SecurityManager
{
private
Logger
logger
;
private
Logger
logger
=
LoggerFactory
.
getLogger
(
ArthasSecurityManager
.
class
)
;
private
SecurityManager
delegate
;
public
ArthasSecurityManager
(
SecurityManager
securityManager
)
{
...
...
@@ -16,227 +17,227 @@ public class ArthasSecurityManager extends SecurityManager {
@Override
public
void
checkPermission
(
Permission
perm
)
{
logger
.
info
(
"checkPermission, perm: {}"
,
perm
);
if
(
this
.
delegate
==
null
)
{
return
;
}
logger
.
info
(
"checkPermission, perm: {}"
,
perm
);
this
.
delegate
.
checkPermission
(
perm
);
}
@Override
public
void
checkPermission
(
Permission
perm
,
Object
context
)
{
logger
.
info
(
"checkPermission, perm: {}"
,
perm
);
if
(
this
.
delegate
==
null
)
{
return
;
}
logger
.
info
(
"checkPermission, perm: {}"
,
perm
);
this
.
delegate
.
checkPermission
(
perm
,
context
);
}
@Override
public
void
checkCreateClassLoader
()
{
logger
.
info
(
"checkCreateClassLoader"
);
if
(
this
.
delegate
==
null
)
{
return
;
}
logger
.
info
(
"checkCreateClassLoader"
);
this
.
delegate
.
checkCreateClassLoader
();
}
@Override
public
void
checkAccess
(
Thread
t
)
{
logger
.
info
(
"checkAccess, thread: {}"
,
t
);
if
(
this
.
delegate
==
null
)
{
return
;
}
logger
.
info
(
"checkAccess, thread: {}"
,
t
);
this
.
delegate
.
checkAccess
(
t
);
}
@Override
public
void
checkAccess
(
ThreadGroup
g
)
{
logger
.
info
(
"checkAccess, ThreadGroup: {}"
,
g
);
if
(
this
.
delegate
==
null
)
{
return
;
}
logger
.
info
(
"checkAccess, ThreadGroup: {}"
,
g
);
this
.
delegate
.
checkAccess
(
g
);
}
@Override
public
void
checkExit
(
int
status
)
{
logger
.
info
(
"checkExit, status: {}"
,
status
);
if
(
this
.
delegate
==
null
)
{
return
;
}
logger
.
info
(
"checkExit, status: {}"
,
status
);
this
.
delegate
.
checkExit
(
status
);
}
@Override
public
void
checkExec
(
String
cmd
)
{
logger
.
info
(
"checkExec, cmd: {}"
,
cmd
);
if
(
this
.
delegate
==
null
)
{
return
;
}
logger
.
info
(
"checkExec, cmd: {}"
,
cmd
);
this
.
delegate
.
checkExec
(
cmd
);
}
@Override
public
void
checkLink
(
String
lib
)
{
logger
.
info
(
"checkLink, checkLink: {}"
,
lib
);
if
(
this
.
delegate
==
null
)
{
return
;
}
logger
.
info
(
"checkLink, checkLink: {}"
,
lib
);
this
.
delegate
.
checkLink
(
lib
);
}
@Override
public
void
checkRead
(
FileDescriptor
fd
)
{
logger
.
info
(
"checkRead, fd: {}"
,
fd
);
if
(
this
.
delegate
==
null
)
{
return
;
}
logger
.
info
(
"checkRead, fd: {}"
,
fd
);
this
.
delegate
.
checkRead
(
fd
);
}
@Override
public
void
checkRead
(
String
file
)
{
logger
.
info
(
"checkRead, file: {}"
,
file
);
if
(
this
.
delegate
==
null
)
{
return
;
}
logger
.
info
(
"checkRead, file: {}"
,
file
);
this
.
delegate
.
checkRead
(
file
);
}
@Override
public
void
checkRead
(
String
file
,
Object
context
)
{
logger
.
info
(
"checkRead, file: {}"
,
file
);
if
(
this
.
delegate
==
null
)
{
return
;
}
logger
.
info
(
"checkRead, file: {}"
,
file
);
this
.
delegate
.
checkRead
(
file
,
context
);
}
@Override
public
void
checkWrite
(
FileDescriptor
fd
)
{
logger
.
info
(
"checkWrite, fd: {}"
,
fd
);
if
(
this
.
delegate
==
null
)
{
return
;
}
logger
.
info
(
"checkWrite, fd: {}"
,
fd
);
this
.
delegate
.
checkWrite
(
fd
);
}
@Override
public
void
checkWrite
(
String
file
)
{
logger
.
info
(
"checkWrite, file: {}"
,
file
);
if
(
this
.
delegate
==
null
)
{
return
;
}
logger
.
info
(
"checkWrite, file: {}"
,
file
);
this
.
delegate
.
checkWrite
(
file
);
}
@Override
public
void
checkDelete
(
String
file
)
{
logger
.
info
(
"checkDelete, file: {}"
,
file
);
if
(
this
.
delegate
==
null
)
{
return
;
}
logger
.
info
(
"checkDelete, file: {}"
,
file
);
this
.
delegate
.
checkDelete
(
file
);
}
@Override
public
void
checkConnect
(
String
host
,
int
port
)
{
logger
.
info
(
"checkConnect, host: {}, port: {}"
,
host
,
port
);
if
(
this
.
delegate
==
null
)
{
return
;
}
logger
.
info
(
"checkConnect, host: {}, port: {}"
,
host
,
port
);
this
.
delegate
.
checkConnect
(
host
,
port
);
}
@Override
public
void
checkConnect
(
String
host
,
int
port
,
Object
context
)
{
logger
.
info
(
"checkConnect, host: {}, port: {}"
,
host
,
port
);
if
(
this
.
delegate
==
null
)
{
return
;
}
logger
.
info
(
"checkConnect, host: {}, port: {}"
,
host
,
port
);
this
.
delegate
.
checkConnect
(
host
,
port
,
context
);
}
@Override
public
void
checkListen
(
int
port
)
{
logger
.
info
(
"checkListen, port: {}"
,
port
);
if
(
this
.
delegate
==
null
)
{
return
;
}
logger
.
info
(
"checkListen, port: {}"
,
port
);
this
.
delegate
.
checkListen
(
port
);
}
@Override
public
void
checkAccept
(
String
host
,
int
port
)
{
logger
.
info
(
"checkAccept, host: {}, port: {}"
,
host
,
port
);
if
(
this
.
delegate
==
null
)
{
return
;
}
logger
.
info
(
"checkAccept, host: {}, port: {}"
,
host
,
port
);
this
.
delegate
.
checkAccept
(
host
,
port
);
}
@Override
public
void
checkPropertiesAccess
()
{
logger
.
info
(
"checkPropertiesAccess"
);
if
(
this
.
delegate
==
null
)
{
return
;
}
logger
.
info
(
"checkPropertiesAccess"
);
this
.
delegate
.
checkPropertiesAccess
();
}
@Override
public
void
checkPropertyAccess
(
String
key
)
{
logger
.
info
(
"checkPropertyAccess, key: {}"
,
key
);
if
(
this
.
delegate
==
null
)
{
return
;
}
logger
.
info
(
"checkPropertyAccess, key: {}"
,
key
);
this
.
delegate
.
checkPropertyAccess
(
key
);
}
@Override
public
void
checkPrintJobAccess
()
{
logger
.
info
(
"checkPrintJobAccess"
);
if
(
this
.
delegate
==
null
)
{
return
;
}
logger
.
info
(
"checkPrintJobAccess"
);
this
.
delegate
.
checkPrintJobAccess
();
}
@Override
public
void
checkPackageAccess
(
String
pkg
)
{
logger
.
info
(
"checkPackageAccess, pkg: {}"
,
pkg
);
if
(
this
.
delegate
==
null
)
{
return
;
}
logger
.
info
(
"checkPackageAccess, pkg: {}"
,
pkg
);
this
.
delegate
.
checkPackageAccess
(
pkg
);
}
@Override
public
void
checkPackageDefinition
(
String
pkg
)
{
logger
.
info
(
"checkPackageDefinition, pkg: {}"
,
pkg
);
if
(
this
.
delegate
==
null
)
{
return
;
}
logger
.
info
(
"checkPackageDefinition, pkg: {}"
,
pkg
);
this
.
delegate
.
checkPackageDefinition
(
pkg
);
}
@Override
public
void
checkSetFactory
()
{
logger
.
info
(
"checkSetFactory"
);
if
(
this
.
delegate
==
null
)
{
return
;
}
logger
.
info
(
"checkSetFactory"
);
this
.
delegate
.
checkSetFactory
();
}
@Override
public
void
checkSecurityAccess
(
String
target
)
{
logger
.
info
(
"checkSecurityAccess, target: {}"
,
target
);
if
(
this
.
delegate
==
null
)
{
return
;
}
logger
.
info
(
"checkSecurityAccess, target: {}"
,
target
);
this
.
delegate
.
checkSecurityAccess
(
target
);
}
...
...
security-plugin/src/main/java/com/alibaba/arthas/security/plugin/SecurityPluginActivator.java
浏览文件 @
f6caa4b3
...
...
@@ -18,17 +18,19 @@ public class SecurityPluginActivator implements PluginActivator{
@Override
public
void
init
(
PluginContext
context
)
throws
Exception
{
try
{
SecurityManager
securityManager
=
System
.
getSecurityManager
();
securityManager
=
new
ArthasSecurityManager
(
securityManager
);
System
.
setSecurityManager
(
securityManager
);
}
catch
(
Throwable
e
)
{
e
.
printStackTrace
();
}
}
@Override
public
void
start
(
PluginContext
context
)
throws
Exception
{
SecurityManager
securityManager
=
System
.
getSecurityManager
();
if
(
securityManager
!=
null
)
{
securityManager
=
new
ArthasSecurityManager
(
securityManager
);
System
.
setSecurityManager
(
securityManager
);
}
}
@Override
...
...
security-plugin/src/main/resources/arthas-plugin.properties
0 → 100644
浏览文件 @
f6caa4b3
name
=
security-plugin
version
=
1.0.0
pluginActivator
=
com.alibaba.arthas.security.plugin.SecurityPluginActivator
order
=
0
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录