src/share/jaf_classes/javax/activation/SecuritySupport.java

Wed, 27 Apr 2016 01:27:09 +0800

author
aoqi
date
Wed, 27 Apr 2016 01:27:09 +0800
changeset 0
373ffda63c9a
permissions
-rw-r--r--

Initial load
http://hg.openjdk.java.net/jdk8u/jdk8u/jaxws/
changeset: 657:d47a47f961ee
tag: jdk8u25-b17

     1 /*
     2  * Copyright (c) 2002, 2005, Oracle and/or its affiliates. All rights reserved.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     4  *
     5  * This code is free software; you can redistribute it and/or modify it
     6  * under the terms of the GNU General Public License version 2 only, as
     7  * published by the Free Software Foundation.  Oracle designates this
     8  * particular file as subject to the "Classpath" exception as provided
     9  * by Oracle in the LICENSE file that accompanied this code.
    10  *
    11  * This code is distributed in the hope that it will be useful, but WITHOUT
    12  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
    13  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
    14  * version 2 for more details (a copy is included in the LICENSE file that
    15  * accompanied this code).
    16  *
    17  * You should have received a copy of the GNU General Public License version
    18  * 2 along with this work; if not, write to the Free Software Foundation,
    19  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
    20  *
    21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
    22  * or visit www.oracle.com if you need additional information or have any
    23  * questions.
    24  */
    26 package javax.activation;
    28 import java.security.*;
    29 import java.net.*;
    30 import java.io.*;
    31 import java.util.*;
    33 /**
    34  * Security related methods that only work on J2SE 1.2 and newer.
    35  *
    36  * @since 1.6
    37  */
    38 class SecuritySupport {
    40     private SecuritySupport() {
    41         // private constructor, can't create an instance
    42     }
    44     public static ClassLoader getContextClassLoader() {
    45         return (ClassLoader)
    46                 AccessController.doPrivileged(new PrivilegedAction() {
    47             public Object run() {
    48                 ClassLoader cl = null;
    49                 try {
    50                     cl = Thread.currentThread().getContextClassLoader();
    51                 } catch (SecurityException ex) { }
    52                 return cl;
    53             }
    54         });
    55     }
    57     public static InputStream getResourceAsStream(final Class c,
    58                                 final String name) throws IOException {
    59         try {
    60             return (InputStream)
    61                 AccessController.doPrivileged(new PrivilegedExceptionAction() {
    62                     public Object run() throws IOException {
    63                         return c.getResourceAsStream(name);
    64                     }
    65                 });
    66         } catch (PrivilegedActionException e) {
    67             throw (IOException)e.getException();
    68         }
    69     }
    71     public static URL[] getResources(final ClassLoader cl, final String name) {
    72         return (URL[])
    73                 AccessController.doPrivileged(new PrivilegedAction() {
    74             public Object run() {
    75                 URL[] ret = null;
    76                 try {
    77                     List v = new ArrayList();
    78                     Enumeration e = cl.getResources(name);
    79                     while (e != null && e.hasMoreElements()) {
    80                         URL url = (URL)e.nextElement();
    81                         if (url != null)
    82                             v.add(url);
    83                     }
    84                     if (v.size() > 0) {
    85                         ret = new URL[v.size()];
    86                         ret = (URL[])v.toArray(ret);
    87                     }
    88                 } catch (IOException ioex) {
    89                 } catch (SecurityException ex) { }
    90                 return ret;
    91             }
    92         });
    93     }
    95     public static URL[] getSystemResources(final String name) {
    96         return (URL[])
    97                 AccessController.doPrivileged(new PrivilegedAction() {
    98             public Object run() {
    99                 URL[] ret = null;
   100                 try {
   101                     List v = new ArrayList();
   102                     Enumeration e = ClassLoader.getSystemResources(name);
   103                     while (e != null && e.hasMoreElements()) {
   104                         URL url = (URL)e.nextElement();
   105                         if (url != null)
   106                             v.add(url);
   107                     }
   108                     if (v.size() > 0) {
   109                         ret = new URL[v.size()];
   110                         ret = (URL[])v.toArray(ret);
   111                     }
   112                 } catch (IOException ioex) {
   113                 } catch (SecurityException ex) { }
   114                 return ret;
   115             }
   116         });
   117     }
   119     public static InputStream openStream(final URL url) throws IOException {
   120         try {
   121             return (InputStream)
   122                 AccessController.doPrivileged(new PrivilegedExceptionAction() {
   123                     public Object run() throws IOException {
   124                         return url.openStream();
   125                     }
   126                 });
   127         } catch (PrivilegedActionException e) {
   128             throw (IOException)e.getException();
   129         }
   130     }
   131 }

mercurial