mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-28 07:14:30 +02:00
8297301: Cleanup unused methods in JavaUtilJarAccess
Reviewed-by: weijun
This commit is contained in:
parent
392ac7055d
commit
f0e99c6346
4 changed files with 16 additions and 649 deletions
|
@ -37,15 +37,10 @@ import java.io.File;
|
|||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.lang.ref.SoftReference;
|
||||
import java.net.URL;
|
||||
import java.security.CodeSigner;
|
||||
import java.security.CodeSource;
|
||||
import java.security.cert.Certificate;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.Enumeration;
|
||||
import java.util.List;
|
||||
import java.util.NoSuchElementException;
|
||||
import java.util.Objects;
|
||||
import java.util.stream.Stream;
|
||||
import java.util.zip.ZipEntry;
|
||||
|
@ -658,7 +653,7 @@ public class JarFile extends ZipFile {
|
|||
throw new RuntimeException(e);
|
||||
}
|
||||
if (certs == null && jv != null) {
|
||||
certs = jv.getCerts(JarFile.this, realEntry());
|
||||
certs = jv.getCerts(realEntry());
|
||||
}
|
||||
return certs == null ? null : certs.clone();
|
||||
}
|
||||
|
@ -671,7 +666,7 @@ public class JarFile extends ZipFile {
|
|||
throw new RuntimeException(e);
|
||||
}
|
||||
if (signers == null && jv != null) {
|
||||
signers = jv.getCodeSigners(JarFile.this, realEntry());
|
||||
signers = jv.getCodeSigners(realEntry());
|
||||
}
|
||||
return signers == null ? null : signers.clone();
|
||||
}
|
||||
|
@ -1073,195 +1068,4 @@ public class JarFile extends ZipFile {
|
|||
static boolean isInitializing() {
|
||||
return ThreadTrackHolder.TRACKER.contains(Thread.currentThread());
|
||||
}
|
||||
|
||||
/*
|
||||
* Returns a versioned {@code JarFileEntry} for the given entry,
|
||||
* if there is one. Otherwise returns the original entry. This
|
||||
* is invoked by the {@code entries2} for verifier.
|
||||
*/
|
||||
JarEntry newEntry(JarEntry je) {
|
||||
if (isMultiRelease()) {
|
||||
return getVersionedEntry(je.getName(), je);
|
||||
}
|
||||
return je;
|
||||
}
|
||||
|
||||
/*
|
||||
* Returns a versioned {@code JarFileEntry} for the given entry
|
||||
* name, if there is one. Otherwise returns a {@code JarFileEntry}
|
||||
* with the given name. It is invoked from JarVerifier's entries2
|
||||
* for {@code singers}.
|
||||
*/
|
||||
JarEntry newEntry(String name) {
|
||||
if (isMultiRelease()) {
|
||||
JarEntry vje = getVersionedEntry(name, null);
|
||||
if (vje != null) {
|
||||
return vje;
|
||||
}
|
||||
}
|
||||
return new JarFileEntry(name);
|
||||
}
|
||||
|
||||
Enumeration<String> entryNames(CodeSource[] cs) {
|
||||
ensureInitialization();
|
||||
if (jv != null) {
|
||||
return jv.entryNames(this, cs);
|
||||
}
|
||||
|
||||
/*
|
||||
* JAR file has no signed content. Is there a non-signing
|
||||
* code source?
|
||||
*/
|
||||
boolean includeUnsigned = false;
|
||||
for (CodeSource c : cs) {
|
||||
if (c.getCodeSigners() == null) {
|
||||
includeUnsigned = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (includeUnsigned) {
|
||||
return unsignedEntryNames();
|
||||
} else {
|
||||
return Collections.emptyEnumeration();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns an enumeration of the zip file entries
|
||||
* excluding internal JAR mechanism entries and including
|
||||
* signed entries missing from the ZIP directory.
|
||||
*/
|
||||
Enumeration<JarEntry> entries2() {
|
||||
ensureInitialization();
|
||||
if (jv != null) {
|
||||
return jv.entries2(this, JUZFA.entries(JarFile.this));
|
||||
}
|
||||
|
||||
// screen out entries which are never signed
|
||||
final var unfilteredEntries = JUZFA.entries(JarFile.this);
|
||||
|
||||
return new Enumeration<>() {
|
||||
|
||||
JarEntry entry;
|
||||
|
||||
public boolean hasMoreElements() {
|
||||
if (entry != null) {
|
||||
return true;
|
||||
}
|
||||
while (unfilteredEntries.hasMoreElements()) {
|
||||
JarEntry je = unfilteredEntries.nextElement();
|
||||
if (JarVerifier.isSigningRelated(je.getName())) {
|
||||
continue;
|
||||
}
|
||||
entry = je;
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public JarEntry nextElement() {
|
||||
if (hasMoreElements()) {
|
||||
JarEntry je = entry;
|
||||
entry = null;
|
||||
return newEntry(je);
|
||||
}
|
||||
throw new NoSuchElementException();
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
CodeSource[] getCodeSources(URL url) {
|
||||
ensureInitialization();
|
||||
if (jv != null) {
|
||||
return jv.getCodeSources(this, url);
|
||||
}
|
||||
|
||||
/*
|
||||
* JAR file has no signed content. Is there a non-signing
|
||||
* code source?
|
||||
*/
|
||||
Enumeration<String> unsigned = unsignedEntryNames();
|
||||
if (unsigned.hasMoreElements()) {
|
||||
return new CodeSource[]{JarVerifier.getUnsignedCS(url)};
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
private Enumeration<String> unsignedEntryNames() {
|
||||
final Enumeration<JarEntry> entries = entries();
|
||||
return new Enumeration<>() {
|
||||
|
||||
String name;
|
||||
|
||||
/*
|
||||
* Grab entries from ZIP directory but screen out
|
||||
* metadata.
|
||||
*/
|
||||
public boolean hasMoreElements() {
|
||||
if (name != null) {
|
||||
return true;
|
||||
}
|
||||
while (entries.hasMoreElements()) {
|
||||
String value;
|
||||
ZipEntry e = entries.nextElement();
|
||||
value = e.getName();
|
||||
if (e.isDirectory() || JarVerifier.isSigningRelated(value)) {
|
||||
continue;
|
||||
}
|
||||
name = value;
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public String nextElement() {
|
||||
if (hasMoreElements()) {
|
||||
String value = name;
|
||||
name = null;
|
||||
return value;
|
||||
}
|
||||
throw new NoSuchElementException();
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
CodeSource getCodeSource(URL url, String name) {
|
||||
ensureInitialization();
|
||||
if (jv != null) {
|
||||
if (jv.eagerValidation) {
|
||||
CodeSource cs;
|
||||
JarEntry je = getJarEntry(name);
|
||||
if (je != null) {
|
||||
cs = jv.getCodeSource(url, this, je);
|
||||
} else {
|
||||
cs = jv.getCodeSource(url, name);
|
||||
}
|
||||
return cs;
|
||||
} else {
|
||||
return jv.getCodeSource(url, name);
|
||||
}
|
||||
}
|
||||
|
||||
return JarVerifier.getUnsignedCS(url);
|
||||
}
|
||||
|
||||
void setEagerValidation(boolean eager) {
|
||||
try {
|
||||
maybeInstantiateVerifier();
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
if (jv != null) {
|
||||
jv.setEagerValidation(eager);
|
||||
}
|
||||
}
|
||||
|
||||
List<Object> getManifestDigests() {
|
||||
ensureInitialization();
|
||||
if (jv != null) {
|
||||
return jv.getManifestDigests();
|
||||
}
|
||||
return new ArrayList<>();
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue