8159544: Remove deprecated classes in com.sun.security.auth.**
Reviewed-by: jlahoda, vinnie, weijun
This commit is contained in:
parent
d46142923c
commit
f36db2dd00
jdk
make/mapfiles/libjaas
src
java.base/share/classes
javax/security/auth
sun/security/util
jdk.security.auth
share/classes/com/sun/security/auth
PolicyFile.javaSolarisNumericGroupPrincipal.javaSolarisNumericUserPrincipal.javaSolarisPrincipal.javaX500Principal.java
module
solaris/native/libjaas
test
javax/security/auth/PrivateCredentialPermission
sun/security/provider/PolicyFile
@ -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:
|
||||
*;
|
||||
|
@ -82,13 +82,13 @@ import sun.security.util.Debug;
|
||||
*
|
||||
* <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 @@ import sun.security.util.Debug;
|
||||
* 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";
|
||||
* };
|
||||
|
@ -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 @@ public class AuthResources extends java.util.ListResourceBundle {
|
||||
"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"}
|
||||
|
||||
};
|
||||
|
||||
/**
|
||||
|
@ -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 @@ public class AuthResources_de extends java.util.ListResourceBundle {
|
||||
"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"}
|
||||
|
||||
};
|
||||
|
||||
/**
|
||||
|
@ -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 @@ public class AuthResources_es extends java.util.ListResourceBundle {
|
||||
"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"}
|
||||
|
||||
};
|
||||
|
||||
/**
|
||||
|
@ -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 @@ public class AuthResources_fr extends java.util.ListResourceBundle {
|
||||
"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"}
|
||||
|
||||
};
|
||||
|
||||
/**
|
||||
|
@ -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 @@ public class AuthResources_it extends java.util.ListResourceBundle {
|
||||
"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"}
|
||||
|
||||
};
|
||||
|
||||
/**
|
||||
|
@ -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 @@ public class AuthResources_ja extends java.util.ListResourceBundle {
|
||||
"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"}
|
||||
|
||||
};
|
||||
|
||||
/**
|
||||
|
@ -95,50 +95,6 @@ public class AuthResources_ko extends java.util.ListResourceBundle {
|
||||
"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."}
|
||||
|
||||
};
|
||||
|
||||
/**
|
||||
|
@ -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 @@ public class AuthResources_pt_BR extends java.util.ListResourceBundle {
|
||||
"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"}
|
||||
|
||||
};
|
||||
|
||||
/**
|
||||
|
@ -95,50 +95,6 @@ public class AuthResources_sv extends java.util.ListResourceBundle {
|
||||
"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"}
|
||||
|
||||
};
|
||||
|
||||
/**
|
||||
|
@ -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 @@ public class AuthResources_zh_CN extends java.util.ListResourceBundle {
|
||||
"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"}
|
||||
|
||||
};
|
||||
|
||||
/**
|
||||
|
@ -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 @@ public class AuthResources_zh_TW extends java.util.ListResourceBundle {
|
||||
"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"}
|
||||
|
||||
};
|
||||
|
||||
/**
|
||||
|
@ -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 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);
|
||||
}
|
||||
}
|
@ -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 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();
|
||||
}
|
||||
}
|
@ -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 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();
|
||||
}
|
||||
}
|
@ -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 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();
|
||||
}
|
||||
}
|
@ -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);
|
||||
}
|
||||
}
|
@ -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;
|
||||
}
|
||||
}
|
@ -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();
|
||||
}
|
||||
}
|
@ -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;
|
||||
}
|
@ -34,7 +34,7 @@ import java.util.Collections;
|
||||
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 @@ import javax.security.auth.Subject;
|
||||
* 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 @@ public class Subset {
|
||||
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 @@ public class Subset {
|
||||
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 @@ public class Subset {
|
||||
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 @@ public class Subset {
|
||||
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 @@ public class Subset {
|
||||
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 @@ public class Subset {
|
||||
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 {
|
||||
|
@ -6,5 +6,5 @@ grant {
|
||||
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";
|
||||
};
|
||||
|
@ -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 javax.security.auth.x500.X500Principal;
|
||||
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 @@ public class Comparator {
|
||||
new X500Principal("cn=x500") };
|
||||
|
||||
private static final Principal[] badP = new Principal[] {
|
||||
new SolarisPrincipal("bad") };
|
||||
new UnixPrincipal("bad") };
|
||||
|
||||
public static class PCompare1 implements Principal {
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user