Connection.java: Use GetPropertyAction for privileged getProperty calls.
2004-07-23 Bryce McKinlay <mckinlay@redhat.com> * gnu/java/net/protocol/http/Connection.java: Use GetPropertyAction for privileged getProperty calls. * java/io/ObjectOutputStream.java (getField): No longer static. Use SetAccessibleAction instead of anonymous class for doPrivileged call. (getMethod): Likewise. (setAccessible): New field. PrivilegedAction object to use when calling setAccessible. * java/io/ObjectStreamClass.java (calculateOffsets): Use SetAccessibleAction instead of anonymous class for diPrivileged call. (setFields): Likewise. (getClassUID): Likewise. (findMethod): Likewise. * gnu/java/security/action/GetPropertyAction.java: New class. * gnu/java/security/action/SetAccessibleAction.java: New class. From-SVN: r85097
This commit is contained in:
parent
ae066484df
commit
ec5c28ece1
6 changed files with 217 additions and 83 deletions
|
@ -57,6 +57,7 @@ import java.util.Hashtable;
|
|||
import java.util.Vector;
|
||||
import gnu.java.io.NullOutputStream;
|
||||
import gnu.java.lang.reflect.TypeSignature;
|
||||
import gnu.java.security.action.SetAccessibleAction;
|
||||
import gnu.java.security.provider.Gnu;
|
||||
|
||||
|
||||
|
@ -470,14 +471,8 @@ outer:
|
|||
}
|
||||
}
|
||||
final Method m = methods[i];
|
||||
AccessController.doPrivileged(new PrivilegedAction()
|
||||
{
|
||||
public Object run()
|
||||
{
|
||||
m.setAccessible(true);
|
||||
return null;
|
||||
}
|
||||
});
|
||||
SetAccessibleAction setAccessible = new SetAccessibleAction(m);
|
||||
AccessController.doPrivileged(setAccessible);
|
||||
return m;
|
||||
}
|
||||
}
|
||||
|
@ -543,6 +538,8 @@ outer:
|
|||
// clazz.
|
||||
private void setFields(Class cl)
|
||||
{
|
||||
SetAccessibleAction setAccessible = new SetAccessibleAction();
|
||||
|
||||
if (!isSerializable() || isExternalizable())
|
||||
{
|
||||
fields = NO_FIELDS;
|
||||
|
@ -551,17 +548,11 @@ outer:
|
|||
|
||||
try
|
||||
{
|
||||
final Field serialPersistentFields =
|
||||
final Field f =
|
||||
cl.getDeclaredField("serialPersistentFields");
|
||||
AccessController.doPrivileged(new PrivilegedAction()
|
||||
{
|
||||
public Object run()
|
||||
{
|
||||
serialPersistentFields.setAccessible(true);
|
||||
return null;
|
||||
}
|
||||
});
|
||||
int modifiers = serialPersistentFields.getModifiers();
|
||||
setAccessible.setMember(f);
|
||||
AccessController.doPrivileged(setAccessible);
|
||||
int modifiers = f.getModifiers();
|
||||
|
||||
if (Modifier.isStatic(modifiers)
|
||||
&& Modifier.isFinal(modifiers)
|
||||
|
@ -617,14 +608,8 @@ outer:
|
|||
if (all_fields[from] != null)
|
||||
{
|
||||
final Field f = all_fields[from];
|
||||
AccessController.doPrivileged(new PrivilegedAction()
|
||||
{
|
||||
public Object run()
|
||||
{
|
||||
f.setAccessible(true);
|
||||
return null;
|
||||
}
|
||||
});
|
||||
setAccessible.setMember(f);
|
||||
AccessController.doPrivileged(setAccessible);
|
||||
fields[to] = new ObjectStreamField(all_fields[from]);
|
||||
to++;
|
||||
}
|
||||
|
@ -651,14 +636,8 @@ outer:
|
|||
// may not be public AND we only want the serialVersionUID of this
|
||||
// class, not a superclass or interface.
|
||||
final Field suid = cl.getDeclaredField("serialVersionUID");
|
||||
AccessController.doPrivileged(new PrivilegedAction()
|
||||
{
|
||||
public Object run()
|
||||
{
|
||||
suid.setAccessible(true);
|
||||
return null;
|
||||
}
|
||||
});
|
||||
SetAccessibleAction setAccessible = new SetAccessibleAction(suid);
|
||||
AccessController.doPrivileged(setAccessible);
|
||||
int modifiers = suid.getModifiers();
|
||||
|
||||
if (Modifier.isStatic(modifiers)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue