public void put(final Subject subject, final RuntimeResource resource, final AuthorizationResult authzResult) {
if (!internal.containsKey(resource.getSignatureId())) {
internal.put(resource.getSignatureId(), new HashMap<String, AuthorizationResult>());
}
final Map<String, AuthorizationResult> result = internal.get(resource.getSignatureId());
AuthorizationResult knowValue = result.get(subject.getName());
if (result.containsKey(subject.getName()) && knowValue.equals(authzResult)) {
return;
}
result.put(subject.getName(), authzResult);
}