Ok thanks - I've fixed this (and for any other examples of setAccessible()
not using ReflectionUtil).

Colm.

On Fri, Oct 19, 2012 at 3:00 PM, Daniel Kulp <dk...@apache.org> wrote:

>
> Colm,
>
> We have a utility for this:
>
> ReflectionUtil.setAccessible(….)
>
> Ideally, the calls to cls.getDeclaredField  would be replaced with calls
> to ReflectionUtil.getDeclaredField(…) as well for the same reason.
>
> Dan
>
>
>
> On Oct 19, 2012, at 9:14 AM, cohei...@apache.org wrote:
>
> > Author: coheigea
> > Date: Fri Oct 19 13:14:25 2012
> > New Revision: 1400082
> >
> > URL: http://svn.apache.org/viewvc?rev=1400082&view=rev
> > Log:
> > Minor cleanup
> >
> > Modified:
> >
>  
> cxf/trunk/api/src/main/java/org/apache/cxf/configuration/spring/SpringBeanQNameMap.java
> >
>  
> cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/CXFAuthenticator.java
> >
>  
> cxf/trunk/testutils/src/main/java/org/apache/cxf/testutil/common/AbstractClientServerTestBase.java
> >
> > Modified:
> cxf/trunk/api/src/main/java/org/apache/cxf/configuration/spring/SpringBeanQNameMap.java
> > URL:
> http://svn.apache.org/viewvc/cxf/trunk/api/src/main/java/org/apache/cxf/configuration/spring/SpringBeanQNameMap.java?rev=1400082&r1=1400081&r2=1400082&view=diff
> >
> ==============================================================================
> > ---
> cxf/trunk/api/src/main/java/org/apache/cxf/configuration/spring/SpringBeanQNameMap.java
> (original)
> > +++
> cxf/trunk/api/src/main/java/org/apache/cxf/configuration/spring/SpringBeanQNameMap.java
> Fri Oct 19 13:14:25 2012
> > @@ -19,6 +19,8 @@
> > package org.apache.cxf.configuration.spring;
> >
> > import java.lang.reflect.Field;
> > +import java.security.AccessController;
> > +import java.security.PrivilegedAction;
> > import java.util.ArrayList;
> > import java.util.Collection;
> >
> > @@ -83,8 +85,14 @@ public class SpringBeanQNameMap<V>
> >                 if (ids == null && staticFieldName != null) {
> >                     Class<?> cls = context.getType(beanNames[i]);
> >                     try {
> > -                        Field f = cls.getDeclaredField(staticFieldName);
> > -                        f.setAccessible(true);
> > +                        final Field f =
> cls.getDeclaredField(staticFieldName);
> > +                        AccessController.doPrivileged(new
> PrivilegedAction<Void>() {
> > +                            public Void run() {
> > +                                f.setAccessible(true);
> > +                                return null;
> > +                            }
> > +                        });
> > +
> >                         Collection<QName> sids =
> CastUtils.cast((Collection<?>)f.get(null));
> >                         if (sids != null) {
> >                             ids = new ArrayList<QName>(sids);
> >
> > Modified:
> cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/CXFAuthenticator.java
> > URL:
> http://svn.apache.org/viewvc/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/CXFAuthenticator.java?rev=1400082&r1=1400081&r2=1400082&view=diff
> >
> ==============================================================================
> > ---
> cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/CXFAuthenticator.java
> (original)
> > +++
> cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/CXFAuthenticator.java
> Fri Oct 19 13:14:25 2012
> > @@ -24,6 +24,8 @@ import java.lang.reflect.Method;
> > import java.lang.reflect.Modifier;
> > import java.net.Authenticator;
> > import java.net.PasswordAuthentication;
> > +import java.security.AccessController;
> > +import java.security.PrivilegedAction;
> >
> > import org.apache.cxf.message.Exchange;
> > import org.apache.cxf.message.Message;
> > @@ -40,9 +42,15 @@ public class CXFAuthenticator extends Au
> >
> >     public CXFAuthenticator() {
> >         try {
> > -            for (Field f : Authenticator.class.getDeclaredFields()) {
> > +            for (final Field f :
> Authenticator.class.getDeclaredFields()) {
> >                 if (f.getType().equals(Authenticator.class)) {
> > -                    f.setAccessible(true);
> > +                    AccessController.doPrivileged(new
> PrivilegedAction<Void>() {
> > +                        public Void run() {
> > +                            f.setAccessible(true);
> > +                            return null;
> > +                        }
> > +                    });
> > +
> >                     wrapped = (Authenticator)f.get(null);
> >                 }
> >             }
> > @@ -66,14 +74,24 @@ public class CXFAuthenticator extends Au
> >         PasswordAuthentication auth = null;
> >         if (wrapped != null) {
> >             try {
> > -                for (Field f : Authenticator.class.getDeclaredFields())
> {
> > +                for (final Field f :
> Authenticator.class.getDeclaredFields()) {
> >                     if (!Modifier.isStatic(f.getModifiers())) {
> > -                        f.setAccessible(true);
> > +                        AccessController.doPrivileged(new
> PrivilegedAction<Void>() {
> > +                            public Void run() {
> > +                                f.setAccessible(true);
> > +                                return null;
> > +                            }
> > +                        });
> >                         f.set(wrapped, f.get(this));
> >                     }
> >                 }
> > -                Method m =
> Authenticator.class.getDeclaredMethod("getPasswordAuthentication");
> > -                m.setAccessible(true);
> > +                final Method m =
> Authenticator.class.getDeclaredMethod("getPasswordAuthentication");
> > +                AccessController.doPrivileged(new
> PrivilegedAction<Void>() {
> > +                    public Void run() {
> > +                        m.setAccessible(true);
> > +                        return null;
> > +                    }
> > +                });
> >                 auth = (PasswordAuthentication)m.invoke(wrapped);
> >             } catch (Throwable t) {
> >                 //ignore
> >
> > Modified:
> cxf/trunk/testutils/src/main/java/org/apache/cxf/testutil/common/AbstractClientServerTestBase.java
> > URL:
> http://svn.apache.org/viewvc/cxf/trunk/testutils/src/main/java/org/apache/cxf/testutil/common/AbstractClientServerTestBase.java?rev=1400082&r1=1400081&r2=1400082&view=diff
> >
> ==============================================================================
> > ---
> cxf/trunk/testutils/src/main/java/org/apache/cxf/testutil/common/AbstractClientServerTestBase.java
> (original)
> > +++
> cxf/trunk/testutils/src/main/java/org/apache/cxf/testutil/common/AbstractClientServerTestBase.java
> Fri Oct 19 13:14:25 2012
> > @@ -25,6 +25,8 @@ import java.lang.reflect.Method;
> > import java.lang.reflect.Proxy;
> > import java.net.MalformedURLException;
> > import java.net.URL;
> > +import java.security.AccessController;
> > +import java.security.PrivilegedAction;
> > import java.util.ArrayList;
> > import java.util.List;
> > import java.util.Map;
> > @@ -147,8 +149,14 @@ public abstract class AbstractClientServ
> >         }
> >         if (c == null) {
> >             try {
> > -                Method m = o.getClass().getDeclaredMethod("getClient");
> > -                m.setAccessible(true);
> > +                final Method m =
> o.getClass().getDeclaredMethod("getClient");
> > +                AccessController.doPrivileged(new
> PrivilegedAction<Void>() {
> > +                    public Void run() {
> > +                        m.setAccessible(true);
> > +                        return null;
> > +                    }
> > +                });
> > +
> >                 c = (Client)m.invoke(o);
> >             } catch (Throwable t) {
> >                 //ignore
> >
> >
>
> --
> Daniel Kulp
> dk...@apache.org - http://dankulp.com/blog
> Talend Community Coder - http://coders.talend.com
>
>


-- 
Colm O hEigeartaigh

Talend Community Coder
http://coders.talend.com

Reply via email to