Jas*_*son 5 java security unit-testing mocking
我对Java安全性还很陌生,并且很难弄清楚如何用Google搜索正确的答案。
我有一行读取的代码AccessController.getContext()。
我想运行一个测试该结果的测试。不幸的是,我不知道自己在做什么。
如何设置AccessControlContext返回者AccessController.getContext()?
更新资料
只是为了澄清,我知道如何模拟接口。AccessController是Java安全功能。我在寻找如何设置自己的上下文时遇到麻烦,因此当方法调用时,AccessController.getContext()它会返回我选择的AccessControlContext。
好吧,我已经弄清楚了。基本上我想做的是:
Subject subject = Subject.getSubject(AccessController.getContext());
Run Code Online (Sandbox Code Playgroud)
为了创建AccessControlContext包含 a 的Subject,您必须调用尝试获取主题的方法,如下所示:
Subject subject = new Subject(); //Set Principles here
Subject.doAs(subject, new PrivilegedAction<Void>()
{
public Void run()
{
Foo.methodThatCaresAboutSubject();
}
});
Run Code Online (Sandbox Code Playgroud)