Skip to content

Commit

Permalink
WELD-1759 Make WeldInjectionTargetBuilderImpl run in privileged context
Browse files Browse the repository at this point in the history
  • Loading branch information
jharting committed Oct 1, 2014
1 parent 41cd300 commit 65cc04c
Showing 1 changed file with 19 additions and 1 deletion.
Expand Up @@ -16,6 +16,9 @@
*/
package org.jboss.weld.injection.producer;

import java.security.AccessController;
import java.security.PrivilegedAction;

import javax.enterprise.inject.spi.AnnotatedType;
import javax.enterprise.inject.spi.Bean;

Expand All @@ -25,7 +28,14 @@
import org.jboss.weld.manager.api.WeldInjectionTargetBuilder;
import org.jboss.weld.resources.ClassTransformer;

public class WeldInjectionTargetBuilderImpl<T> implements WeldInjectionTargetBuilder<T> {
/**
* Default {@link WeldInjectionTargetBuilder} implementation. The builder runs in a privileged context.
*
* @author Jozef Hartinger
*
* @param <T>
*/
public class WeldInjectionTargetBuilderImpl<T> implements WeldInjectionTargetBuilder<T>, PrivilegedAction<BasicInjectionTarget<T>> {

private final InjectionTargetService injectionTargetService;

Expand Down Expand Up @@ -76,6 +86,14 @@ public WeldInjectionTargetBuilder<T> setBean(Bean<T> bean) {

@Override
public WeldInjectionTarget<T> build() {
if (System.getSecurityManager() != null) {
return AccessController.doPrivileged(this);
}
return run();
}

@Override
public BasicInjectionTarget<T> run() {
BasicInjectionTarget<T> injectionTarget = buildInternal();
injectionTargetService.addInjectionTargetToBeInitialized(type, injectionTarget);
injectionTargetService.validateProducer(injectionTarget);
Expand Down

0 comments on commit 65cc04c

Please sign in to comment.