8159544: Remove deprecated classes in com.sun.security.auth.**
authormullan
Mon, 21 Aug 2017 14:05:10 +0000
changeset 46888 ab8444ea0151
parent 46887 27d6560ebe9f
child 46890 136ed8eef97b
8159544: Remove deprecated classes in com.sun.security.auth.** Reviewed-by: jlahoda, vinnie, weijun
jdk/make/mapfiles/libjaas/mapfile-vers
jdk/src/java.base/share/classes/javax/security/auth/Policy.java
jdk/src/java.base/share/classes/sun/security/util/AuthResources.java
jdk/src/java.base/share/classes/sun/security/util/AuthResources_de.java
jdk/src/java.base/share/classes/sun/security/util/AuthResources_es.java
jdk/src/java.base/share/classes/sun/security/util/AuthResources_fr.java
jdk/src/java.base/share/classes/sun/security/util/AuthResources_it.java
jdk/src/java.base/share/classes/sun/security/util/AuthResources_ja.java
jdk/src/java.base/share/classes/sun/security/util/AuthResources_ko.java
jdk/src/java.base/share/classes/sun/security/util/AuthResources_pt_BR.java
jdk/src/java.base/share/classes/sun/security/util/AuthResources_sv.java
jdk/src/java.base/share/classes/sun/security/util/AuthResources_zh_CN.java
jdk/src/java.base/share/classes/sun/security/util/AuthResources_zh_TW.java
jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/PolicyFile.java
jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/SolarisNumericGroupPrincipal.java
jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/SolarisNumericUserPrincipal.java
jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/SolarisPrincipal.java
jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/X500Principal.java
jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/module/SolarisLoginModule.java
jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/module/SolarisSystem.java
jdk/src/jdk.security.auth/solaris/native/libjaas/Solaris.c
jdk/test/javax/security/auth/PrivateCredentialPermission/Subset.java
jdk/test/javax/security/auth/PrivateCredentialPermission/Subset.policy
jdk/test/sun/security/provider/PolicyFile/Comparator.java
--- a/jdk/make/mapfiles/libjaas/mapfile-vers	Sun Aug 20 20:36:12 2017 -0700
+++ b/jdk/make/mapfiles/libjaas/mapfile-vers	Mon Aug 21 14:05:10 2017 +0000
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2005, 2017, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -27,7 +27,6 @@
 
 SUNWprivate_1.1 {
 	global:
-            Java_com_sun_security_auth_module_SolarisSystem_getSolarisInfo;
             Java_com_sun_security_auth_module_UnixSystem_getUnixInfo;
         local:
 	    *;
--- a/jdk/src/java.base/share/classes/javax/security/auth/Policy.java	Sun Aug 20 20:36:12 2017 -0700
+++ b/jdk/src/java.base/share/classes/javax/security/auth/Policy.java	Mon Aug 21 14:05:10 2017 +0000
@@ -82,13 +82,13 @@
  *
  * <pre>
  *      grant CodeBase "foo.com", Signedby "foo",
- *            Principal com.sun.security.auth.SolarisPrincipal "duke" {
+ *            Principal com.sun.security.auth.UnixPrincipal "duke" {
  *          permission java.io.FilePermission "/home/duke", "read, write";
  *      };
  * </pre>
  *
  * This <b><i>grant</i></b> entry specifies that code from "foo.com",
- * signed by "foo', and running as a {@code SolarisPrincipal} with the
+ * signed by "foo', and running as a {@code UnixPrincipal} with the
  * name, duke, has one {@code Permission}.  This {@code Permission}
  * permits the executing code to read and write files in the directory,
  * "/home/duke".
@@ -107,8 +107,8 @@
  * for that {@code Subject} to be granted the specified Permissions.
  *
  * <pre>
- *      grant Principal com.sun.security.auth.SolarisPrincipal "duke",
- *            Principal com.sun.security.auth.SolarisNumericUserPrincipal "0" {
+ *      grant Principal com.sun.security.auth.UnixPrincipal "duke",
+ *            Principal com.sun.security.auth.UnixNumericUserPrincipal "0" {
  *          permission java.io.FilePermission "/home/duke", "read, write";
  *          permission java.net.SocketPermission "duke.com", "connect";
  *      };
--- a/jdk/src/java.base/share/classes/sun/security/util/AuthResources.java	Sun Aug 20 20:36:12 2017 -0700
+++ b/jdk/src/java.base/share/classes/sun/security/util/AuthResources.java	Mon Aug 21 14:05:10 2017 +0000
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -95,51 +95,6 @@
                 "Kerberos username [{0}]: "},
         {"Kerberos.password.for.username.",
                 "Kerberos password for {0}: "},
-
-        /***    EVERYTHING BELOW IS DEPRECATED  ***/
-
-        // com.sun.security.auth.PolicyFile
-        {".error.parsing.", ": error parsing "},
-        {"COLON", ": "},
-        {".error.adding.Permission.", ": error adding Permission "},
-        {"SPACE", " "},
-        {"NEWLINE", "\n"},
-        {".error.adding.Entry.", ": error adding Entry "},
-        {"LPARAM", "("},
-        {"RPARAM", ")"},
-        {"attempt.to.add.a.Permission.to.a.readonly.PermissionCollection",
-            "attempt to add a Permission to a readonly PermissionCollection"},
-
-        // com.sun.security.auth.PolicyParser
-        {"expected.keystore.type", "expected keystore type"},
-        {"can.not.specify.Principal.with.a.wildcard.class.without.a.wildcard.name",
-                "can not specify Principal with a wildcard class without a wildcard name"},
-        {"expected.codeBase.or.SignedBy", "expected codeBase or SignedBy"},
-        {"only.Principal.based.grant.entries.permitted",
-                "only Principal-based grant entries permitted"},
-        {"expected.permission.entry", "expected permission entry"},
-        {"number.", "number "},
-        {"expected.expect.read.end.of.file.",
-                "expected {0}, read end of file"},
-        {"expected.read.end.of.file", "expected ';', read end of file"},
-        {"line.", "line "},
-        {".expected.", ": expected '"},
-        {".found.", "', found '"},
-        {"QUOTE", "'"},
-
-        // SolarisPrincipals
-        {"SolarisNumericGroupPrincipal.Primary.Group.",
-                "SolarisNumericGroupPrincipal [Primary Group]: "},
-        {"SolarisNumericGroupPrincipal.Supplementary.Group.",
-                "SolarisNumericGroupPrincipal [Supplementary Group]: "},
-        {"SolarisNumericUserPrincipal.",
-                "SolarisNumericUserPrincipal: "},
-        {"SolarisPrincipal.", "SolarisPrincipal: "},
-        // provided.null.name is the NullPointerException message when a
-        // developer incorrectly passes a null name to the constructor of
-        // subclasses of java.security.Principal
-        {"provided.null.name", "provided null name"}
-
     };
 
     /**
--- a/jdk/src/java.base/share/classes/sun/security/util/AuthResources_de.java	Sun Aug 20 20:36:12 2017 -0700
+++ b/jdk/src/java.base/share/classes/sun/security/util/AuthResources_de.java	Mon Aug 21 14:05:10 2017 +0000
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -95,50 +95,6 @@
                 "Kerberos-Benutzername [{0}]: "},
         {"Kerberos.password.for.username.",
                 "Kerberos-Kennwort f\u00FCr {0}: "},
-
-        /***    EVERYTHING BELOW IS DEPRECATED  ***/
-
-        // com.sun.security.auth.PolicyFile
-        {".error.parsing.", ": Parsefehler "},
-        {"COLON", ": "},
-        {".error.adding.Permission.", ": Fehler beim Hinzuf\u00FCgen der Berechtigung "},
-        {"SPACE", " "},
-        {".error.adding.Entry.", ": Fehler beim Hinzuf\u00FCgen des Eintrags "},
-        {"LPARAM", "("},
-        {"RPARAM", ")"},
-        {"attempt.to.add.a.Permission.to.a.readonly.PermissionCollection",
-            "Es wurde versucht, eine Berechtigung zu einer schreibgesch\u00FCtzten PermissionCollection hinzuzuf\u00FCgen"},
-
-        // com.sun.security.auth.PolicyParser
-        {"expected.keystore.type", "Keystore-Typ erwartet"},
-        {"can.not.specify.Principal.with.a.wildcard.class.without.a.wildcard.name",
-                "Principal kann nicht mit einer Platzhalterklasse ohne Platzhalternamen angegeben werden"},
-        {"expected.codeBase.or.SignedBy", "codeBase oder SignedBy erwartet"},
-        {"only.Principal.based.grant.entries.permitted",
-                "Nur Principal-basierte Berechtigungseintr\u00E4ge zul\u00E4ssig"},
-        {"expected.permission.entry", "Berechtigungseintrag erwartet"},
-        {"number.", "Nummer "},
-        {"expected.expect.read.end.of.file.",
-                "{0} erwartet, Dateiende gelesen"},
-        {"expected.read.end.of.file", "\";\" erwartet, Dateiende gelesen"},
-        {"line.", "Zeile "},
-        {".expected.", ": erwartet: \""},
-        {".found.", "\", gefunden: \""},
-        {"QUOTE", "'"},
-
-        // SolarisPrincipals
-        {"SolarisNumericGroupPrincipal.Primary.Group.",
-                "SolarisNumericGroupPrincipal [Prim\u00E4rgruppe]: "},
-        {"SolarisNumericGroupPrincipal.Supplementary.Group.",
-                "SolarisNumericGroupPrincipal [Zusatzgruppe]: "},
-        {"SolarisNumericUserPrincipal.",
-                "SolarisNumericUserPrincipal: "},
-        {"SolarisPrincipal.", "SolarisPrincipal: "},
-        // provided.null.name is the NullPointerException message when a
-        // developer incorrectly passes a null name to the constructor of
-        // subclasses of java.security.Principal
-        {"provided.null.name", "Nullname angegeben"}
-
     };
 
     /**
--- a/jdk/src/java.base/share/classes/sun/security/util/AuthResources_es.java	Sun Aug 20 20:36:12 2017 -0700
+++ b/jdk/src/java.base/share/classes/sun/security/util/AuthResources_es.java	Mon Aug 21 14:05:10 2017 +0000
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -95,50 +95,6 @@
                 "Nombre de usuario de Kerberos [{0}]: "},
         {"Kerberos.password.for.username.",
                 "Contrase\u00F1a de Kerberos de {0}: "},
-
-        /***    EVERYTHING BELOW IS DEPRECATED  ***/
-
-        // com.sun.security.auth.PolicyFile
-        {".error.parsing.", ": error de an\u00E1lisis "},
-        {"COLON", ": "},
-        {".error.adding.Permission.", ": error al agregar el permiso "},
-        {"SPACE", " "},
-        {".error.adding.Entry.", ": error al agregar la entrada "},
-        {"LPARAM", "("},
-        {"RPARAM", ")"},
-        {"attempt.to.add.a.Permission.to.a.readonly.PermissionCollection",
-            "se ha intentado agregar un permiso a una recopilaci\u00F3n de permisos de s\u00F3lo lectura"},
-
-        // com.sun.security.auth.PolicyParser
-        {"expected.keystore.type", "se esperaba un tipo de almac\u00E9n de claves"},
-        {"can.not.specify.Principal.with.a.wildcard.class.without.a.wildcard.name",
-                "no se puede especificar Principal con una clase de comod\u00EDn sin un nombre de comod\u00EDn"},
-        {"expected.codeBase.or.SignedBy", "se esperaba codeBase o SignedBy"},
-        {"only.Principal.based.grant.entries.permitted",
-                "s\u00F3lo se permite otorgar entradas basadas en Principal"},
-        {"expected.permission.entry", "se esperaba un permiso de entrada"},
-        {"number.", "n\u00FAmero "},
-        {"expected.expect.read.end.of.file.",
-                "se esperaba [{0}], se ha le\u00EDdo final de archivo"},
-        {"expected.read.end.of.file", "se esperaba ';', se ha le\u00EDdo el final de archivo"},
-        {"line.", "l\u00EDnea "},
-        {".expected.", ": se esperaba '"},
-        {".found.", "', se ha encontrado '"},
-        {"QUOTE", "'"},
-
-        // SolarisPrincipals
-        {"SolarisNumericGroupPrincipal.Primary.Group.",
-                "SolarisNumericGroupPrincipal [Grupo Principal]: "},
-        {"SolarisNumericGroupPrincipal.Supplementary.Group.",
-                "SolarisNumericGroupPrincipal [Grupo Adicional]: "},
-        {"SolarisNumericUserPrincipal.",
-                "SolarisNumericUserPrincipal: "},
-        {"SolarisPrincipal.", "SolarisPrincipal: "},
-        // provided.null.name is the NullPointerException message when a
-        // developer incorrectly passes a null name to the constructor of
-        // subclasses of java.security.Principal
-        {"provided.null.name", "se ha proporcionado un nombre nulo"}
-
     };
 
     /**
--- a/jdk/src/java.base/share/classes/sun/security/util/AuthResources_fr.java	Sun Aug 20 20:36:12 2017 -0700
+++ b/jdk/src/java.base/share/classes/sun/security/util/AuthResources_fr.java	Mon Aug 21 14:05:10 2017 +0000
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -95,50 +95,6 @@
                 "Nom utilisateur Kerberos [{0}] : "},
         {"Kerberos.password.for.username.",
                 "Mot de passe Kerberos pour {0} : "},
-
-        /***    EVERYTHING BELOW IS DEPRECATED  ***/
-
-        // com.sun.security.auth.PolicyFile
-        {".error.parsing.", ": erreur d'analyse "},
-        {"COLON", ": "},
-        {".error.adding.Permission.", ": erreur d'ajout de droit "},
-        {"SPACE", " "},
-        {".error.adding.Entry.", ": erreur d'ajout d'entr\u00E9e "},
-        {"LPARAM", "("},
-        {"RPARAM", ")"},
-        {"attempt.to.add.a.Permission.to.a.readonly.PermissionCollection",
-            "tentative d'ajout de droit \u00E0 un ensemble de droits en lecture seule"},
-
-        // com.sun.security.auth.PolicyParser
-        {"expected.keystore.type", "type de fichier de cl\u00E9s attendu"},
-        {"can.not.specify.Principal.with.a.wildcard.class.without.a.wildcard.name",
-                "impossible de sp\u00E9cifier le principal avec une classe g\u00E9n\u00E9rique sans nom g\u00E9n\u00E9rique"},
-        {"expected.codeBase.or.SignedBy", "codeBase ou SignedBy attendu"},
-        {"only.Principal.based.grant.entries.permitted",
-                "seules les entr\u00E9es bas\u00E9es sur Principal sont autoris\u00E9es"},
-        {"expected.permission.entry", "entr\u00E9e de droit attendue"},
-        {"number.", "nombre "},
-        {"expected.expect.read.end.of.file.",
-                "attendu {0}, lecture de fin de fichier"},
-        {"expected.read.end.of.file", "attendu ';', lecture de fin de fichier"},
-        {"line.", "ligne "},
-        {".expected.", ": attendu '"},
-        {".found.", "', trouv\u00E9 '"},
-        {"QUOTE", "'"},
-
-        // SolarisPrincipals
-        {"SolarisNumericGroupPrincipal.Primary.Group.",
-                "SolarisNumericGroupPrincipal [groupe principal] : "},
-        {"SolarisNumericGroupPrincipal.Supplementary.Group.",
-                "SolarisNumericGroupPrincipal [groupe suppl\u00E9mentaire] : "},
-        {"SolarisNumericUserPrincipal.",
-                "SolarisNumericUserPrincipal : "},
-        {"SolarisPrincipal.", "SolarisPrincipal : "},
-        // provided.null.name is the NullPointerException message when a
-        // developer incorrectly passes a null name to the constructor of
-        // subclasses of java.security.Principal
-        {"provided.null.name", "nom NULL fourni"}
-
     };
 
     /**
--- a/jdk/src/java.base/share/classes/sun/security/util/AuthResources_it.java	Sun Aug 20 20:36:12 2017 -0700
+++ b/jdk/src/java.base/share/classes/sun/security/util/AuthResources_it.java	Mon Aug 21 14:05:10 2017 +0000
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -95,50 +95,6 @@
                 "Nome utente Kerberos [{0}]: "},
         {"Kerberos.password.for.username.",
                 "Password Kerberos per {0}: "},
-
-        /***    EVERYTHING BELOW IS DEPRECATED  ***/
-
-        // com.sun.security.auth.PolicyFile
-        {".error.parsing.", ": errore durante l'analisi "},
-        {"COLON", ": "},
-        {".error.adding.Permission.", ": errore durante l'aggiunta dell'autorizzazione "},
-        {"SPACE", " "},
-        {".error.adding.Entry.", ": errore durante l'aggiunta della voce "},
-        {"LPARAM", "("},
-        {"RPARAM", ")"},
-        {"attempt.to.add.a.Permission.to.a.readonly.PermissionCollection",
-            "tentativo di aggiungere un'autorizzazione a una PermissionCollection di sola lettura"},
-
-        // com.sun.security.auth.PolicyParser
-        {"expected.keystore.type", "tipo keystore previsto"},
-        {"can.not.specify.Principal.with.a.wildcard.class.without.a.wildcard.name",
-                "impossibile specificare un principal con una classe carattere jolly senza un nome carattere jolly"},
-        {"expected.codeBase.or.SignedBy", "previsto codeBase o SignedBy"},
-        {"only.Principal.based.grant.entries.permitted",
-                "sono consentiti solo valori garantiti basati sul principal"},
-        {"expected.permission.entry", "prevista voce di autorizzazione"},
-        {"number.", "numero "},
-        {"expected.expect.read.end.of.file.",
-                "previsto {0}, letto end of file"},
-        {"expected.read.end.of.file", "previsto ';', letto end of file"},
-        {"line.", "riga "},
-        {".expected.", ": previsto '"},
-        {".found.", "', trovato '"},
-        {"QUOTE", "'"},
-
-        // SolarisPrincipals
-        {"SolarisNumericGroupPrincipal.Primary.Group.",
-                "SolarisNumericGroupPrincipal [gruppo primario]: "},
-        {"SolarisNumericGroupPrincipal.Supplementary.Group.",
-                "SolarisNumericGroupPrincipal [gruppo supplementare]: "},
-        {"SolarisNumericUserPrincipal.",
-                "SolarisNumericUserPrincipal: "},
-        {"SolarisPrincipal.", "SolarisPrincipal: "},
-        // provided.null.name is the NullPointerException message when a
-        // developer incorrectly passes a null name to the constructor of
-        // subclasses of java.security.Principal
-        {"provided.null.name", "il nome fornito \u00E8 nullo"}
-
     };
 
     /**
--- a/jdk/src/java.base/share/classes/sun/security/util/AuthResources_ja.java	Sun Aug 20 20:36:12 2017 -0700
+++ b/jdk/src/java.base/share/classes/sun/security/util/AuthResources_ja.java	Mon Aug 21 14:05:10 2017 +0000
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -95,50 +95,6 @@
                 "Kerberos\u30E6\u30FC\u30B6\u30FC\u540D[{0}]: "},
         {"Kerberos.password.for.username.",
                 "{0}\u306EKerberos\u30D1\u30B9\u30EF\u30FC\u30C9: "},
-
-        /***    EVERYTHING BELOW IS DEPRECATED  ***/
-
-        // com.sun.security.auth.PolicyFile
-        {".error.parsing.", ": \u89E3\u6790\u30A8\u30E9\u30FC "},
-        {"COLON", ": "},
-        {".error.adding.Permission.", ": \u30A2\u30AF\u30BB\u30B9\u6A29\u306E\u8FFD\u52A0\u30A8\u30E9\u30FC "},
-        {"SPACE", " "},
-        {".error.adding.Entry.", ": \u30A8\u30F3\u30C8\u30EA\u306E\u8FFD\u52A0\u30A8\u30E9\u30FC "},
-        {"LPARAM", "("},
-        {"RPARAM", ")"},
-        {"attempt.to.add.a.Permission.to.a.readonly.PermissionCollection",
-            "\u8AAD\u53D6\u308A\u5C02\u7528\u306EPermissionCollection\u306B\u30A2\u30AF\u30BB\u30B9\u6A29\u306E\u8FFD\u52A0\u304C\u8A66\u884C\u3055\u308C\u307E\u3057\u305F"},
-
-        // com.sun.security.auth.PolicyParser
-        {"expected.keystore.type", "\u4E88\u60F3\u3055\u308C\u305F\u30AD\u30FC\u30B9\u30C8\u30A2\u30FB\u30BF\u30A4\u30D7"},
-        {"can.not.specify.Principal.with.a.wildcard.class.without.a.wildcard.name",
-                "\u30EF\u30A4\u30EB\u30C9\u30AB\u30FC\u30C9\u540D\u306E\u306A\u3044\u30EF\u30A4\u30EB\u30C9\u30AB\u30FC\u30C9\u30FB\u30AF\u30E9\u30B9\u3092\u4F7F\u7528\u3057\u3066\u3001\u30D7\u30EA\u30F3\u30B7\u30D1\u30EB\u3092\u6307\u5B9A\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093"},
-        {"expected.codeBase.or.SignedBy", "\u4E88\u60F3\u3055\u308C\u305FcodeBase\u307E\u305F\u306FSignedBy"},
-        {"only.Principal.based.grant.entries.permitted",
-                "\u30D7\u30EA\u30F3\u30B7\u30D1\u30EB\u30FB\u30D9\u30FC\u30B9\u306E\u30A8\u30F3\u30C8\u30EA\u306E\u307F\u304C\u8A31\u53EF\u3055\u308C\u307E\u3059\u3002"},
-        {"expected.permission.entry", "\u4E88\u60F3\u3055\u308C\u305F\u30A2\u30AF\u30BB\u30B9\u6A29\u30A8\u30F3\u30C8\u30EA"},
-        {"number.", "\u6570 "},
-        {"expected.expect.read.end.of.file.",
-                "{0}\u3067\u306F\u306A\u304F\u30D5\u30A1\u30A4\u30EB\u306E\u7D42\u308F\u308A\u304C\u8AAD\u307F\u8FBC\u307E\u308C\u307E\u3057\u305F"},
-        {"expected.read.end.of.file", "\u4E88\u60F3\u5024\u306F';'\u3067\u3059\u304C\u3001\u30D5\u30A1\u30A4\u30EB\u306E\u7D42\u308F\u308A\u304C\u8AAD\u307F\u8FBC\u307E\u308C\u307E\u3057\u305F"},
-        {"line.", "\u884C\u756A\u53F7 "},
-        {".expected.", ": \u4E88\u60F3\u5024'"},
-        {".found.", "',\u691C\u51FA\u5024'"},
-        {"QUOTE", "'"},
-
-        // SolarisPrincipals
-        {"SolarisNumericGroupPrincipal.Primary.Group.",
-                "SolarisNumericGroupPrincipal [\u4E3B\u30B0\u30EB\u30FC\u30D7]: "},
-        {"SolarisNumericGroupPrincipal.Supplementary.Group.",
-                "SolarisNumericGroupPrincipal [\u88DC\u52A9\u30B0\u30EB\u30FC\u30D7]: "},
-        {"SolarisNumericUserPrincipal.",
-                "SolarisNumericUserPrincipal: "},
-        {"SolarisPrincipal.", "SolarisPrincipal: "},
-        // provided.null.name is the NullPointerException message when a
-        // developer incorrectly passes a null name to the constructor of
-        // subclasses of java.security.Principal
-        {"provided.null.name", "null\u306E\u540D\u524D\u304C\u6307\u5B9A\u3055\u308C\u307E\u3057\u305F"}
-
     };
 
     /**
--- a/jdk/src/java.base/share/classes/sun/security/util/AuthResources_ko.java	Sun Aug 20 20:36:12 2017 -0700
+++ b/jdk/src/java.base/share/classes/sun/security/util/AuthResources_ko.java	Mon Aug 21 14:05:10 2017 +0000
@@ -95,50 +95,6 @@
                 "Kerberos \uC0AC\uC6A9\uC790 \uC774\uB984 [{0}]: "},
         {"Kerberos.password.for.username.",
                 "{0}\uC758 Kerberos \uBE44\uBC00\uBC88\uD638: "},
-
-        /***    EVERYTHING BELOW IS DEPRECATED  ***/
-
-        // com.sun.security.auth.PolicyFile
-        {".error.parsing.", ": \uAD6C\uBB38\uBD84\uC11D \uC624\uB958 "},
-        {"COLON", ": "},
-        {".error.adding.Permission.", ": \uAD8C\uD55C \uCD94\uAC00 \uC624\uB958 "},
-        {"SPACE", " "},
-        {".error.adding.Entry.", ": \uD56D\uBAA9 \uCD94\uAC00 \uC624\uB958 "},
-        {"LPARAM", "("},
-        {"RPARAM", ")"},
-        {"attempt.to.add.a.Permission.to.a.readonly.PermissionCollection",
-            "\uC77D\uAE30 \uC804\uC6A9 PermissionCollection\uC5D0 \uAD8C\uD55C\uC744 \uCD94\uAC00\uD558\uB824\uACE0 \uC2DC\uB3C4\uD588\uC2B5\uB2C8\uB2E4."},
-
-        // com.sun.security.auth.PolicyParser
-        {"expected.keystore.type", "\uD0A4 \uC800\uC7A5\uC18C \uC720\uD615\uC774 \uD544\uC694\uD569\uB2C8\uB2E4."},
-        {"can.not.specify.Principal.with.a.wildcard.class.without.a.wildcard.name",
-                "\uC640\uC77C\uB4DC \uCE74\uB4DC \uBB38\uC790 \uC774\uB984 \uC5C6\uC774 \uC640\uC77C\uB4DC \uCE74\uB4DC \uBB38\uC790 \uD074\uB798\uC2A4\uB97C \uC0AC\uC6A9\uD558\uB294 \uC8FC\uCCB4\uB97C \uC9C0\uC815\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4."},
-        {"expected.codeBase.or.SignedBy", "codeBase \uB610\uB294 SignedBy\uAC00 \uD544\uC694\uD569\uB2C8\uB2E4."},
-        {"only.Principal.based.grant.entries.permitted",
-                "\uC8FC\uCCB4 \uAE30\uBC18 \uAD8C\uD55C \uBD80\uC5EC \uD56D\uBAA9\uB9CC \uD5C8\uC6A9\uB429\uB2C8\uB2E4."},
-        {"expected.permission.entry", "\uAD8C\uD55C \uD56D\uBAA9\uC774 \uD544\uC694\uD569\uB2C8\uB2E4."},
-        {"number.", "\uC22B\uC790 "},
-        {"expected.expect.read.end.of.file.",
-                "{0}\uC774(\uAC00) \uD544\uC694\uD558\uC9C0\uB9CC \uD30C\uC77C\uC758 \uB05D\uC5D0 \uB3C4\uB2EC\uD588\uC2B5\uB2C8\uB2E4."},
-        {"expected.read.end.of.file", "';'\uC774 \uD544\uC694\uD558\uC9C0\uB9CC \uD30C\uC77C\uC758 \uB05D\uC5D0 \uB3C4\uB2EC\uD588\uC2B5\uB2C8\uB2E4."},
-        {"line.", "\uD589 "},
-        {".expected.", ": \uD544\uC694\uD55C \uD56D\uBAA9: '"},
-        {".found.", "', \uBC1C\uACAC\uB41C \uD56D\uBAA9: '"},
-        {"QUOTE", "'"},
-
-        // SolarisPrincipals
-        {"SolarisNumericGroupPrincipal.Primary.Group.",
-                "SolarisNumericGroupPrincipal [\uAE30\uBCF8 \uADF8\uB8F9]: "},
-        {"SolarisNumericGroupPrincipal.Supplementary.Group.",
-                "SolarisNumericGroupPrincipal [\uBCF4\uC870 \uADF8\uB8F9]: "},
-        {"SolarisNumericUserPrincipal.",
-                "SolarisNumericUserPrincipal: "},
-        {"SolarisPrincipal.", "SolarisPrincipal: "},
-        // provided.null.name is the NullPointerException message when a
-        // developer incorrectly passes a null name to the constructor of
-        // subclasses of java.security.Principal
-        {"provided.null.name", "\uB110 \uC774\uB984\uC744 \uC81C\uACF5\uD588\uC2B5\uB2C8\uB2E4."}
-
     };
 
     /**
--- a/jdk/src/java.base/share/classes/sun/security/util/AuthResources_pt_BR.java	Sun Aug 20 20:36:12 2017 -0700
+++ b/jdk/src/java.base/share/classes/sun/security/util/AuthResources_pt_BR.java	Mon Aug 21 14:05:10 2017 +0000
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -95,50 +95,6 @@
                 "Nome do usu\u00E1rio de Kerberos [{0}]: "},
         {"Kerberos.password.for.username.",
                 "Senha de Kerberos de {0}: "},
-
-        /***    EVERYTHING BELOW IS DEPRECATED  ***/
-
-        // com.sun.security.auth.PolicyFile
-        {".error.parsing.", ": erro de parsing "},
-        {"COLON", ": "},
-        {".error.adding.Permission.", ": erro ao adicionar a Permiss\u00E3o "},
-        {"SPACE", " "},
-        {".error.adding.Entry.", ": erro ao adicionar a Entrada "},
-        {"LPARAM", "("},
-        {"RPARAM", ")"},
-        {"attempt.to.add.a.Permission.to.a.readonly.PermissionCollection",
-            "tentativa de adicionar uma Permiss\u00E3o a um PermissionCollection somente para leitura"},
-
-        // com.sun.security.auth.PolicyParser
-        {"expected.keystore.type", "tipo de armazenamento de chaves esperado"},
-        {"can.not.specify.Principal.with.a.wildcard.class.without.a.wildcard.name",
-                "n\u00E3o \u00E9 poss\u00EDvel especificar um principal com uma classe curinga sem um nome curinga"},
-        {"expected.codeBase.or.SignedBy", "CodeBase ou SignedBy esperado"},
-        {"only.Principal.based.grant.entries.permitted",
-                "somente \u00E9 permitido conceder entradas com base no Principal"},
-        {"expected.permission.entry", "entrada de permiss\u00E3o esperada"},
-        {"number.", "n\u00FAmero "},
-        {"expected.expect.read.end.of.file.",
-                "esperado {0}, ler fim do arquivo"},
-        {"expected.read.end.of.file", "esperado ';', fim de arquivo lido"},
-        {"line.", "linha "},
-        {".expected.", ": esperado '"},
-        {".found.", "', encontrado '"},
-        {"QUOTE", "'"},
-
-        // SolarisPrincipals
-        {"SolarisNumericGroupPrincipal.Primary.Group.",
-                "SolarisNumericGroupPrincipal [Grupo Principal]: "},
-        {"SolarisNumericGroupPrincipal.Supplementary.Group.",
-                "SolarisNumericGroupPrincipal [Grupo Complementar]: "},
-        {"SolarisNumericUserPrincipal.",
-                "SolarisNumericUserPrincipal: "},
-        {"SolarisPrincipal.", "SolarisPrincipal: "},
-        // provided.null.name is the NullPointerException message when a
-        // developer incorrectly passes a null name to the constructor of
-        // subclasses of java.security.Principal
-        {"provided.null.name", "nome nulo fornecido"}
-
     };
 
     /**
--- a/jdk/src/java.base/share/classes/sun/security/util/AuthResources_sv.java	Sun Aug 20 20:36:12 2017 -0700
+++ b/jdk/src/java.base/share/classes/sun/security/util/AuthResources_sv.java	Mon Aug 21 14:05:10 2017 +0000
@@ -95,50 +95,6 @@
                 "Kerberos-anv\u00E4ndarnamn [{0}]: "},
         {"Kerberos.password.for.username.",
                 "Kerberos-l\u00F6senord f\u00F6r {0}: "},
-
-        /***    EVERYTHING BELOW IS DEPRECATED  ***/
-
-        // com.sun.security.auth.PolicyFile
-        {".error.parsing.", ": tolkningsfel "},
-        {"COLON", ": "},
-        {".error.adding.Permission.", ": fel vid till\u00E4gg av beh\u00F6righet "},
-        {"SPACE", " "},
-        {".error.adding.Entry.", ": fel vid till\u00E4gg av post "},
-        {"LPARAM", "("},
-        {"RPARAM", ")"},
-        {"attempt.to.add.a.Permission.to.a.readonly.PermissionCollection",
-            "f\u00F6rs\u00F6k att l\u00E4gga till beh\u00F6righet till skrivskyddad PermissionCollection"},
-
-        // com.sun.security.auth.PolicyParser
-        {"expected.keystore.type", "f\u00F6rv\u00E4ntad nyckellagertyp"},
-        {"can.not.specify.Principal.with.a.wildcard.class.without.a.wildcard.name",
-                "kan inte ange identitetshavare med en jokerteckenklass utan ett jokerteckennamn"},
-        {"expected.codeBase.or.SignedBy", "f\u00F6rv\u00E4ntade codeBase eller SignedBy"},
-        {"only.Principal.based.grant.entries.permitted",
-                "endast identitetshavarbaserade poster till\u00E5ts"},
-        {"expected.permission.entry", "f\u00F6rv\u00E4ntade beh\u00F6righetspost"},
-        {"number.", "nummer"},
-        {"expected.expect.read.end.of.file.",
-                "f\u00F6rv\u00E4ntade {0}, l\u00E4ste filslut"},
-        {"expected.read.end.of.file", "f\u00F6rv\u00E4ntade ';', l\u00E4ste filslut"},
-        {"line.", "rad "},
-        {".expected.", ": f\u00F6rv\u00E4ntade '"},
-        {".found.", "', hittade '"},
-        {"QUOTE", "'"},
-
-        // SolarisPrincipals
-        {"SolarisNumericGroupPrincipal.Primary.Group.",
-                "SolarisNumericGroupPrincipal [prim\u00E4r grupp]: "},
-        {"SolarisNumericGroupPrincipal.Supplementary.Group.",
-                "SolarisNumericGroupPrincipal [till\u00E4ggsgrupp]: "},
-        {"SolarisNumericUserPrincipal.",
-                "SolarisNumericUserPrincipal: "},
-        {"SolarisPrincipal.", "SolarisPrincipal: "},
-        // provided.null.name is the NullPointerException message when a
-        // developer incorrectly passes a null name to the constructor of
-        // subclasses of java.security.Principal
-        {"provided.null.name", "null-namn angavs"}
-
     };
 
     /**
--- a/jdk/src/java.base/share/classes/sun/security/util/AuthResources_zh_CN.java	Sun Aug 20 20:36:12 2017 -0700
+++ b/jdk/src/java.base/share/classes/sun/security/util/AuthResources_zh_CN.java	Mon Aug 21 14:05:10 2017 +0000
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -95,50 +95,6 @@
                 "Kerberos \u7528\u6237\u540D [{0}]: "},
         {"Kerberos.password.for.username.",
                 "{0}\u7684 Kerberos \u53E3\u4EE4: "},
-
-        /***    EVERYTHING BELOW IS DEPRECATED  ***/
-
-        // com.sun.security.auth.PolicyFile
-        {".error.parsing.", ": \u89E3\u6790\u65F6\u51FA\u9519 "},
-        {"COLON", ": "},
-        {".error.adding.Permission.", ": \u6DFB\u52A0\u6743\u9650\u65F6\u51FA\u9519 "},
-        {"SPACE", " "},
-        {".error.adding.Entry.", ": \u6DFB\u52A0\u6761\u76EE\u65F6\u51FA\u9519 "},
-        {"LPARAM", "("},
-        {"RPARAM", ")"},
-        {"attempt.to.add.a.Permission.to.a.readonly.PermissionCollection",
-            "\u5C1D\u8BD5\u5C06\u6743\u9650\u6DFB\u52A0\u81F3\u53EA\u8BFB\u7684 PermissionCollection"},
-
-        // com.sun.security.auth.PolicyParser
-        {"expected.keystore.type", "\u5E94\u4E3A\u5BC6\u94A5\u5E93\u7C7B\u578B"},
-        {"can.not.specify.Principal.with.a.wildcard.class.without.a.wildcard.name",
-                "\u6CA1\u6709\u901A\u914D\u7B26\u540D\u79F0, \u65E0\u6CD5\u4F7F\u7528\u901A\u914D\u7B26\u7C7B\u6307\u5B9A\u4E3B\u7528\u6237"},
-        {"expected.codeBase.or.SignedBy", "\u5E94\u4E3A codeBase \u6216 SignedBy"},
-        {"only.Principal.based.grant.entries.permitted",
-                "\u53EA\u5141\u8BB8\u57FA\u4E8E\u4E3B\u7528\u6237\u7684\u6388\u6743\u6761\u76EE"},
-        {"expected.permission.entry", "\u5E94\u4E3A\u6743\u9650\u6761\u76EE"},
-        {"number.", "\u7F16\u53F7 "},
-        {"expected.expect.read.end.of.file.",
-                "\u5E94\u4E3A{0}, \u8BFB\u53D6\u7684\u662F\u6587\u4EF6\u7ED3\u5C3E"},
-        {"expected.read.end.of.file", "\u5E94\u4E3A ';', \u8BFB\u53D6\u7684\u662F\u6587\u4EF6\u7ED3\u5C3E"},
-        {"line.", "\u884C "},
-        {".expected.", ": \u5E94\u4E3A '"},
-        {".found.", "', \u627E\u5230 '"},
-        {"QUOTE", "'"},
-
-        // SolarisPrincipals
-        {"SolarisNumericGroupPrincipal.Primary.Group.",
-                "SolarisNumericGroupPrincipal [\u4E3B\u7EC4]: "},
-        {"SolarisNumericGroupPrincipal.Supplementary.Group.",
-                "SolarisNumericGroupPrincipal [\u8865\u5145\u7EC4]: "},
-        {"SolarisNumericUserPrincipal.",
-                "SolarisNumericUserPrincipal: "},
-        {"SolarisPrincipal.", "SolarisPrincipal: "},
-        // provided.null.name is the NullPointerException message when a
-        // developer incorrectly passes a null name to the constructor of
-        // subclasses of java.security.Principal
-        {"provided.null.name", "\u63D0\u4F9B\u7684\u540D\u79F0\u4E3A\u7A7A\u503C"}
-
     };
 
     /**
--- a/jdk/src/java.base/share/classes/sun/security/util/AuthResources_zh_TW.java	Sun Aug 20 20:36:12 2017 -0700
+++ b/jdk/src/java.base/share/classes/sun/security/util/AuthResources_zh_TW.java	Mon Aug 21 14:05:10 2017 +0000
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -95,50 +95,6 @@
                 "Kerberos \u4F7F\u7528\u8005\u540D\u7A31 [{0}]: "},
         {"Kerberos.password.for.username.",
                 "Kerberos \u5BC6\u78BC {0}: "},
-
-        /***    EVERYTHING BELOW IS DEPRECATED  ***/
-
-        // com.sun.security.auth.PolicyFile
-        {".error.parsing.", ": \u5256\u6790\u932F\u8AA4 "},
-        {"COLON", ": "},
-        {".error.adding.Permission.", ": \u65B0\u589E\u6B0A\u9650\u932F\u8AA4 "},
-        {"SPACE", " "},
-        {".error.adding.Entry.", ": \u65B0\u589E\u8F38\u5165\u932F\u8AA4 "},
-        {"LPARAM", "("},
-        {"RPARAM", ")"},
-        {"attempt.to.add.a.Permission.to.a.readonly.PermissionCollection",
-            "\u8A66\u8457\u65B0\u589E\u6B0A\u9650\u81F3\u552F\u8B80\u7684 PermissionCollection"},
-
-        // com.sun.security.auth.PolicyParser
-        {"expected.keystore.type", "\u9810\u671F\u7684\u91D1\u9470\u5132\u5B58\u5EAB\u985E\u578B"},
-        {"can.not.specify.Principal.with.a.wildcard.class.without.a.wildcard.name",
-                "\u6C92\u6709\u842C\u7528\u5B57\u5143\u540D\u7A31\uFF0C\u7121\u6CD5\u6307\u5B9A\u542B\u6709\u842C\u7528\u5B57\u5143\u985E\u5225\u7684 Principal"},
-        {"expected.codeBase.or.SignedBy", "\u9810\u671F\u7684 codeBase \u6216 SignedBy"},
-        {"only.Principal.based.grant.entries.permitted",
-                "\u53EA\u5141\u8A31\u4EE5 Principal \u70BA\u57FA\u790E\u7684\u6388\u6B0A\u9805\u76EE"},
-        {"expected.permission.entry", "\u9810\u671F\u7684\u6B0A\u9650\u9805\u76EE"},
-        {"number.", "\u865F\u78BC "},
-        {"expected.expect.read.end.of.file.",
-                "\u9810\u671F\u70BA {0}, \u8B80\u53D6\u6A94\u6848\u7D50\u5C3E"},
-        {"expected.read.end.of.file", "\u9810\u671F\u7684 ';'\uFF0C\u8B80\u53D6\u6A94\u6848\u7D50\u5C3E"},
-        {"line.", "\u884C "},
-        {".expected.", ": \u9810\u671F '"},
-        {".found.", "'\uFF0C\u767C\u73FE '"},
-        {"QUOTE", "'"},
-
-        // SolarisPrincipals
-        {"SolarisNumericGroupPrincipal.Primary.Group.",
-                "SolarisNumericGroupPrincipal [\u4E3B\u7FA4\u7D44]: "},
-        {"SolarisNumericGroupPrincipal.Supplementary.Group.",
-                "SolarisNumericGroupPrincipal [\u9644\u52A0\u7FA4\u7D44]: "},
-        {"SolarisNumericUserPrincipal.",
-                "SolarisNumericUserPrincipal: "},
-        {"SolarisPrincipal.", "SolarisPrincipal: "},
-        // provided.null.name is the NullPointerException message when a
-        // developer incorrectly passes a null name to the constructor of
-        // subclasses of java.security.Principal
-        {"provided.null.name", "\u63D0\u4F9B\u7A7A\u503C\u540D\u7A31"}
-
     };
 
     /**
--- a/jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/PolicyFile.java	Sun Aug 20 20:36:12 2017 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,300 +0,0 @@
-/*
- * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.security.auth;
-
-import java.security.CodeSource;
-import java.security.PermissionCollection;
-import javax.security.auth.Subject;
-
-/**
- * This class represents a default implementation for
- * {@code javax.security.auth.Policy}.
- *
- * <p> This object stores the policy for entire Java runtime,
- * and is the amalgamation of multiple static policy
- * configurations that resides in files.
- * The algorithm for locating the policy file(s) and reading their
- * information into this {@code Policy} object is:
- *
- * <ol>
- * <li>
- *   Loop through the security properties,
- *   <i>auth.policy.url.1</i>, <i>auth.policy.url.2</i>, ...,
- *   <i>auth.policy.url.X</i>".
- *   Each property value specifies a {@code URL} pointing to a
- *   policy file to be loaded.  Read in and load each policy.
- *
- * <li>
- *   The {@code java.lang.System} property <i>java.security.auth.policy</i>
- *   may also be set to a {@code URL} pointing to another policy file
- *   (which is the case when a user uses the -D switch at runtime).
- *   If this property is defined, and its use is allowed by the
- *   security property file (the Security property,
- *   <i>policy.allowSystemProperty</i> is set to <i>true</i>),
- *   also load that policy.
- *
- * <li>
- *   If the <i>java.security.auth.policy</i> property is defined using
- *   "==" (rather than "="), then ignore all other specified
- *   policies and only load this policy.
- * </ol>
- *
- * Each policy file consists of one or more grant entries, each of
- * which consists of a number of permission entries.
- *
- * <pre>
- *   grant signedBy "<b>alias</b>", codeBase "<b>URL</b>",
- *         principal <b>principalClass</b> "<b>principalName</b>",
- *         principal <b>principalClass</b> "<b>principalName</b>",
- *         ... {
- *
- *     permission <b>Type</b> "<b>name</b> "<b>action</b>",
- *         signedBy "<b>alias</b>";
- *     permission <b>Type</b> "<b>name</b> "<b>action</b>",
- *         signedBy "<b>alias</b>";
- *     ....
- *   };
- * </pre>
- *
- * All non-bold items above must appear as is (although case
- * doesn't matter and some are optional, as noted below).
- * Italicized items represent variable values.
- *
- * <p> A grant entry must begin with the word {@code grant}.
- * The {@code signedBy} and {@code codeBase}
- * name/value pairs are optional.
- * If they are not present, then any signer (including unsigned code)
- * will match, and any codeBase will match.  Note that the
- * {@code principal} name/value pair is not optional.
- * This {@code Policy} implementation only permits
- * Principal-based grant entries.  Note that the <i>principalClass</i>
- * may be set to the wildcard value, *, which allows it to match
- * any {@code Principal} class.  In addition, the <i>principalName</i>
- * may also be set to the wildcard value, *, allowing it to match
- * any {@code Principal} name.  When setting the <i>principalName</i>
- * to the *, do not surround the * with quotes.
- *
- * <p> A permission entry must begin with the word {@code permission}.
- * The word <i>{@code Type}</i> in the template above is
- * a specific permission type, such as {@code java.io.FilePermission}
- * or {@code java.lang.RuntimePermission}.
- *
- * <p> The "<i>action</i>" is required for
- * many permission types, such as {@code java.io.FilePermission}
- * (where it specifies what type of file access that is permitted).
- * It is not required for categories such as
- * {@code java.lang.RuntimePermission}
- * where it is not necessary - you either have the
- * permission specified by the "<i>{@code name}</i>"
- * value following the type name or you don't.
- *
- * <p> The {@code signedBy} name/value pair for a permission entry
- * is optional. If present, it indicates a signed permission. That is,
- * the permission class itself must be signed by the given alias in
- * order for it to be granted. For example,
- * suppose you have the following grant entry:
- *
- * <pre>
- *   grant principal foo.com.Principal "Duke" {
- *     permission Foo "foobar", signedBy "FooSoft";
- *   }
- * </pre>
- *
- * <p> Then this permission of type <i>Foo</i> is granted if the
- * {@code Foo.class} permission has been signed by the
- * "FooSoft" alias, or if {@code Foo.class} is a
- * system class (i.e., is found on the CLASSPATH).
- *
- * <p> Items that appear in an entry must appear in the specified order
- * ({@code permission}, <i>Type</i>, "<i>name</i>", and
- * "<i>action</i>"). An entry is terminated with a semicolon.
- *
- * <p> Case is unimportant for the identifiers ({@code permission},
- * {@code signedBy}, {@code codeBase}, etc.) but is
- * significant for the <i>Type</i>
- * or for any string that is passed in as a value.
- *
- * <p> An example of two entries in a policy configuration file is
- * <pre>
- *   // if the code is comes from "foo.com" and is running as "Duke",
- *   // grant it read/write to all files in /tmp.
- *
- *   grant codeBase "foo.com", principal foo.com.Principal "Duke" {
- *              permission java.io.FilePermission "/tmp/*", "read,write";
- *   };
- *
- *   // grant any code running as "Duke" permission to read
- *   // the "java.vendor" Property.
- *
- *   grant principal foo.com.Principal "Duke" {
- *         permission java.util.PropertyPermission "java.vendor";
- * </pre>
- *
- * <p> This {@code Policy} implementation supports
- * special handling for PrivateCredentialPermissions.
- * If a grant entry is configured with a
- * {@code PrivateCredentialPermission},
- * and the "Principal Class/Principal Name" for that
- * {@code PrivateCredentialPermission} is "self",
- * then the entry grants the specified {@code Subject} permission to
- * access its own private Credential.  For example,
- * the following grants the {@code Subject} "Duke"
- * access to its own a.b.Credential.
- *
- * <pre>
- *   grant principal foo.com.Principal "Duke" {
- *      permission javax.security.auth.PrivateCredentialPermission
- *              "a.b.Credential self",
- *              "read";
- *    };
- * </pre>
- *
- * The following grants the {@code Subject} "Duke"
- * access to all of its own private Credentials:
- *
- * <pre>
- *   grant principal foo.com.Principal "Duke" {
- *      permission javax.security.auth.PrivateCredentialPermission
- *              "* self",
- *              "read";
- *    };
- * </pre>
- *
- * The following grants all Subjects authenticated as a
- * {@code SolarisPrincipal} (regardless of their respective names)
- * permission to access their own private Credentials:
- *
- * <pre>
- *   grant principal com.sun.security.auth.SolarisPrincipal * {
- *      permission javax.security.auth.PrivateCredentialPermission
- *              "* self",
- *              "read";
- *    };
- * </pre>
- *
- * The following grants all Subjects permission to access their own
- * private Credentials:
- *
- * <pre>
- *   grant principal * * {
- *      permission javax.security.auth.PrivateCredentialPermission
- *              "* self",
- *              "read";
- *    };
- * </pre>
-
- * @deprecated As of JDK&nbsp;1.4, replaced by
- *             {@code sun.security.provider.PolicyFile}.
- *             This class is entirely deprecated.
- * This class is subject to removal in a future version of Java SE.
- *
- * @see java.security.CodeSource
- * @see java.security.Permissions
- * @see java.security.ProtectionDomain
- * @see java.security.Security security properties
- */
-@Deprecated(since="1.4", forRemoval=true)
-public class PolicyFile extends javax.security.auth.Policy {
-
-    private final sun.security.provider.AuthPolicyFile apf;
-
-    /**
-     * Initializes the Policy object and reads the default policy
-     * configuration file(s) into the Policy object.
-     */
-    public PolicyFile() {
-        apf = new sun.security.provider.AuthPolicyFile();
-    }
-
-    /**
-     * Refreshes the policy object by re-reading all the policy files.
-     *
-     * @exception SecurityException if the caller doesn't have permission
-     *          to refresh the {@code Policy}.
-     */
-    @Override
-    public void refresh() {
-        apf.refresh();
-    }
-
-    /**
-     * Examines this {@code Policy} and returns the Permissions granted
-     * to the specified {@code Subject} and {@code CodeSource}.
-     *
-     * <p> Permissions for a particular <i>grant</i> entry are returned
-     * if the {@code CodeSource} constructed using the codebase and
-     * signedby values specified in the entry {@code implies}
-     * the {@code CodeSource} provided to this method, and if the
-     * {@code Subject} provided to this method contains all of the
-     * Principals specified in the entry.
-     *
-     * <p> The {@code Subject} provided to this method contains all
-     * of the Principals specified in the entry if, for each
-     * {@code Principal}, "P1", specified in the <i>grant</i> entry
-     * one of the following two conditions is met:
-     *
-     * <ol>
-     * <li> the {@code Subject} has a
-     *      {@code Principal}, "P2", where
-     *      {@code P2.getClass().getName()} equals the
-     *      P1's class name, and where
-     *      {@code P2.getName()} equals the P1's name.
-     *
-     * <li> P1 implements
-     *      {@code com.sun.security.auth.PrincipalComparator},
-     *      and {@code P1.implies} the provided {@code Subject}.
-     * </ol>
-     *
-     * <p> Note that this {@code Policy} implementation has
-     * special handling for PrivateCredentialPermissions.
-     * When this method encounters a {@code PrivateCredentialPermission}
-     * which specifies "self" as the {@code Principal} class and name,
-     * it does not add that {@code Permission} to the returned
-     * {@code PermissionCollection}.  Instead, it builds
-     * a new {@code PrivateCredentialPermission}
-     * for each {@code Principal} associated with the provided
-     * {@code Subject}.  Each new {@code PrivateCredentialPermission}
-     * contains the same Credential class as specified in the
-     * originally granted permission, as well as the Class and name
-     * for the respective {@code Principal}.
-     *
-     * @param subject the Permissions granted to this {@code Subject}
-     *          and the additionally provided {@code CodeSource}
-     *          are returned.
-     *
-     * @param codesource the Permissions granted to this {@code CodeSource}
-     *          and the additionally provided {@code Subject}
-     *          are returned.
-     *
-     * @return the Permissions granted to the provided {@code Subject}
-     *          {@code CodeSource}.
-     */
-    @Override
-    public PermissionCollection getPermissions(final Subject subject,
-                                               final CodeSource codesource) {
-        return apf.getPermissions(subject, codesource);
-    }
-}
--- a/jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/SolarisNumericGroupPrincipal.java	Sun Aug 20 20:36:12 2017 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,193 +0,0 @@
-/*
- * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.security.auth;
-
-import java.security.Principal;
-import static sun.security.util.ResourcesMgr.getAuthResourceString;
-
-/**
- * This class implements the {@code Principal} interface
- * and represents a user's Solaris group identification number (GID).
- *
- * <p> Principals such as this {@code SolarisNumericGroupPrincipal}
- * may be associated with a particular {@code Subject}
- * to augment that {@code Subject} with an additional
- * identity.  Refer to the {@code Subject} class for more information
- * on how to achieve this.  Authorization decisions can then be based upon
- * the Principals associated with a {@code Subject}.
-
- * @deprecated As of JDK&nbsp;1.4, replaced by
- *             {@link UnixNumericGroupPrincipal}.
- *             This class is entirely deprecated.
- * This class is subject to removal in a future version of Java SE.
- *
- * @see java.security.Principal
- * @see javax.security.auth.Subject
- */
-@Deprecated(since="1.4", forRemoval=true)
-public class SolarisNumericGroupPrincipal implements
-                                        Principal,
-                                        java.io.Serializable {
-
-    private static final long serialVersionUID = 2345199581042573224L;
-
-    /**
-     * @serial
-     */
-    private String name;
-
-    /**
-     * @serial
-     */
-    private boolean primaryGroup;
-
-    /**
-     * Create a {@code SolarisNumericGroupPrincipal} using a
-     * {@code String} representation of the user's
-     * group identification number (GID).
-     *
-     * @param name the user's group identification number (GID)
-     *                  for this user.
-     *
-     * @param primaryGroup true if the specified GID represents the
-     *                  primary group to which this user belongs.
-     *
-     * @exception NullPointerException if the {@code name}
-     *                  is {@code null}.
-     */
-    public SolarisNumericGroupPrincipal(String name, boolean primaryGroup) {
-        if (name == null)
-            throw new NullPointerException(getAuthResourceString("provided.null.name"));
-
-        this.name = name;
-        this.primaryGroup = primaryGroup;
-    }
-
-    /**
-     * Create a {@code SolarisNumericGroupPrincipal} using a
-     * long representation of the user's group identification number (GID).
-     *
-     * @param name the user's group identification number (GID) for this user
-     *                  represented as a long.
-     *
-     * @param primaryGroup true if the specified GID represents the
-     *                  primary group to which this user belongs.
-     *
-     */
-    public SolarisNumericGroupPrincipal(long name, boolean primaryGroup) {
-        this.name = Long.toString(name);
-        this.primaryGroup = primaryGroup;
-    }
-
-    /**
-     * Return the user's group identification number (GID) for this
-     * {@code SolarisNumericGroupPrincipal}.
-     *
-     * @return the user's group identification number (GID) for this
-     *          {@code SolarisNumericGroupPrincipal}
-     */
-    public String getName() {
-        return name;
-    }
-
-    /**
-     * Return the user's group identification number (GID) for this
-     * {@code SolarisNumericGroupPrincipal} as a long.
-     *
-     * @return the user's group identification number (GID) for this
-     *          {@code SolarisNumericGroupPrincipal} as a long.
-     */
-    public long longValue() {
-        return Long.parseLong(name);
-    }
-
-    /**
-     * Return whether this group identification number (GID) represents
-     * the primary group to which this user belongs.
-     *
-     * @return true if this group identification number (GID) represents
-     *          the primary group to which this user belongs,
-     *          or false otherwise.
-     */
-    public boolean isPrimaryGroup() {
-        return primaryGroup;
-    }
-
-    /**
-     * Return a string representation of this
-     * {@code SolarisNumericGroupPrincipal}.
-     *
-     * @return a string representation of this
-     *          {@code SolarisNumericGroupPrincipal}.
-     */
-    public String toString() {
-        return primaryGroup ?
-            getAuthResourceString
-            ("SolarisNumericGroupPrincipal.Primary.Group.") + name :
-            getAuthResourceString
-            ("SolarisNumericGroupPrincipal.Supplementary.Group.") + name;
-    }
-
-    /**
-     * Compares the specified Object with this
-     * {@code SolarisNumericGroupPrincipal}
-     * for equality.  Returns true if the given object is also a
-     * {@code SolarisNumericGroupPrincipal} and the two
-     * SolarisNumericGroupPrincipals
-     * have the same group identification number (GID).
-     *
-     * @param o Object to be compared for equality with this
-     *          {@code SolarisNumericGroupPrincipal}.
-     *
-     * @return true if the specified Object is equal to this
-     *          {@code SolarisNumericGroupPrincipal}.
-     */
-    public boolean equals(Object o) {
-        if (o == null)
-            return false;
-
-        if (this == o)
-            return true;
-
-        if (!(o instanceof SolarisNumericGroupPrincipal))
-            return false;
-        SolarisNumericGroupPrincipal that = (SolarisNumericGroupPrincipal)o;
-
-        if (this.getName().equals(that.getName()) &&
-            this.isPrimaryGroup() == that.isPrimaryGroup())
-            return true;
-        return false;
-    }
-
-    /**
-     * Return a hash code for this {@code SolarisNumericGroupPrincipal}.
-     *
-     * @return a hash code for this {@code SolarisNumericGroupPrincipal}.
-     */
-    public int hashCode() {
-        return toString().hashCode();
-    }
-}
--- a/jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/SolarisNumericUserPrincipal.java	Sun Aug 20 20:36:12 2017 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,161 +0,0 @@
-/*
- * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.security.auth;
-
-import java.security.Principal;
-import static sun.security.util.ResourcesMgr.getAuthResourceString;
-
-/**
- * This class implements the {@code Principal} interface
- * and represents a user's Solaris identification number (UID).
- *
- * <p> Principals such as this {@code SolarisNumericUserPrincipal}
- * may be associated with a particular {@code Subject}
- * to augment that {@code Subject} with an additional
- * identity.  Refer to the {@code Subject} class for more information
- * on how to achieve this.  Authorization decisions can then be based upon
- * the Principals associated with a {@code Subject}.
- * @deprecated As of JDK&nbsp;1.4, replaced by
- *             {@link UnixNumericUserPrincipal}.
- *             This class is entirely deprecated.
- * This class is subject to removal in a future version of Java SE.
- *
- * @see java.security.Principal
- * @see javax.security.auth.Subject
- */
-@Deprecated(since="1.4", forRemoval=true)
-public class SolarisNumericUserPrincipal implements
-                                        Principal,
-                                        java.io.Serializable {
-
-    private static final long serialVersionUID = -3178578484679887104L;
-
-    /**
-     * @serial
-     */
-    private String name;
-
-    /**
-     * Create a {@code SolarisNumericUserPrincipal} using a
-     * {@code String} representation of the
-     * user's identification number (UID).
-     *
-     * @param name the user identification number (UID) for this user.
-     *
-     * @exception NullPointerException if the {@code name}
-     *                  is {@code null}.
-     */
-    public SolarisNumericUserPrincipal(String name) {
-        if (name == null)
-            throw new NullPointerException(getAuthResourceString("provided.null.name"));
-
-        this.name = name;
-    }
-
-    /**
-     * Create a {@code SolarisNumericUserPrincipal} using a
-     * long representation of the user's identification number (UID).
-     *
-     * @param name the user identification number (UID) for this user
-     *                  represented as a long.
-     */
-    public SolarisNumericUserPrincipal(long name) {
-        this.name = Long.toString(name);
-    }
-
-    /**
-     * Return the user identification number (UID) for this
-     * {@code SolarisNumericUserPrincipal}.
-     *
-     * @return the user identification number (UID) for this
-     *          {@code SolarisNumericUserPrincipal}
-     */
-    public String getName() {
-        return name;
-    }
-
-    /**
-     * Return the user identification number (UID) for this
-     * {@code SolarisNumericUserPrincipal} as a long.
-     *
-     * @return the user identification number (UID) for this
-     *          {@code SolarisNumericUserPrincipal} as a long.
-     */
-    public long longValue() {
-        return Long.parseLong(name);
-    }
-
-    /**
-     * Return a string representation of this
-     * {@code SolarisNumericUserPrincipal}.
-     *
-     * @return a string representation of this
-     *          {@code SolarisNumericUserPrincipal}.
-     */
-    public String toString() {
-        return(getAuthResourceString("SolarisNumericUserPrincipal.") + name);
-    }
-
-    /**
-     * Compares the specified Object with this
-     * {@code SolarisNumericUserPrincipal}
-     * for equality.  Returns true if the given object is also a
-     * {@code SolarisNumericUserPrincipal} and the two
-     * SolarisNumericUserPrincipals
-     * have the same user identification number (UID).
-     *
-     * @param o Object to be compared for equality with this
-     *          {@code SolarisNumericUserPrincipal}.
-     *
-     * @return true if the specified Object is equal to this
-     *          {@code SolarisNumericUserPrincipal}.
-     */
-    public boolean equals(Object o) {
-        if (o == null)
-            return false;
-
-        if (this == o)
-            return true;
-
-        if (!(o instanceof SolarisNumericUserPrincipal))
-            return false;
-        SolarisNumericUserPrincipal that = (SolarisNumericUserPrincipal)o;
-
-        if (this.getName().equals(that.getName()))
-            return true;
-
-       return false;
-    }
-
-    /**
-     * Return a hash code for this {@code SolarisNumericUserPrincipal}.
-     *
-     * @return a hash code for this {@code SolarisNumericUserPrincipal}.
-     */
-    public int hashCode() {
-        return name.hashCode();
-    }
-}
--- a/jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/SolarisPrincipal.java	Sun Aug 20 20:36:12 2017 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,129 +0,0 @@
-/*
- * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.security.auth;
-
-import java.security.Principal;
-import static sun.security.util.ResourcesMgr.getAuthResourceString;
-
-
-/**
- * This class implements the {@code Principal} interface
- * and represents a Solaris user.
- *
- * <p> Principals such as this {@code SolarisPrincipal}
- * may be associated with a particular {@code Subject}
- * to augment that {@code Subject} with an additional
- * identity.  Refer to the {@code Subject} class for more information
- * on how to achieve this.  Authorization decisions can then be based upon
- * the Principals associated with a {@code Subject}.
- *
- * @deprecated As of JDK&nbsp;1.4, replaced by
- *             {@link UnixPrincipal}.
- *             This class is entirely deprecated.
- * This class is subject to removal in a future version of Java SE.
- * @see java.security.Principal
- * @see javax.security.auth.Subject
- */
-@Deprecated(since="1.4", forRemoval=true)
-public class SolarisPrincipal implements Principal, java.io.Serializable {
-
-    private static final long serialVersionUID = -7840670002439379038L;
-
-    /**
-     * @serial
-     */
-    private String name;
-
-    /**
-     * Create a SolarisPrincipal with a Solaris username.
-     *
-     * @param name the Unix username for this user.
-     *
-     * @exception NullPointerException if the {@code name}
-     *                  is {@code null}.
-     */
-    public SolarisPrincipal(String name) {
-        if (name == null)
-            throw new NullPointerException(getAuthResourceString("provided.null.name"));
-
-        this.name = name;
-    }
-
-    /**
-     * Return the Unix username for this {@code SolarisPrincipal}.
-     *
-     * @return the Unix username for this {@code SolarisPrincipal}
-     */
-    public String getName() {
-        return name;
-    }
-
-    /**
-     * Return a string representation of this {@code SolarisPrincipal}.
-     *
-     * @return a string representation of this {@code SolarisPrincipal}.
-     */
-    public String toString() {
-        return(getAuthResourceString("SolarisPrincipal.") + name);
-    }
-
-    /**
-     * Compares the specified Object with this {@code SolarisPrincipal}
-     * for equality.  Returns true if the given object is also a
-     * {@code SolarisPrincipal} and the two SolarisPrincipals
-     * have the same username.
-     *
-     * @param o Object to be compared for equality with this
-     *          {@code SolarisPrincipal}.
-     *
-     * @return true if the specified Object is equal to this
-     *          {@code SolarisPrincipal}.
-     */
-    public boolean equals(Object o) {
-        if (o == null)
-            return false;
-
-        if (this == o)
-            return true;
-
-        if (!(o instanceof SolarisPrincipal))
-            return false;
-        SolarisPrincipal that = (SolarisPrincipal)o;
-
-        if (this.getName().equals(that.getName()))
-            return true;
-        return false;
-    }
-
-    /**
-     * Return a hash code for this {@code SolarisPrincipal}.
-     *
-     * @return a hash code for this {@code SolarisPrincipal}.
-     */
-    public int hashCode() {
-        return name.hashCode();
-    }
-}
--- a/jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/X500Principal.java	Sun Aug 20 20:36:12 2017 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,167 +0,0 @@
-/*
- * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.security.auth;
-
-import java.security.Principal;
-import sun.security.x509.X500Name;
-import static sun.security.util.ResourcesMgr.getAuthResourceString;
-
-/**
- * This class represents an X.500 {@code Principal}.
- * X500Principals have names such as,
- * "CN=Duke, OU=JavaSoft, O=Sun Microsystems, C=US"
- * (RFC 1779 style).
- *
- * <p> Principals such as this {@code X500Principal}
- * may be associated with a particular {@code Subject}
- * to augment that {@code Subject} with an additional
- * identity.  Refer to the {@code Subject} class for more information
- * on how to achieve this.  Authorization decisions can then be based upon
- * the Principals associated with a {@code Subject}.
- *
- * @see java.security.Principal
- * @see javax.security.auth.Subject
- * @deprecated A new X500Principal class is available in the Java platform.
- *             This X500Principal classs is entirely deprecated and
- *             is here to allow for a smooth transition to the new
- *             class.
- * This class is subject to removal in a future version of Java SE.
- * @see javax.security.auth.x500.X500Principal
-*/
-@Deprecated(since="1.4", forRemoval=true)
-public class X500Principal implements Principal, java.io.Serializable {
-
-    private static final long serialVersionUID = -8222422609431628648L;
-
-    /**
-     * @serial
-     */
-    private String name;
-
-    transient private X500Name thisX500Name;
-
-    /**
-     * Create a X500Principal with an X.500 Name,
-     * such as "CN=Duke, OU=JavaSoft, O=Sun Microsystems, C=US"
-     * (RFC 1779 style).
-     *
-     * @param name the X.500 name
-     *
-     * @exception NullPointerException if the {@code name}
-     *                  is {@code null}.
-     *
-     * @exception IllegalArgumentException if the {@code name}
-     *                  is improperly specified.
-     */
-    public X500Principal(String name) {
-        if (name == null)
-            throw new NullPointerException(getAuthResourceString("provided.null.name"));
-
-        try {
-            thisX500Name = new X500Name(name);
-        } catch (Exception e) {
-            throw new IllegalArgumentException(e.toString());
-        }
-
-        this.name = name;
-    }
-
-    /**
-     * Return the Unix username for this {@code X500Principal}.
-     *
-     * @return the Unix username for this {@code X500Principal}
-     */
-    public String getName() {
-        return thisX500Name.getName();
-    }
-
-    /**
-     * Return a string representation of this {@code X500Principal}.
-     *
-     * @return a string representation of this {@code X500Principal}.
-     */
-    public String toString() {
-        return thisX500Name.toString();
-    }
-
-    /**
-     * Compares the specified Object with this {@code X500Principal}
-     * for equality.
-     *
-     * @param o Object to be compared for equality with this
-     *          {@code X500Principal}.
-     *
-     * @return true if the specified Object is equal to this
-     *          {@code X500Principal}.
-     */
-    public boolean equals(Object o) {
-        if (o == null)
-            return false;
-
-        if (this == o)
-            return true;
-
-        if (o instanceof X500Principal) {
-            X500Principal that = (X500Principal)o;
-            try {
-                X500Name thatX500Name = new X500Name(that.getName());
-                return thisX500Name.equals(thatX500Name);
-            } catch (Exception e) {
-                // any parsing exceptions, return false
-                return false;
-            }
-        } else if (o instanceof Principal) {
-            // this will return 'true' if 'o' is a sun.security.x509.X500Name
-            // and the X500Names are equal
-            return o.equals(thisX500Name);
-        }
-
-        return false;
-    }
-
-    /**
-     * Return a hash code for this {@code X500Principal}.
-     *
-     * @return a hash code for this {@code X500Principal}.
-     */
-    public int hashCode() {
-        return thisX500Name.hashCode();
-    }
-
-    /**
-     * Reads this object from a stream (i.e., deserializes it)
-     */
-    private void readObject(java.io.ObjectInputStream s) throws
-                                        java.io.IOException,
-                                        java.io.NotActiveException,
-                                        ClassNotFoundException {
-
-        s.defaultReadObject();
-
-        // re-create thisX500Name
-        thisX500Name = new X500Name(name);
-    }
-}
--- a/jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/module/SolarisLoginModule.java	Sun Aug 20 20:36:12 2017 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,313 +0,0 @@
-/*
- * Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.security.auth.module;
-
-import java.util.*;
-import java.io.IOException;
-import javax.security.auth.*;
-import javax.security.auth.callback.*;
-import javax.security.auth.login.*;
-import javax.security.auth.spi.*;
-import com.sun.security.auth.SolarisPrincipal;
-import com.sun.security.auth.SolarisNumericUserPrincipal;
-import com.sun.security.auth.SolarisNumericGroupPrincipal;
-
-/**
- * This {@code LoginModule} imports a user's Solaris
- * {@code Principal} information ({@code SolarisPrincipal},
- * {@code SolarisNumericUserPrincipal},
- * and {@code SolarisNumericGroupPrincipal})
- * and associates them with the current {@code Subject}.
- *
- * <p> This LoginModule recognizes the debug option.
- * If set to true in the login Configuration,
- * debug messages will be output to the output stream, System.out.
- * @deprecated  As of JDK1.4, replaced by
- * {@code com.sun.security.auth.module.UnixLoginModule}.
- *             This LoginModule is entirely deprecated and
- *             is here to allow for a smooth transition to the new
- *             UnixLoginModule.
- * This class is subject to removal in a future version of Java SE.
- *
- */
-@Deprecated(since="1.4", forRemoval=true)
-public class SolarisLoginModule implements LoginModule {
-
-    // initial state
-    private Subject subject;
-    private CallbackHandler callbackHandler;
-    private Map<String, ?> sharedState;
-    private Map<String, ?> options;
-
-    // configurable option
-    private boolean debug = true;
-
-    // SolarisSystem to retrieve underlying system info
-    @SuppressWarnings("removal")
-    private SolarisSystem ss;
-
-    // the authentication status
-    private boolean succeeded = false;
-    private boolean commitSucceeded = false;
-
-    // Underlying system info
-    @SuppressWarnings("removal")
-    private SolarisPrincipal userPrincipal;
-    @SuppressWarnings("removal")
-    private SolarisNumericUserPrincipal UIDPrincipal;
-    @SuppressWarnings("removal")
-    private SolarisNumericGroupPrincipal GIDPrincipal;
-    @SuppressWarnings("removal")
-    private LinkedList<SolarisNumericGroupPrincipal> supplementaryGroups =
-                new LinkedList<>();
-
-    /**
-     * Initialize this {@code LoginModule}.
-     *
-     * @param subject the {@code Subject} to be authenticated.
-     *
-     * @param callbackHandler a {@code CallbackHandler} for communicating
-     *                  with the end user (prompting for usernames and
-     *                  passwords, for example).
-     *
-     * @param sharedState shared {@code LoginModule} state.
-     *
-     * @param options options specified in the login
-     *                  {@code Configuration} for this particular
-     *                  {@code LoginModule}.
-     */
-    public void initialize(Subject subject, CallbackHandler callbackHandler,
-                           Map<String,?> sharedState,
-                           Map<String,?> options)
-    {
-
-        this.subject = subject;
-        this.callbackHandler = callbackHandler;
-        this.sharedState = sharedState;
-        this.options = options;
-
-        // initialize any configured options
-        debug = "true".equalsIgnoreCase((String)options.get("debug"));
-    }
-
-    /**
-     * Authenticate the user (first phase).
-     *
-     * <p> The implementation of this method attempts to retrieve the user's
-     * Solaris {@code Subject} information by making a native Solaris
-     * system call.
-     *
-     * @exception FailedLoginException if attempts to retrieve the underlying
-     *          system information fail.
-     *
-     * @return true in all cases (this {@code LoginModule}
-     *          should not be ignored).
-     */
-    @SuppressWarnings("removal")
-    public boolean login() throws LoginException {
-
-        long[] solarisGroups = null;
-
-        try {
-            ss = new SolarisSystem();
-        } catch (UnsatisfiedLinkError ule) {
-            succeeded = false;
-            throw new FailedLoginException
-                                ("Failed in attempt to import " +
-                                "the underlying system identity information" +
-                                " on " + System.getProperty("os.name"));
-        }
-        userPrincipal = new SolarisPrincipal(ss.getUsername());
-        UIDPrincipal = new SolarisNumericUserPrincipal(ss.getUid());
-        GIDPrincipal = new SolarisNumericGroupPrincipal(ss.getGid(), true);
-        if (ss.getGroups() != null && ss.getGroups().length > 0)
-            solarisGroups = ss.getGroups();
-            for (int i = 0; i < solarisGroups.length; i++) {
-                SolarisNumericGroupPrincipal ngp =
-                    new SolarisNumericGroupPrincipal
-                    (solarisGroups[i], false);
-                if (!ngp.getName().equals(GIDPrincipal.getName()))
-                    supplementaryGroups.add(ngp);
-            }
-        if (debug) {
-            System.out.println("\t\t[SolarisLoginModule]: " +
-                    "succeeded importing info: ");
-            System.out.println("\t\t\tuid = " + ss.getUid());
-            System.out.println("\t\t\tgid = " + ss.getGid());
-            solarisGroups = ss.getGroups();
-            for (int i = 0; i < solarisGroups.length; i++) {
-                System.out.println("\t\t\tsupp gid = " + solarisGroups[i]);
-            }
-        }
-        succeeded = true;
-        return true;
-    }
-
-    /**
-     * Commit the authentication (second phase).
-     *
-     * <p> This method is called if the LoginContext's
-     * overall authentication succeeded
-     * (the relevant REQUIRED, REQUISITE, SUFFICIENT and OPTIONAL LoginModules
-     * succeeded).
-     *
-     * <p> If this LoginModule's own authentication attempt
-     * succeeded (the importing of the Solaris authentication information
-     * succeeded), then this method associates the Solaris Principals
-     * with the {@code Subject} currently tied to the
-     * {@code LoginModule}.  If this LoginModule's
-     * authentication attempted failed, then this method removes
-     * any state that was originally saved.
-     *
-     * @exception LoginException if the commit fails
-     *
-     * @return true if this LoginModule's own login and commit attempts
-     *          succeeded, or false otherwise.
-     */
-    public boolean commit() throws LoginException {
-        if (succeeded == false) {
-            if (debug) {
-                System.out.println("\t\t[SolarisLoginModule]: " +
-                    "did not add any Principals to Subject " +
-                    "because own authentication failed.");
-            }
-            return false;
-        }
-        if (subject.isReadOnly()) {
-            throw new LoginException ("Subject is Readonly");
-        }
-        if (!subject.getPrincipals().contains(userPrincipal))
-            subject.getPrincipals().add(userPrincipal);
-        if (!subject.getPrincipals().contains(UIDPrincipal))
-            subject.getPrincipals().add(UIDPrincipal);
-        if (!subject.getPrincipals().contains(GIDPrincipal))
-            subject.getPrincipals().add(GIDPrincipal);
-        for (int i = 0; i < supplementaryGroups.size(); i++) {
-            if (!subject.getPrincipals().contains(supplementaryGroups.get(i)))
-                subject.getPrincipals().add(supplementaryGroups.get(i));
-        }
-
-        if (debug) {
-            System.out.println("\t\t[SolarisLoginModule]: " +
-                               "added SolarisPrincipal,");
-            System.out.println("\t\t\t\tSolarisNumericUserPrincipal,");
-            System.out.println("\t\t\t\tSolarisNumericGroupPrincipal(s),");
-            System.out.println("\t\t\t to Subject");
-        }
-
-        commitSucceeded = true;
-        return true;
-    }
-
-
-    /**
-     * Abort the authentication (second phase).
-     *
-     * <p> This method is called if the LoginContext's
-     * overall authentication failed.
-     * (the relevant REQUIRED, REQUISITE, SUFFICIENT and OPTIONAL LoginModules
-     * did not succeed).
-     *
-     * <p> This method cleans up any state that was originally saved
-     * as part of the authentication attempt from the {@code login}
-     * and {@code commit} methods.
-     *
-     * @exception LoginException if the abort fails
-     *
-     * @return false if this LoginModule's own login and/or commit attempts
-     *          failed, and true otherwise.
-     */
-    @SuppressWarnings("removal")
-    public boolean abort() throws LoginException {
-        if (debug) {
-            System.out.println("\t\t[SolarisLoginModule]: " +
-                "aborted authentication attempt");
-        }
-
-        if (succeeded == false) {
-            return false;
-        } else if (succeeded == true && commitSucceeded == false) {
-
-            // Clean out state
-            succeeded = false;
-            ss = null;
-            userPrincipal = null;
-            UIDPrincipal = null;
-            GIDPrincipal = null;
-            supplementaryGroups =
-                        new LinkedList<SolarisNumericGroupPrincipal>();
-        } else {
-            // overall authentication succeeded and commit succeeded,
-            // but someone else's commit failed
-            logout();
-        }
-        return true;
-    }
-
-    /**
-     * Logout the user
-     *
-     * <p> This method removes the Principals associated
-     * with the {@code Subject}.
-     *
-     * @exception LoginException if the logout fails
-     *
-     * @return true in all cases (this {@code LoginModule}
-     *          should not be ignored).
-     */
-    @SuppressWarnings("removal")
-    public boolean logout() throws LoginException {
-        if (debug) {
-            System.out.println("\t\t[SolarisLoginModule]: " +
-                "Entering logout");
-        }
-        if (subject.isReadOnly()) {
-            throw new LoginException ("Subject is Readonly");
-        }
-        // remove the added Principals from the Subject
-        subject.getPrincipals().remove(userPrincipal);
-        subject.getPrincipals().remove(UIDPrincipal);
-        subject.getPrincipals().remove(GIDPrincipal);
-        for (int i = 0; i < supplementaryGroups.size(); i++) {
-            subject.getPrincipals().remove(supplementaryGroups.get(i));
-        }
-
-        // clean out state
-        ss = null;
-        succeeded = false;
-        commitSucceeded = false;
-        userPrincipal = null;
-        UIDPrincipal = null;
-        GIDPrincipal = null;
-        supplementaryGroups = new LinkedList<SolarisNumericGroupPrincipal>();
-
-        if (debug) {
-            System.out.println("\t\t[SolarisLoginModule]: " +
-                "logged out Subject");
-        }
-        return true;
-    }
-}
--- a/jdk/src/jdk.security.auth/share/classes/com/sun/security/auth/module/SolarisSystem.java	Sun Aug 20 20:36:12 2017 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,89 +0,0 @@
-/*
- * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.security.auth.module;
-
-/**
- * This class implementation retrieves and makes available Solaris
- * UID/GID/groups information for the current user.
- *
- * @deprecated replaced by {@link UnixSystem}.
- * This class is subject to removal in a future version of Java SE.
- */
-@Deprecated(since="1.4", forRemoval=true)
-public class SolarisSystem {
-
-    private native void getSolarisInfo();
-
-    protected String username;
-    protected long uid;
-    protected long gid;
-    protected long[] groups;
-
-    /**
-     * Instantiate a {@code SolarisSystem} and load
-     * the native library to access the underlying system information.
-     */
-    public SolarisSystem() {
-        System.loadLibrary("jaas_unix");
-        getSolarisInfo();
-    }
-
-    /**
-     * Get the username for the current Solaris user.
-     *
-     * @return the username for the current Solaris user.
-     */
-    public String getUsername() {
-        return username;
-    }
-
-    /**
-     * Get the UID for the current Solaris user.
-     *
-     * @return the UID for the current Solaris user.
-     */
-    public long getUid() {
-        return uid;
-    }
-
-    /**
-     * Get the GID for the current Solaris user.
-     *
-     * @return the GID for the current Solaris user.
-     */
-    public long getGid() {
-        return gid;
-    }
-
-    /**
-     * Get the supplementary groups for the current Solaris user.
-     *
-     * @return the supplementary groups for the current Solaris user.
-     */
-    public long[] getGroups() {
-        return groups == null ? null : groups.clone();
-    }
-}
--- a/jdk/src/jdk.security.auth/solaris/native/libjaas/Solaris.c	Sun Aug 20 20:36:12 2017 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,152 +0,0 @@
-/*
- * Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-#include <jni.h>
-#include "com_sun_security_auth_module_SolarisSystem.h"
-#include <stdio.h>
-#include <unistd.h>
-#include <stdlib.h>
-#include <string.h>
-
-/* For POSIX-compliant getpwuid_r on Solaris */
-#if defined(__solaris__)
-#define _POSIX_PTHREAD_SEMANTICS
-#endif
-#include <pwd.h>
-
-static void throwIllegalArgumentException(JNIEnv *env, const char *msg) {
-    jclass clazz = (*env)->FindClass(env, "java/lang/IllegalArgumentException");
-    if (clazz != NULL)
-        (*env)->ThrowNew(env, clazz, msg);
-}
-
-JNIEXPORT void JNICALL
-Java_com_sun_security_auth_module_SolarisSystem_getSolarisInfo
-                                                (JNIEnv *env, jobject obj) {
-
-    int i;
-    long pwd_bufsize;
-    char *pwd_buf = NULL;
-    struct passwd pwd;
-    struct passwd* p = NULL;
-    jsize numSuppGroups = getgroups(0, NULL);
-    jfieldID fid;
-    jstring jstr;
-    jlongArray jgroups;
-    jlong *jgroupsAsArray;
-    gid_t *groups;
-    jclass cls;
-
-    pwd_bufsize = sysconf(_SC_GETPW_R_SIZE_MAX);
-    if (pwd_bufsize == -1) {
-        pwd_bufsize = 1024;
-    }
-    pwd_buf = (char *)malloc(pwd_bufsize);
-    groups = (gid_t *)calloc(numSuppGroups, sizeof(gid_t));
-
-    if (pwd_buf == NULL || groups == NULL) {
-        if (pwd_buf != NULL) {
-            free(pwd_buf);
-        }
-        if (groups != NULL) {
-            free(groups);
-        }
-        cls = (*env)->FindClass(env,"java/lang/OutOfMemoryError");
-        if (cls != NULL) {
-            (*env)->ThrowNew(env, cls, NULL);
-        }
-        return;
-    }
-
-    cls = (*env)->GetObjectClass(env, obj);
-
-    if (getpwuid_r(getuid(), &pwd, pwd_buf, sizeof(pwd_buf), &p) != 0 &&
-        p != NULL && getgroups(numSuppGroups, groups) != -1) {
-
-        /*
-         * set username
-         */
-        fid = (*env)->GetFieldID(env, cls, "username", "Ljava/lang/String;");
-        if (fid == 0) {
-            (*env)->ExceptionClear(env);
-            throwIllegalArgumentException(env, "invalid field: username");
-            goto cleanupAndReturn;
-        }
-        jstr = (*env)->NewStringUTF(env, pwd.pw_name);
-        if (jstr == NULL) {
-            goto cleanupAndReturn;
-        }
-        (*env)->SetObjectField(env, obj, fid, jstr);
-
-        /*
-         * set uid
-         */
-        fid = (*env)->GetFieldID(env, cls, "uid", "J");
-        if (fid == 0) {
-            (*env)->ExceptionClear(env);
-            throwIllegalArgumentException(env, "invalid field: uid");
-            goto cleanupAndReturn;
-        }
-        (*env)->SetLongField(env, obj, fid, pwd.pw_uid);
-
-        /*
-         * set gid
-         */
-        fid = (*env)->GetFieldID(env, cls, "gid", "J");
-        if (fid == 0) {
-            (*env)->ExceptionClear(env);
-            throwIllegalArgumentException(env, "invalid field: gid");
-            goto cleanupAndReturn;
-        }
-        (*env)->SetLongField(env, obj, fid, pwd.pw_gid);
-
-        /*
-         * set supplementary groups
-         */
-        fid = (*env)->GetFieldID(env, cls, "groups", "[J");
-        if (fid == 0) {
-            (*env)->ExceptionClear(env);
-            throwIllegalArgumentException(env, "invalid field: groups");
-            goto cleanupAndReturn;
-        }
-
-        jgroups = (*env)->NewLongArray(env, numSuppGroups);
-        if (jgroups == NULL) {
-            goto cleanupAndReturn;
-        }
-        jgroupsAsArray = (*env)->GetLongArrayElements(env, jgroups, 0);
-        if (jgroupsAsArray == NULL) {
-            goto cleanupAndReturn;
-        }
-        for (i = 0; i < numSuppGroups; i++)
-            jgroupsAsArray[i] = groups[i];
-        (*env)->ReleaseLongArrayElements(env, jgroups, jgroupsAsArray, 0);
-        (*env)->SetObjectField(env, obj, fid, jgroups);
-    }
-cleanupAndReturn:
-    free(pwd_buf);
-    free(groups);
-    return;
-}
--- a/jdk/test/javax/security/auth/PrivateCredentialPermission/Subset.java	Sun Aug 20 20:36:12 2017 -0700
+++ b/jdk/test/javax/security/auth/PrivateCredentialPermission/Subset.java	Mon Aug 21 14:05:10 2017 +0000
@@ -34,7 +34,7 @@
 import java.util.HashSet;
 import java.util.Iterator;
 import java.util.Set;
