jdk/src/share/classes/sun/security/provider/PolicyFile.java
changeset 7973 dffe8439eb20
parent 7179 4afb81e50183
child 9035 1255eb81cc2f
equal deleted inserted replaced
7972:1d0e051daa24 7973:dffe8439eb20
   297     private static final String AUTH_POLICY_URL = "auth.policy.url.";
   297     private static final String AUTH_POLICY_URL = "auth.policy.url.";
   298 
   298 
   299     private static final int DEFAULT_CACHE_SIZE = 1;
   299     private static final int DEFAULT_CACHE_SIZE = 1;
   300 
   300 
   301     // contains the policy grant entries, PD cache, and alias mapping
   301     // contains the policy grant entries, PD cache, and alias mapping
   302     private AtomicReference<PolicyInfo> policyInfo =
   302     private AtomicReference<PolicyInfo> policyInfo = new AtomicReference<>();
   303         new AtomicReference<PolicyInfo>();
       
   304     private boolean constructed = false;
   303     private boolean constructed = false;
   305 
   304 
   306     private boolean expandProperties = true;
   305     private boolean expandProperties = true;
   307     private boolean ignoreIdentityScope = true;
   306     private boolean ignoreIdentityScope = true;
   308     private boolean allowSystemProperties = true;
   307     private boolean allowSystemProperties = true;
  1332 
  1331 
  1333         // check to see if the Principals imply
  1332         // check to see if the Principals imply
  1334 
  1333 
  1335         List<PolicyParser.PrincipalEntry> entryPs = entry.getPrincipals();
  1334         List<PolicyParser.PrincipalEntry> entryPs = entry.getPrincipals();
  1336         if (debug != null) {
  1335         if (debug != null) {
  1337             ArrayList<PolicyParser.PrincipalEntry> accPs =
  1336             ArrayList<PolicyParser.PrincipalEntry> accPs = new ArrayList<>();
  1338                         new ArrayList<PolicyParser.PrincipalEntry>();
       
  1339             if (principals != null) {
  1337             if (principals != null) {
  1340                 for (int i = 0; i < principals.length; i++) {
  1338                 for (int i = 0; i < principals.length; i++) {
  1341                     accPs.add(new PolicyParser.PrincipalEntry
  1339                     accPs.add(new PolicyParser.PrincipalEntry
  1342                                         (principals[i].getClass().getName(),
  1340                                         (principals[i].getClass().getName(),
  1343                                         principals[i].getName()));
  1341                                         principals[i].getName()));
  1414                     }
  1412                     }
  1415 
  1413 
  1416                     // check if the PrincipalComparator
  1414                     // check if the PrincipalComparator
  1417                     // implies the current thread's principals
  1415                     // implies the current thread's principals
  1418 
  1416 
  1419                     Set<Principal> pSet =
  1417                     Set<Principal> pSet = new HashSet<>(principals.length);
  1420                                 new HashSet<Principal>(principals.length);
       
  1421                     for (int j = 0; j < principals.length; j++) {
  1418                     for (int j = 0; j < principals.length; j++) {
  1422                         pSet.add(principals[j]);
  1419                         pSet.add(principals[j]);
  1423                     }
  1420                     }
  1424                     Subject subject = new Subject(true,
  1421                     Subject subject = new Subject(true,
  1425                                                 pSet,
  1422                                                 pSet,
  1698                    (PolicyParser.PrincipalEntry.WILDCARD_NAME)) {
  1695                    (PolicyParser.PrincipalEntry.WILDCARD_NAME)) {
  1699 
  1696 
  1700             // build an info array for every principal
  1697             // build an info array for every principal
  1701             // in the current domain which has a principal class
  1698             // in the current domain which has a principal class
  1702             // that is equal to policy entry principal class name
  1699             // that is equal to policy entry principal class name
  1703             List<Principal> plist = new ArrayList<Principal>();
  1700             List<Principal> plist = new ArrayList<>();
  1704             for (int i = 0; i < pdp.length; i++) {
  1701             for (int i = 0; i < pdp.length; i++) {
  1705                 if(pe.principalClass.equals(pdp[i].getClass().getName()))
  1702                 if(pe.principalClass.equals(pdp[i].getClass().getName()))
  1706                     plist.add(pdp[i]);
  1703                     plist.add(pdp[i]);
  1707             }
  1704             }
  1708             String[][] info = new String[plist.size()][2];
  1705             String[][] info = new String[plist.size()][2];
  1768         }
  1765         }
  1769         if (count == certs.length)
  1766         if (count == certs.length)
  1770             // Done
  1767             // Done
  1771             return certs;
  1768             return certs;
  1772 
  1769 
  1773         ArrayList<Certificate> userCertList = new ArrayList<Certificate>();
  1770         ArrayList<Certificate> userCertList = new ArrayList<>();
  1774         i = 0;
  1771         i = 0;
  1775         while (i < certs.length) {
  1772         while (i < certs.length) {
  1776             userCertList.add(certs[i]);
  1773             userCertList.add(certs[i]);
  1777             while (((i+1) < certs.length)
  1774             while (((i+1) < certs.length)
  1778                    && ((X509Certificate)certs[i]).getIssuerDN().equals(
  1775                    && ((X509Certificate)certs[i]).getIssuerDN().equals(
  2232                     }
  2229                     }
  2233 
  2230 
  2234                     if (this.certs == null) {
  2231                     if (this.certs == null) {
  2235                         // extract the signer certs
  2232                         // extract the signer certs
  2236                         ArrayList<Certificate> signerCerts =
  2233                         ArrayList<Certificate> signerCerts =
  2237                             new ArrayList<Certificate>();
  2234                             new ArrayList<>();
  2238                         i = 0;
  2235                         i = 0;
  2239                         while (i < certs.length) {
  2236                         while (i < certs.length) {
  2240                             signerCerts.add(certs[i]);
  2237                             signerCerts.add(certs[i]);
  2241                             while (((i+1) < certs.length) &&
  2238                             while (((i+1) < certs.length) &&
  2242                                 ((X509Certificate)certs[i]).getIssuerDN().equals(
  2239                                 ((X509Certificate)certs[i]).getIssuerDN().equals(