ameba
ameba copied to clipboard
插件安全管理
框架周边应分为
- 类库API,无权限,只是API接口调用
- 模块,需要配置应用权限,以告诉ameba所需权限,如未配置则在调用接口时抛出异常
- UI库
功能
- 框架应有查找安装模块的能力
- 检测模块所需要权限
- 控制接口调用权限
- 更新模块功能
- 用户可以禁用模块某种权限调用(在安装模块时 , 也可在权限管理中)
- 模块可以获取自身是否有某种权限
- 需要由自己的classloader 通过java.system.class.loader配置是一个方法,但是不好。通过application.conf 配置默认classloader?classloader对于安全很重要,需要应用配置,插件不能随意更改。default.conf配置?然后在代码默认反射获取安全模块的classloader,没有则使用默认?
//TODO头脑风暴 利用classloader/securityManager控制权限? js利用aop? 每一个插件是否应该用单独的classloader?
参考 http://www.ibm.com/developerworks/cn/java/j-lo-javasecurity/ http://www.ibm.com/developerworks/cn/opensource/os-cn-android-sec/