Java安全机制实现的不合理性

当谈到java安全机制的原理时,自然想到类SecurityManager。
当判断某个方法是非有权限执行时,都是采用如下方式:在该方法的开始地方check是非有权限。
例如,判定calling Thread 是非可以加载某类库时,
代码如下(取自loadLibrary0(Class fromClass, String libname)方法):


SecurityManager security = System.getSecurityManager();
if (security != null) {
security.checkLink(libname);
}


像大致这样的代码遍布的java源码的各个角落,这样觉得太不好了.
比如上面代码,如果以后需要改变loadLibrary0方法的权限,怎么办呢?
你或许会说,修改SecurityManager中的checkLink不就行了吗? 这个肯定不行的,SecurityManager是个公共类,修改它或许会影响到其他地方。
你或许会想,在SecurityManager中新增一个方法,取名为checkLinkToLib,然后再修改上面提到的loadLibrary0方法。
这样做可以保证不影响其他,但是一个小小的需求却改动了两个地方,好像不是我们所情愿的。
============分割线=====================
我能想到的:对于现在安全机制的解决办法,是面向切面编程,这样灵活性就更大了。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值