mirror of
https://github.com/apache/struts.git
synced 2026-08-06 15:17:00 +00:00
WW-5326 refactor(ognl): parameterize core interfaces with StrutsContext
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -18,10 +18,9 @@
|
||||
*/
|
||||
package org.apache.struts2.ognl;
|
||||
|
||||
import ognl.OgnlContext;
|
||||
import org.apache.struts2.conversion.NullHandler;
|
||||
|
||||
public class OgnlNullHandlerWrapper implements ognl.NullHandler {
|
||||
public class OgnlNullHandlerWrapper implements ognl.NullHandler<StrutsContext> {
|
||||
|
||||
private final NullHandler wrapped;
|
||||
|
||||
@@ -30,13 +29,13 @@ public class OgnlNullHandlerWrapper implements ognl.NullHandler {
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object nullMethodResult(OgnlContext context, Object target,
|
||||
public Object nullMethodResult(StrutsContext context, Object target,
|
||||
String methodName, Object[] args) {
|
||||
return wrapped.nullMethodResult(context, target, methodName, args);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object nullPropertyValue(OgnlContext context, Object target, Object property) {
|
||||
public Object nullPropertyValue(StrutsContext context, Object target, Object property) {
|
||||
return wrapped.nullPropertyValue(context, target, property);
|
||||
}
|
||||
|
||||
|
||||
@@ -18,7 +18,6 @@
|
||||
*/
|
||||
package org.apache.struts2.ognl;
|
||||
|
||||
import ognl.OgnlContext;
|
||||
import org.apache.struts2.conversion.TypeConverter;
|
||||
|
||||
import java.lang.reflect.Member;
|
||||
@@ -26,7 +25,7 @@ import java.lang.reflect.Member;
|
||||
/**
|
||||
* Wraps an XWork type conversion class for as an OGNL TypeConverter
|
||||
*/
|
||||
public class OgnlTypeConverterWrapper implements ognl.TypeConverter {
|
||||
public class OgnlTypeConverterWrapper implements ognl.TypeConverter<StrutsContext> {
|
||||
|
||||
private final TypeConverter typeConverter;
|
||||
|
||||
@@ -38,7 +37,7 @@ public class OgnlTypeConverterWrapper implements ognl.TypeConverter {
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object convertValue(OgnlContext context, Object target, Member member, String propertyName, Object value, Class<?> toType) {
|
||||
public Object convertValue(StrutsContext context, Object target, Member member, String propertyName, Object value, Class<?> toType) {
|
||||
return typeConverter.convertValue(context, target, member, propertyName, value, toType);
|
||||
}
|
||||
|
||||
|
||||
@@ -19,7 +19,6 @@
|
||||
package org.apache.struts2.ognl;
|
||||
|
||||
import ognl.MemberAccess;
|
||||
import ognl.OgnlContext;
|
||||
import org.apache.commons.lang3.BooleanUtils;
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
@@ -54,7 +53,7 @@ import static org.apache.struts2.util.DebugUtils.logWarningForFirstOccurrence;
|
||||
* Allows access decisions to be made on the basis of whether a member is static or not.
|
||||
* Also blocks or allows access to properties.
|
||||
*/
|
||||
public class SecurityMemberAccess implements MemberAccess {
|
||||
public class SecurityMemberAccess implements MemberAccess<StrutsContext> {
|
||||
|
||||
private static final Logger LOG = LogManager.getLogger(SecurityMemberAccess.class);
|
||||
|
||||
@@ -115,7 +114,7 @@ public class SecurityMemberAccess implements MemberAccess {
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object setup(OgnlContext context, Object target, Member member, String propertyName) {
|
||||
public Object setup(StrutsContext context, Object target, Member member, String propertyName) {
|
||||
Object result = null;
|
||||
|
||||
if (isAccessible(context, target, member, propertyName)) {
|
||||
@@ -130,7 +129,7 @@ public class SecurityMemberAccess implements MemberAccess {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void restore(OgnlContext context, Object target, Member member, String propertyName, Object state) {
|
||||
public void restore(StrutsContext context, Object target, Member member, String propertyName, Object state) {
|
||||
if (state == null) {
|
||||
return;
|
||||
}
|
||||
@@ -145,7 +144,7 @@ public class SecurityMemberAccess implements MemberAccess {
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isAccessible(OgnlContext context, Object target, Member member, String propertyName) {
|
||||
public boolean isAccessible(StrutsContext context, Object target, Member member, String propertyName) {
|
||||
LOG.debug("Checking access for [target: {}, member: {}, property: {}]", target, member, propertyName);
|
||||
|
||||
if (member == null) {
|
||||
|
||||
@@ -18,7 +18,6 @@
|
||||
*/
|
||||
package org.apache.struts2.ognl;
|
||||
|
||||
import ognl.OgnlContext;
|
||||
import org.apache.struts2.conversion.TypeConverter;
|
||||
|
||||
import java.lang.reflect.Member;
|
||||
@@ -29,19 +28,19 @@ import java.util.Map;
|
||||
*/
|
||||
public class XWorkTypeConverterWrapper implements TypeConverter {
|
||||
|
||||
private final ognl.TypeConverter typeConverter;
|
||||
private final ognl.TypeConverter<StrutsContext> typeConverter;
|
||||
|
||||
public XWorkTypeConverterWrapper(ognl.TypeConverter conv) {
|
||||
public XWorkTypeConverterWrapper(ognl.TypeConverter<StrutsContext> conv) {
|
||||
this.typeConverter = conv;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object convertValue(Map context, Object target, Member member, String propertyName, Object value, Class toType) {
|
||||
// Cast context to OgnlContext for OGNL 3.4.8+ compatibility
|
||||
OgnlContext ognlContext = (context instanceof OgnlContext oc) ? oc : null;
|
||||
if (ognlContext == null) {
|
||||
throw new IllegalArgumentException("Context must be an OgnlContext for OGNL 3.4.8+");
|
||||
// Cast context to StrutsContext for OGNL 3.5.x compatibility
|
||||
StrutsContext strutsContext = (context instanceof StrutsContext sc) ? sc : null;
|
||||
if (strutsContext == null) {
|
||||
throw new IllegalArgumentException("Context must be a StrutsContext for OGNL 3.5.x+");
|
||||
}
|
||||
return typeConverter.convertValue(ognlContext, target, member, propertyName, value, toType);
|
||||
return typeConverter.convertValue(strutsContext, target, member, propertyName, value, toType);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,9 +21,10 @@ package org.apache.struts2.ognl.accessor;
|
||||
import ognl.ClassResolver;
|
||||
import ognl.MethodAccessor;
|
||||
import ognl.PropertyAccessor;
|
||||
import org.apache.struts2.ognl.StrutsContext;
|
||||
|
||||
/**
|
||||
* @since 6.4.0
|
||||
*/
|
||||
public interface RootAccessor extends PropertyAccessor, MethodAccessor, ClassResolver {
|
||||
public interface RootAccessor extends PropertyAccessor<StrutsContext>, MethodAccessor<StrutsContext>, ClassResolver<StrutsContext> {
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user