diff --git a/core/src/main/java/com/opensymphony/xwork2/ognl/SecurityMemberAccess.java b/core/src/main/java/com/opensymphony/xwork2/ognl/SecurityMemberAccess.java index f09cf3042..e9225a0d6 100644 --- a/core/src/main/java/com/opensymphony/xwork2/ognl/SecurityMemberAccess.java +++ b/core/src/main/java/com/opensymphony/xwork2/ognl/SecurityMemberAccess.java @@ -58,17 +58,18 @@ public class SecurityMemberAccess extends DefaultMemberAccess { @Override public boolean isAccessible(Map context, Object target, Member member, String propertyName) { LOG.debug("Checking access for [target: {}, member: {}, property: {}]", target, member, propertyName); - + + Class targetClass = target.getClass(); + Class memberClass = member.getDeclaringClass(); + if (checkEnumAccess(target, member)) { - LOG.trace("Allowing access to enum: {}", target); + LOG.trace("Allowing access to enum: target class [{}] of target [{}], member [{}]", targetClass, target, member); return true; } - Class targetClass = target.getClass(); - Class memberClass = member.getDeclaringClass(); - if (Modifier.isStatic(member.getModifiers()) && allowStaticMethodAccess) { - LOG.debug("Support for accessing static methods [target: {}, member: {}, property: {}] is deprecated!", target, member, propertyName); + LOG.debug("Support for accessing static methods [target: {}, targetClass: {}, member: {}, property: {}] is deprecated!", + target, targetClass, member, propertyName); if (!isClassExcluded(member.getDeclaringClass())) { targetClass = member.getDeclaringClass(); } @@ -81,7 +82,7 @@ public class SecurityMemberAccess extends DefaultMemberAccess { } if (isClassExcluded(targetClass)) { - LOG.warn("Target class [{}] is excluded!", target); + LOG.warn("Target class [{}] of target [{}] is excluded!", targetClass, target); return false; } @@ -91,7 +92,7 @@ public class SecurityMemberAccess extends DefaultMemberAccess { } if (disallowProxyMemberAccess && ProxyUtil.isProxyMember(member, target)) { - LOG.warn("Access to proxy [{}] is blocked!", member); + LOG.warn("Access to proxy is blocked! Target class [{}] of target [{}], member [{}]", targetClass, target, member); return false; }