-import com.sun.security.auth.SolarisPrincipal;
+import com.sun.security.auth.UnixPrincipal;
 import javax.security.auth.Subject;
 
 /*
@@ -46,7 +46,7 @@
  *    permission javax.security.auth.AuthPermission \
  *              "modifyPrivateCredentials";
  *    permission javax.security.auth.PrivateCredentialPermission \
- * "java.lang.String com.sun.security.auth.SolarisPrincipal \"user"", "read";
+ * "java.lang.String com.sun.security.auth.UnixPrincipal \"user"", "read";
  * };
 
  * The test verifies the following:
@@ -71,7 +71,7 @@
         HashSet creds = new HashSet();
         Subject emptys =
             new Subject(false,  //readOnly
-                        Collections.singleton(new SolarisPrincipal("user")),
+                        Collections.singleton(new UnixPrincipal("user")),
                         Collections.EMPTY_SET,
                         creds);
         /* Test principals */
@@ -104,7 +104,7 @@
         creds.add(Boolean.TRUE);
         Subject sremove =
             new Subject(false,  //readOnly
-                        Collections.singleton(new SolarisPrincipal("user")),
+                        Collections.singleton(new UnixPrincipal("user")),
                         Collections.EMPTY_SET,
                         creds);
         Set p2 = sremove.getPrivateCredentials();
