@Override public Subject getSubject(Caller caller) { return caller.getSubject(); } };
@Override public Caller getCaller(AccessControlContext acc, Caller currentCaller) { Subject subject = Subject.getSubject(acc); // This is deliberately checking the Subject is the exact same instance. if (currentCaller == null || subject != currentCaller.getSubject()) { if (subject != null) { subject.setReadOnly(); } return Caller.createCaller(subject); } return currentCaller; }