mirror of
https://github.com/openjdk/jdk.git
synced 2026-02-05 07:58:40 +00:00
Merge
This commit is contained in:
commit
2391c4d22c
@ -460,15 +460,13 @@ public interface Path
|
||||
/**
|
||||
* Returns a URI to represent this path.
|
||||
*
|
||||
* <p> This method constructs a hierarchical {@link URI} that is absolute
|
||||
* with a non-empty path component. Its {@link URI#getScheme() scheme} is
|
||||
* equal to the URI scheme that identifies the provider. The exact form of
|
||||
* the other URI components is highly provider dependent. In particular, it
|
||||
* is implementation dependent if its query, fragment, and authority
|
||||
* components are defined or undefined.
|
||||
* <p> This method constructs an absolute {@link URI} with a {@link
|
||||
* URI#getScheme() scheme} equal to the URI scheme that identifies the
|
||||
* provider. The exact form of the scheme specific part is highly provider
|
||||
* dependent.
|
||||
*
|
||||
* <p> For the default provider the {@link URI#getPath() path} component
|
||||
* will represent the {@link #toAbsolutePath absolute} path; the query,
|
||||
* <p> In the case of the default provider, the URI is hierarchical with
|
||||
* a {@link URI#getPath() path} component that is absolute. The query and
|
||||
* fragment components are undefined. Whether the authority component is
|
||||
* defined or not is implementation dependent. There is no guarantee that
|
||||
* the {@code URI} may be used to construct a {@link java.io.File java.io.File}.
|
||||
@ -497,7 +495,7 @@ public interface Path
|
||||
* A format for compound URIs is not defined in this release; such a scheme
|
||||
* may be added in a future release.
|
||||
*
|
||||
* @return an absolute, hierarchical URI with a non-empty path component
|
||||
* @return the URI representing this path
|
||||
*
|
||||
* @throws java.io.IOError
|
||||
* if an I/O error occurs obtaining the absolute path, or where a
|
||||
|
||||
@ -23,11 +23,13 @@
|
||||
|
||||
/*
|
||||
* @test
|
||||
* @bug 7044443
|
||||
* @bug 7044443 7050329
|
||||
* @run main/othervm/policy=JarURL.policy JarURL
|
||||
* @summary Permissions resolved incorrectly for jar protocol
|
||||
*/
|
||||
|
||||
import java.net.URL;
|
||||
import java.io.File;
|
||||
import java.security.AllPermission;
|
||||
import java.security.CodeSource;
|
||||
import java.security.PermissionCollection;
|
||||
@ -35,11 +37,11 @@ import java.security.Policy;
|
||||
import java.security.cert.Certificate;
|
||||
|
||||
public class JarURL {
|
||||
|
||||
public static void main(String[] args) throws Exception {
|
||||
URL codeSourceURL
|
||||
= new URL("jar:file:"
|
||||
+ System.getProperty("java.ext.dirs").split(":")[0]
|
||||
+ "/foo.jar!/");
|
||||
String userDir = System.getProperty("user.dir");
|
||||
String jarURL = "jar:file:" + userDir + File.separator + "foo.jar!/";
|
||||
URL codeSourceURL = new URL(jarURL);
|
||||
CodeSource cs = new CodeSource(codeSourceURL, new Certificate[0]);
|
||||
PermissionCollection perms = Policy.getPolicy().getPermissions(cs);
|
||||
if (!perms.implies(new AllPermission()))
|
||||
|
||||
@ -0,0 +1,8 @@
|
||||
grant codeBase "file:${user.dir}/*" {
|
||||
permission java.security.AllPermission;
|
||||
};
|
||||
|
||||
grant {
|
||||
permission java.util.PropertyPermission "user.dir", "read";
|
||||
permission java.security.SecurityPermission "getPolicy";
|
||||
};
|
||||
Loading…
x
Reference in New Issue
Block a user