Class SecureUberspector
- java.lang.Object
-
- org.apache.velocity.util.introspection.UberspectImpl
-
- org.apache.velocity.util.introspection.SecureUberspector
-
- All Implemented Interfaces:
Uberspect
,RuntimeServicesAware
public class SecureUberspector extends UberspectImpl
Use a custom introspector that prevents classloader related method calls. Use this introspector for situations in which template writers are numerous or untrusted. Specifically, this introspector prevents creation of arbitrary objects or reflection on objects.To use this introspector, set the following property:
introspector.uberspect.class = org.apache.velocity.util.introspection.SecureUberspector
- Since:
- 1.5
- Version:
- $Id$
- Author:
- Will Glass-Husain
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.apache.velocity.util.introspection.UberspectImpl
UberspectImpl.VelGetterImpl, UberspectImpl.VelMethodImpl, UberspectImpl.VelSetterImpl
-
-
Field Summary
-
Fields inherited from class org.apache.velocity.util.introspection.UberspectImpl
conversionHandler, introspector, log, rsvc
-
-
Constructor Summary
Constructors Constructor Description SecureUberspector()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Iterator
getIterator(Object obj, Info i)
Get an iterator from the given object.void
init()
init - generates the Introspector.-
Methods inherited from class org.apache.velocity.util.introspection.UberspectImpl
getConversionHandler, getMethod, getPropertyGet, getPropertySet, setLog, setRuntimeServices
-
-
-
-
Method Detail
-
init
public void init()
init - generates the Introspector. As the setup code makes sure that the log gets set before this is called, we can initialize the Introspector using the log object.- Specified by:
init
in interfaceUberspect
- Overrides:
init
in classUberspectImpl
-
getIterator
public Iterator getIterator(Object obj, Info i)
Get an iterator from the given object. Since the superclass method this secure version checks for execute permission.- Specified by:
getIterator
in interfaceUberspect
- Overrides:
getIterator
in classUberspectImpl
- Parameters:
obj
- object to iterate overi
- line, column, template info- Returns:
- Iterator for object
-
-