源码注释
Accesses the currently accessible {
@code Subject} for the calling code depending on runtime environment.
根据运行时环境,为调用代码访问当前可访问的Subject。
由上可见,SecurityUtils主要是为了获取Subject的,然后通过Subject进行一系列的验证动作。
API
- private static volatile SecurityManager securityManager;
提供了一个静态的私有变量SecurityManager,相当于一个程序的SecurityManager模板,在当前线程内存储的SecurityManager为空时,就返回此变量。
- public static Subject getSubject(){…}
整个SecurityUtils的核心方法,从ThreadContext(基于ThreadLocal的存储Subject和SecurityManager)获取Subject。当前线程没有Subject的话就新建一个Subject并放进ThreadContext中。
public static Subject getSubject() {
Subject subject = ThreadContext.getSubject();
if (subject == null) {
subject = (