@@ -184,7 +184,7 @@
         creds1.add(new String("Exists"));
         Subject scontain =
             new Subject(false,  //readOnly
-                        Collections.singleton(new SolarisPrincipal("user")),
+                        Collections.singleton(new UnixPrincipal("user")),
                         Collections.EMPTY_SET,
                         creds1);
         p2 = scontain.getPrivateCredentials();
@@ -237,7 +237,7 @@
         creds2.add("ghi");
         Subject sstring =
             new Subject(false,  //readOnly
-                        Collections.singleton(new SolarisPrincipal("user")),
+                        Collections.singleton(new UnixPrincipal("user")),
                         Collections.EMPTY_SET,
                         creds2);
         p2 = sstring.getPrivateCredentials();
@@ -262,7 +262,7 @@
         creds4.add("Exists");
         Subject scontain1 =
             new Subject(false,  //readOnly
-                        Collections.singleton(new SolarisPrincipal("user")),
+                        Collections.singleton(new UnixPrincipal("user")),
                         Collections.EMPTY_SET,
                         creds4);
         Set p3 = scontain1.getPrivateCredentials();
@@ -462,7 +462,7 @@
         creds.add(new Integer(1));
         Subject s =
             new Subject(false,  //readOnly
-                        Collections.singleton(new SolarisPrincipal("user")),
+                        Collections.singleton(new UnixPrincipal("user")),
                         Collections.EMPTY_SET,
                         creds);
         try {
--- a/jdk/test/javax/security/auth/PrivateCredentialPermission/Subset.policy	Sun Aug 20 20:36:12 2017 -0700
+++ b/jdk/test/javax/security/auth/PrivateCredentialPermission/Subset.policy	Mon Aug 21 14:05:10 2017 +0000
@@ -6,5 +6,5 @@
 grant {
      permission javax.security.auth.AuthPermission "modifyPrivateCredentials";
      permission javax.security.auth.AuthPermission "modifyPublicCredentials";
-     permission	javax.security.auth.PrivateCredentialPermission "java.lang.String com.sun.security.auth.SolarisPrincipal \"user\"", "read";
+     permission	javax.security.auth.PrivateCredentialPermission "java.lang.String com.sun.security.auth.UnixPrincipal \"user\"", "read";
 };
--- a/jdk/test/sun/security/provider/PolicyFile/Comparator.java	Sun Aug 20 20:36:12 2017 -0700
+++ b/jdk/test/sun/security/provider/PolicyFile/Comparator.java	Mon Aug 21 14:05:10 2017 +0000
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2004, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2004, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -42,7 +42,6 @@
 import sun.security.provider.PolicyFile;
 import com.sun.security.auth.UnixPrincipal;
 import com.sun.security.auth.NTUserPrincipal;
-import com.sun.security.auth.SolarisPrincipal;
 
 public class Comparator {
 
@@ -88,7 +87,7 @@
                                 new X500Principal("cn=x500") };
 
     private static final Principal[] badP = new Principal[] {
-                                new SolarisPrincipal("bad") };
+                                new UnixPrincipal("bad") };
 
     public static class PCompare1 implements Principal {