This commit is contained in:
Sean Mullan 2017-01-23 07:36:05 -05:00
commit 1229a8857c
31 changed files with 91 additions and 675 deletions

View File

@ -310,7 +310,6 @@ module java.base {
// JDK-internal service types
uses jdk.internal.logger.DefaultLoggerFinder;
uses sun.security.ssl.ClientKeyExchangeService;
uses sun.security.util.AuthResourcesProvider;
uses sun.text.spi.JavaTimeDateTimePatternProvider;
uses sun.util.spi.CalendarProvider;
uses sun.util.locale.provider.LocaleDataMetaInfo;
@ -322,6 +321,4 @@ module java.base {
provides java.nio.file.spi.FileSystemProvider with
jdk.internal.jrtfs.JrtFileSystemProvider;
provides sun.security.util.AuthResourcesProvider with
sun.security.util.AuthResourcesProviderImpl;
}

View File

@ -331,9 +331,8 @@ public final class ConfigFile extends Configuration {
if (debugConfig != null) {
debugConfig.println(fnfe.toString());
}
throw new IOException(ResourcesMgr.getString
("Configuration.Error.No.such.file.or.directory",
"sun.security.util.AuthResources"));
throw new IOException(ResourcesMgr.getAuthResourceString
("Configuration.Error.No.such.file.or.directory"));
}
}
@ -661,8 +660,8 @@ public final class ConfigFile extends Configuration {
}
private IOException ioException(String resourceKey, Object... args) {
MessageFormat form = new MessageFormat(ResourcesMgr.getString
(resourceKey, "sun.security.util.AuthResources"));
MessageFormat form = new MessageFormat(
ResourcesMgr.getAuthResourceString(resourceKey));
return new IOException(form.format(args));
}
}

View File

@ -34,6 +34,7 @@ import java.lang.reflect.Constructor;
import javax.security.auth.Subject;
import sun.security.provider.PolicyParser.PrincipalEntry;
import sun.security.util.ResourcesMgr;
/**
* <p> This <code>SubjectCodeSource</code> class contains
@ -47,15 +48,6 @@ class SubjectCodeSource extends CodeSource implements java.io.Serializable {
private static final long serialVersionUID = 6039418085604715275L;
private static final java.util.ResourceBundle rb =
java.security.AccessController.doPrivileged
(new java.security.PrivilegedAction<java.util.ResourceBundle>() {
public java.util.ResourceBundle run() {
return (java.util.ResourceBundle.getBundle
("sun.security.util.AuthResources"));
}
});
private Subject subject;
private LinkedList<PrincipalEntry> principals;
private static final Class<?>[] PARAMS = { String.class };
@ -391,7 +383,7 @@ class SubjectCodeSource extends CodeSource implements java.io.Serializable {
ListIterator<PrincipalEntry> li = principals.listIterator();
while (li.hasNext()) {
PrincipalEntry pppe = li.next();
returnMe = returnMe + rb.getString("NEWLINE") +
returnMe = returnMe + ResourcesMgr.getAuthResourceString("NEWLINE") +
pppe.getPrincipalClass() + " " +
pppe.getPrincipalName();
}

View File

@ -1,29 +0,0 @@
/*
* Copyright (c) 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.
*/
package sun.security.util;
public interface AuthResourcesProvider extends java.util.spi.ResourceBundleProvider {
}

View File

@ -1,35 +0,0 @@
/*
* Copyright (c) 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.
*/
package sun.security.util;
import java.util.spi.AbstractResourceBundleProvider;
public final class AuthResourcesProviderImpl extends AbstractResourceBundleProvider
implements AuthResourcesProvider {
public AuthResourcesProviderImpl() {
super("java.class");
}
}

View File

@ -25,18 +25,22 @@
package sun.security.util;
import java.util.Map;
import java.util.ResourceBundle;
import java.util.concurrent.ConcurrentHashMap;
import jdk.internal.misc.VM;
/**
*/
public class ResourcesMgr {
// intended for java.security, javax.security and sun.security resources
private static java.util.ResourceBundle bundle;
private final static String RESOURCES = "sun.security.util.Resources";
private final static String AUTH_RESOURCES = "sun.security.util.AuthResources";
// intended for com.sun.security resources
private static java.util.ResourceBundle altBundle;
private final static Map<String, ResourceBundle> bundles = new ConcurrentHashMap<>();
public static String getString(String s) {
ResourceBundle bundle = bundles.get(RESOURCES);
if (bundle == null) {
// only load if/when needed
@ -52,19 +56,15 @@ public class ResourcesMgr {
return bundle.getString(s);
}
public static String getString(String s, final String altBundleName) {
if (altBundle == null) {
// only load if/when needed
altBundle = java.security.AccessController.doPrivileged(
new java.security.PrivilegedAction<java.util.ResourceBundle>() {
public java.util.ResourceBundle run() {
return (java.util.ResourceBundle.getBundle(altBundleName));
}
});
public static String getAuthResourceString(String s) {
if (VM.initLevel() == 3) {
// cannot trigger loading of any resource bundle as
// it depends on the system class loader fully initialized.
throw new InternalError("system class loader is being initialized");
}
return altBundle.getString(s);
return bundles.computeIfAbsent(AUTH_RESOURCES, ResourceBundle::getBundle)
.getString(s);
}
}

View File

@ -65,9 +65,8 @@ public class NTDomainPrincipal implements Principal, java.io.Serializable {
public NTDomainPrincipal(String name) {
if (name == null) {
java.text.MessageFormat form = new java.text.MessageFormat
(sun.security.util.ResourcesMgr.getString
("invalid.null.input.value",
"sun.security.util.AuthResources"));
(sun.security.util.ResourcesMgr.getAuthResourceString
("invalid.null.input.value"));
Object[] source = {"name"};
throw new NullPointerException(form.format(source));
}
@ -92,9 +91,8 @@ public class NTDomainPrincipal implements Principal, java.io.Serializable {
*/
public String toString() {
java.text.MessageFormat form = new java.text.MessageFormat
(sun.security.util.ResourcesMgr.getString
("NTDomainPrincipal.name",
"sun.security.util.AuthResources"));
(sun.security.util.ResourcesMgr.getAuthResourceString
("NTDomainPrincipal.name"));
Object[] source = {name};
return form.format(source);
}

View File

@ -61,9 +61,8 @@ public class NTNumericCredential {
*/
public String toString() {
java.text.MessageFormat form = new java.text.MessageFormat
(sun.security.util.ResourcesMgr.getString
("NTNumericCredential.name",
"sun.security.util.AuthResources"));
(sun.security.util.ResourcesMgr.getAuthResourceString
("NTNumericCredential.name"));
Object[] source = {Long.toString(impersonationToken)};
return form.format(source);
}

View File

@ -70,17 +70,15 @@ public class NTSid implements Principal, java.io.Serializable {
public NTSid (String stringSid) {
if (stringSid == null) {
java.text.MessageFormat form = new java.text.MessageFormat
(sun.security.util.ResourcesMgr.getString
("invalid.null.input.value",
"sun.security.util.AuthResources"));
(sun.security.util.ResourcesMgr.getAuthResourceString
("invalid.null.input.value"));
Object[] source = {"stringSid"};
throw new NullPointerException(form.format(source));
}
if (stringSid.length() == 0) {
throw new IllegalArgumentException
(sun.security.util.ResourcesMgr.getString
("Invalid.NTSid.value",
"sun.security.util.AuthResources"));
(sun.security.util.ResourcesMgr.getAuthResourceString
("Invalid.NTSid.value"));
}
sid = new String(stringSid);
}
@ -101,9 +99,8 @@ public class NTSid implements Principal, java.io.Serializable {
*/
public String toString() {
java.text.MessageFormat form = new java.text.MessageFormat
(sun.security.util.ResourcesMgr.getString
("NTSid.name",
"sun.security.util.AuthResources"));
(sun.security.util.ResourcesMgr.getAuthResourceString
("NTSid.name"));
Object[] source = {sid};
return form.format(source);
}

View File

@ -68,9 +68,8 @@ public class NTSidDomainPrincipal extends NTSid {
*/
public String toString() {
java.text.MessageFormat form = new java.text.MessageFormat
(sun.security.util.ResourcesMgr.getString
("NTSidDomainPrincipal.name",
"sun.security.util.AuthResources"));
(sun.security.util.ResourcesMgr.getAuthResourceString
("NTSidDomainPrincipal.name"));
Object[] source = {getName()};
return form.format(source);
}

View File

@ -63,9 +63,8 @@ public class NTSidGroupPrincipal extends NTSid {
*/
public String toString() {
java.text.MessageFormat form = new java.text.MessageFormat
(sun.security.util.ResourcesMgr.getString
("NTSidGroupPrincipal.name",
"sun.security.util.AuthResources"));
(sun.security.util.ResourcesMgr.getAuthResourceString
("NTSidGroupPrincipal.name"));
Object[] source = {getName()};
return form.format(source);
}

View File

@ -65,9 +65,8 @@ public class NTSidPrimaryGroupPrincipal extends NTSid {
*/
public String toString() {
java.text.MessageFormat form = new java.text.MessageFormat
(sun.security.util.ResourcesMgr.getString
("NTSidPrimaryGroupPrincipal.name",
"sun.security.util.AuthResources"));
(sun.security.util.ResourcesMgr.getAuthResourceString
("NTSidPrimaryGroupPrincipal.name"));
Object[] source = {getName()};
return form.format(source);
}

View File

@ -62,9 +62,8 @@ public class NTSidUserPrincipal extends NTSid {
*/
public String toString() {
java.text.MessageFormat form = new java.text.MessageFormat
(sun.security.util.ResourcesMgr.getString
("NTSidUserPrincipal.name",
"sun.security.util.AuthResources"));
(sun.security.util.ResourcesMgr.getAuthResourceString
("NTSidUserPrincipal.name"));
Object[] source = {getName()};
return form.format(source);
}

View File

@ -61,9 +61,8 @@ public class NTUserPrincipal implements Principal, java.io.Serializable {
public NTUserPrincipal(String name) {
if (name == null) {
java.text.MessageFormat form = new java.text.MessageFormat
(sun.security.util.ResourcesMgr.getString
("invalid.null.input.value",
"sun.security.util.AuthResources"));
(sun.security.util.ResourcesMgr.getAuthResourceString
("invalid.null.input.value"));
Object[] source = {"name"};
throw new NullPointerException(form.format(source));
}
@ -86,9 +85,8 @@ public class NTUserPrincipal implements Principal, java.io.Serializable {
*/
public String toString() {
java.text.MessageFormat form = new java.text.MessageFormat
(sun.security.util.ResourcesMgr.getString
("NTUserPrincipal.name",
"sun.security.util.AuthResources"));
(sun.security.util.ResourcesMgr.getAuthResourceString
("NTUserPrincipal.name"));
Object[] source = {name};
return form.format(source);
}

View File

@ -26,6 +26,7 @@
package com.sun.security.auth;
import java.security.Principal;
import static sun.security.util.ResourcesMgr.getAuthResourceString;
/**
* This class implements the {@code Principal} interface
@ -53,9 +54,6 @@ public class SolarisNumericGroupPrincipal implements
private static final long serialVersionUID = 2345199581042573224L;
private static final java.util.ResourceBundle rb =
java.util.ResourceBundle.getBundle("sun.security.util.AuthResources");
/**
* @serial
*/
@ -82,7 +80,7 @@ public class SolarisNumericGroupPrincipal implements
*/
public SolarisNumericGroupPrincipal(String name, boolean primaryGroup) {
if (name == null)
throw new NullPointerException(rb.getString("provided.null.name"));
throw new NullPointerException(getAuthResourceString("provided.null.name"));
this.name = name;
this.primaryGroup = primaryGroup;
@ -146,11 +144,11 @@ public class SolarisNumericGroupPrincipal implements
* {@code SolarisNumericGroupPrincipal}.
*/
public String toString() {
return((primaryGroup ?
rb.getString
return primaryGroup ?
getAuthResourceString
("SolarisNumericGroupPrincipal.Primary.Group.") + name :
rb.getString
("SolarisNumericGroupPrincipal.Supplementary.Group.") + name));
getAuthResourceString
("SolarisNumericGroupPrincipal.Supplementary.Group.") + name;
}
/**

View File

@ -26,6 +26,7 @@
package com.sun.security.auth;
import java.security.Principal;
import static sun.security.util.ResourcesMgr.getAuthResourceString;
/**
* This class implements the {@code Principal} interface
@ -52,9 +53,6 @@ public class SolarisNumericUserPrincipal implements
private static final long serialVersionUID = -3178578484679887104L;
private static final java.util.ResourceBundle rb =
java.util.ResourceBundle.getBundle("sun.security.util.AuthResources");
/**
* @serial
*/
@ -72,7 +70,7 @@ public class SolarisNumericUserPrincipal implements
*/
public SolarisNumericUserPrincipal(String name) {
if (name == null)
throw new NullPointerException(rb.getString("provided.null.name"));
throw new NullPointerException(getAuthResourceString("provided.null.name"));
this.name = name;
}
@ -118,7 +116,7 @@ public class SolarisNumericUserPrincipal implements
* {@code SolarisNumericUserPrincipal}.
*/
public String toString() {
return(rb.getString("SolarisNumericUserPrincipal.") + name);
return(getAuthResourceString("SolarisNumericUserPrincipal.") + name);
}
/**

View File

@ -26,6 +26,8 @@
package com.sun.security.auth;
import java.security.Principal;
import static sun.security.util.ResourcesMgr.getAuthResourceString;
/**
* This class implements the {@code Principal} interface
@ -50,10 +52,6 @@ public class SolarisPrincipal implements Principal, java.io.Serializable {
private static final long serialVersionUID = -7840670002439379038L;
private static final java.util.ResourceBundle rb =
java.util.ResourceBundle.getBundle("sun.security.util.AuthResources");
/**
* @serial
*/
@ -69,7 +67,7 @@ public class SolarisPrincipal implements Principal, java.io.Serializable {
*/
public SolarisPrincipal(String name) {
if (name == null)
throw new NullPointerException(rb.getString("provided.null.name"));
throw new NullPointerException(getAuthResourceString("provided.null.name"));
this.name = name;
}
@ -89,7 +87,7 @@ public class SolarisPrincipal implements Principal, java.io.Serializable {
* @return a string representation of this {@code SolarisPrincipal}.
*/
public String toString() {
return(rb.getString("SolarisPrincipal.") + name);
return(getAuthResourceString("SolarisPrincipal.") + name);
}
/**

View File

@ -74,9 +74,8 @@ public class UnixNumericGroupPrincipal implements
public UnixNumericGroupPrincipal(String name, boolean primaryGroup) {
if (name == null) {
java.text.MessageFormat form = new java.text.MessageFormat
(sun.security.util.ResourcesMgr.getString
("invalid.null.input.value",
"sun.security.util.AuthResources"));
(sun.security.util.ResourcesMgr.getAuthResourceString
("invalid.null.input.value"));
Object[] source = {"name"};
throw new NullPointerException(form.format(source));
}
@ -146,16 +145,14 @@ public class UnixNumericGroupPrincipal implements
if (primaryGroup) {
java.text.MessageFormat form = new java.text.MessageFormat
(sun.security.util.ResourcesMgr.getString
("UnixNumericGroupPrincipal.Primary.Group.name",
"sun.security.util.AuthResources"));
(sun.security.util.ResourcesMgr.getAuthResourceString
("UnixNumericGroupPrincipal.Primary.Group.name"));
Object[] source = {name};
return form.format(source);
} else {
java.text.MessageFormat form = new java.text.MessageFormat
(sun.security.util.ResourcesMgr.getString
("UnixNumericGroupPrincipal.Supplementary.Group.name",
"sun.security.util.AuthResources"));
(sun.security.util.ResourcesMgr.getAuthResourceString
("UnixNumericGroupPrincipal.Supplementary.Group.name"));
Object[] source = {name};
return form.format(source);
}

View File

@ -64,9 +64,8 @@ public class UnixNumericUserPrincipal implements
public UnixNumericUserPrincipal(String name) {
if (name == null) {
java.text.MessageFormat form = new java.text.MessageFormat
(sun.security.util.ResourcesMgr.getString
("invalid.null.input.value",
"sun.security.util.AuthResources"));
(sun.security.util.ResourcesMgr.getAuthResourceString
("invalid.null.input.value"));
Object[] source = {"name"};
throw new NullPointerException(form.format(source));
}
@ -116,9 +115,8 @@ public class UnixNumericUserPrincipal implements
*/
public String toString() {
java.text.MessageFormat form = new java.text.MessageFormat
(sun.security.util.ResourcesMgr.getString
("UnixNumericUserPrincipal.name",
"sun.security.util.AuthResources"));
(sun.security.util.ResourcesMgr.getAuthResourceString
("UnixNumericUserPrincipal.name"));
Object[] source = {name};
return form.format(source);
}

View File

@ -61,9 +61,8 @@ public class UnixPrincipal implements Principal, java.io.Serializable {
public UnixPrincipal(String name) {
if (name == null) {
java.text.MessageFormat form = new java.text.MessageFormat
(sun.security.util.ResourcesMgr.getString
("invalid.null.input.value",
"sun.security.util.AuthResources"));
(sun.security.util.ResourcesMgr.getAuthResourceString
("invalid.null.input.value"));
Object[] source = {"name"};
throw new NullPointerException(form.format(source));
}
@ -87,9 +86,8 @@ public class UnixPrincipal implements Principal, java.io.Serializable {
*/
public String toString() {
java.text.MessageFormat form = new java.text.MessageFormat
(sun.security.util.ResourcesMgr.getString
("UnixPrincipal.name",
"sun.security.util.AuthResources"));
(sun.security.util.ResourcesMgr.getAuthResourceString
("UnixPrincipal.name"));
Object[] source = {name};
return form.format(source);
}

View File

@ -27,6 +27,7 @@ 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}.
@ -55,9 +56,6 @@ public class X500Principal implements Principal, java.io.Serializable {
private static final long serialVersionUID = -8222422609431628648L;
private static final java.util.ResourceBundle rb =
java.util.ResourceBundle.getBundle("sun.security.util.AuthResources");
/**
* @serial
*/
@ -80,7 +78,7 @@ public class X500Principal implements Principal, java.io.Serializable {
*/
public X500Principal(String name) {
if (name == null)
throw new NullPointerException(rb.getString("provided.null.name"));
throw new NullPointerException(getAuthResourceString("provided.null.name"));
try {
thisX500Name = new X500Name(name);

View File

@ -32,15 +32,13 @@ import javax.security.auth.spi.*;
import javax.naming.*;
import javax.naming.directory.*;
import java.security.AccessController;
import java.security.PrivilegedAction;
import java.util.Map;
import java.util.LinkedList;
import java.util.ResourceBundle;
import com.sun.security.auth.UnixPrincipal;
import com.sun.security.auth.UnixNumericUserPrincipal;
import com.sun.security.auth.UnixNumericGroupPrincipal;
import static sun.security.util.ResourcesMgr.getAuthResourceString;
/**
@ -153,9 +151,6 @@ import com.sun.security.auth.UnixNumericGroupPrincipal;
*/
public class JndiLoginModule implements LoginModule {
private static final ResourceBundle rb =
ResourceBundle.getBundle("sun.security.util.AuthResources");
/** JNDI Provider */
public final String USER_PROVIDER = "user.provider.url";
public final String GROUP_PROVIDER = "group.provider.url";
@ -677,9 +672,9 @@ public class JndiLoginModule implements LoginModule {
Callback[] callbacks = new Callback[2];
callbacks[0] = new NameCallback(protocol + " "
+ rb.getString("username."));
+ getAuthResourceString("username."));
callbacks[1] = new PasswordCallback(protocol + " " +
rb.getString("password."),
getAuthResourceString("password."),
false);
try {

View File

@ -51,6 +51,7 @@ import javax.security.auth.login.LoginException;
import javax.security.auth.spi.LoginModule;
import sun.security.util.Password;
import static sun.security.util.ResourcesMgr.getAuthResourceString;
/**
* Provides a JAAS login module that prompts for a key store alias and
@ -112,9 +113,6 @@ import sun.security.util.Password;
*/
public class KeyStoreLoginModule implements LoginModule {
private static final ResourceBundle rb =
ResourceBundle.getBundle("sun.security.util.AuthResources");
/* -- Fields -- */
private static final int UNINITIALIZED = 0;
@ -132,7 +130,7 @@ public class KeyStoreLoginModule implements LoginModule {
private static final TextOutputCallback bannerCallback =
new TextOutputCallback
(TextOutputCallback.INFORMATION,
rb.getString("Please.enter.keystore.information"));
getAuthResourceString("Please.enter.keystore.information"));
private final ConfirmationCallback confirmationCallback =
new ConfirmationCallback
(ConfirmationCallback.INFORMATION,
@ -344,11 +342,10 @@ public class KeyStoreLoginModule implements LoginModule {
NameCallback aliasCallback;
if (keyStoreAlias == null || keyStoreAlias.length() == 0) {
aliasCallback = new NameCallback(
rb.getString("Keystore.alias."));
aliasCallback = new NameCallback(getAuthResourceString("Keystore.alias."));
} else {
aliasCallback =
new NameCallback(rb.getString("Keystore.alias."),
new NameCallback(getAuthResourceString("Keystore.alias."),
keyStoreAlias);
}
@ -360,11 +357,11 @@ public class KeyStoreLoginModule implements LoginModule {
break;
case NORMAL:
keyPassCallback = new PasswordCallback
(rb.getString("Private.key.password.optional."), false);
(getAuthResourceString("Private.key.password.optional."), false);
// fall thru
case TOKEN:
storePassCallback = new PasswordCallback
(rb.getString("Keystore.password."), false);
(getAuthResourceString("Keystore.password."), false);
break;
}
prompt(aliasCallback, storePassCallback, keyPassCallback);

View File

@ -27,8 +27,6 @@
package com.sun.security.auth.module;
import java.io.*;
import java.security.AccessController;
import java.security.PrivilegedAction;
import java.text.MessageFormat;
import java.util.*;
@ -45,6 +43,7 @@ import sun.security.krb5.*;
import sun.security.jgss.krb5.Krb5Util;
import sun.security.krb5.Credentials;
import sun.security.util.HexDumpEncoder;
import static sun.security.util.ResourcesMgr.getAuthResourceString;
/**
* This {@code LoginModule} authenticates users using
@ -419,8 +418,6 @@ public class Krb5LoginModule implements LoginModule {
private static final String NAME = "javax.security.auth.login.name";
private static final String PWD = "javax.security.auth.login.password";
private static final ResourceBundle rb =
ResourceBundle.getBundle("sun.security.util.AuthResources");
/**
* Initialize this {@code LoginModule}.
@ -831,7 +828,7 @@ public class Krb5LoginModule implements LoginModule {
Callback[] callbacks = new Callback[1];
MessageFormat form = new MessageFormat(
rb.getString(
getAuthResourceString(
"Kerberos.username.defUsername."));
Object[] source = {defUsername};
callbacks[0] = new NameCallback(form.format(source));
@ -886,7 +883,7 @@ public class Krb5LoginModule implements LoginModule {
Callback[] callbacks = new Callback[1];
String userName = krb5PrincName.toString();
MessageFormat form = new MessageFormat(
rb.getString(
getAuthResourceString(
"Kerberos.password.for.username."));
Object[] source = {userName};
callbacks[0] = new PasswordCallback(

View File

@ -25,14 +25,11 @@
package com.sun.security.auth.module;
import java.security.AccessController;
import java.net.SocketPermission;
import java.security.Principal;
import java.security.PrivilegedAction;
import java.util.Arrays;
import java.util.Hashtable;
import java.util.Map;
import java.util.ResourceBundle;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.Set;
@ -47,6 +44,7 @@ import javax.security.auth.spi.*;
import com.sun.security.auth.LdapPrincipal;
import com.sun.security.auth.UserPrincipal;
import static sun.security.util.ResourcesMgr.getAuthResourceString;
/**
@ -305,10 +303,6 @@ import com.sun.security.auth.UserPrincipal;
*/
public class LdapLoginModule implements LoginModule {
// Use the default classloader for this class to load the prompt strings.
private static final ResourceBundle rb =
ResourceBundle.getBundle("sun.security.util.AuthResources");
// Keys to retrieve the stored username and password
private static final String USERNAME_KEY = "javax.security.auth.login.name";
private static final String PASSWORD_KEY =
@ -957,8 +951,8 @@ public class LdapLoginModule implements LoginModule {
"to acquire authentication information from the user");
Callback[] callbacks = new Callback[2];
callbacks[0] = new NameCallback(rb.getString("username."));
callbacks[1] = new PasswordCallback(rb.getString("password."), false);
callbacks[0] = new NameCallback(getAuthResourceString("username."));
callbacks[1] = new PasswordCallback(getAuthResourceString("password."), false);
try {
callbackHandler.handle(callbacks);

View File

@ -36,8 +36,6 @@ module jdk.security.auth {
exports com.sun.security.auth.login;
exports com.sun.security.auth.module;
uses sun.security.util.AuthResourcesProvider;
provides javax.security.auth.spi.LoginModule with
com.sun.security.auth.module.Krb5LoginModule,
com.sun.security.auth.module.UnixLoginModule,

View File

@ -1,126 +0,0 @@
'\" t
.\"
.\" 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.
.\"
.\" 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.
.\"
.\" Title: jvisualvm
.\" Language: Japanese
.\" Date: 2013年11月21日
.\" SectDesc: Javaトラブルシューティング、プロファイリング、モニタリングおよび管理ツール
.\" Software: JDK 8
.\" Arch: 汎用
.\" Part Number: E58103-01
.\" Doc ID: JSSON
.\"
.if n .pl 99999
.TH "jvisualvm" "1" "2013年11月21日" "JDK 8" "Javaトラブルシューティング、プロファイリング、モニタリン"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.\" http://bugs.debian.org/507673
.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\" -----------------------------------------------------------------
.\" * set default formatting
.\" -----------------------------------------------------------------
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
.ad l
.\" -----------------------------------------------------------------
.\" * MAIN CONTENT STARTS HERE *
.\" -----------------------------------------------------------------
.SH "名前"
jvisualvm \- Javaアプリケーションを視覚的にモニター、トラブルシュートおよびプロファイルします。
.SH "概要"
.sp
.if n \{\
.RS 4
.\}
.nf
\fBjvisualvm\fR [ \fIoptions\fR ]
.fi
.if n \{\
.RE
.\}
.PP
\fIoptions\fR
.RS 4
コマンド行オプション。オプションを参照してください。
.RE
.SH "説明"
.PP
Java VisualVMは、指定されたJava Virtual Machine (JVM)でJavaテクロジ・ベースのアプリケーション(Javaアプリケーション)が実行されているときに、そのJavaアプリケーションに関する詳細な情報を提供する直感的なグラフィカル・ユーザー・インタフェースです。Java VisualVMという名前は、Java VisualVMがJVMソフトウェアに関する情報を視覚的に提供するという事実に由来しています。
.PP
Java VisualVMは、いくつかのモニタリング、トラブルシューティングおよびプロファイリング・ユーティリティを1つのツールに統合します。たとえば、スタンドアロン・ツール\fBjmap\fR\fBjinfo\fR\fBjstat\fRおよび\fBjstack\fRで提供されている機能のほとんどが、Java VisualVMに組み込まれています。\fBjconsole\fRコマンドによって提供される一部の機能など、他の機能はオプションのプラグインとして追加できます。
.PP
Java VisualVMは、Javaアプリケーションの開発者がアプリケーションのトラブルシューティングを行ったり、アプリケーションのパフォーマンスをモニターおよび改善したりするのに役立ちます。Java VisualVMを使用すると、開発者はヒープ・ダンプの生成および解析、メモリー・リークの特定、ガベージ・コレクションの実行およびモニター、およびメモリーとCPUの簡易プロファイリングの実行が可能になります。プラグインでJava VisualVMの機能を拡張できます。たとえば、\fBjconsole\fRコマンドのほとんどの機能は、「MBean」タブおよびJConsole Plug\-in Wrapperプラグインを介して使用できます。標準のJava VisualVMプラグインのカタログから選択するには、Java VisualVMメニューの\fB「ツール」\fR\fB「プラグイン」\fRを選択します。
.PP
Java VisualVMを起動するには、次のコマンドを実行します。
.sp
.if n \{\
.RS 4
.\}
.nf
\fB% jvisualvm <options>\fR
.fi
.if n \{\
.RE
.\}
.SH "オプション"
.PP
次のオプションは、Java VisualVMを起動したときに実行可能になります。
.PP
\-J\fIjvm_option\fR
.RS 4
この\fBjvm_option\fRをJVMソフトウェアに渡します。
.RE
.SH "関連項目"
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
Java VisualVM開発者のサイト
http://visualvm\&.java\&.net/
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
Java SEドキュメントのJava VisualVM
(http://docs\&.oracle\&.com/javase/8/docs/technotes/guides/visualvm/index\&.html)
.RE
.br
'pl 8.5i
'bp

View File

@ -1,104 +0,0 @@
." Copyright (c) 2008, 2011, 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.
."
." 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.
."
.TH jvisualvm 1 "10 May 2011"
.LP
.SH "Name"
\f2jvisualvm\fP \- Java Virtual Machine Monitoring, Troubleshooting, and Profiling Tool
.LP
.SH "SYNOPSIS"
.LP
.nf
\f3
.fl
\fP\f3jvisualvm\fP [ \f2options\fP ]
.fl
.fi
.LP
.SH "PARAMETERS"
.LP
.LP
Options, if used, should follow immediately after the command name. Options may be in any order. For a discussion of parameters that apply to a specific option, see OPTIONS below.
.LP
.SH "DESCRIPTION"
.LP
.LP
Java VisualVM is an intuitive graphical user interface that provides detailed information about Java technology\-based applications (Java applications) while they are running on a given Java Virtual Machine (JVM(*)). The name Java VisualVM comes from the fact that Java VisualVM provides information about the JVM software \f2visually\fP.
.LP
.LP
Java VisualVM combines several monitoring, troubleshooting, and profiling utilities into a single tool. For example, most of the functionality offered by the standalone tools \f2jmap\fP, \f2jinfo\fP, \f2jstat\fP and \f2jstack\fP have been integrated into Java VisualVM. Other functionalities, such as some of those offered by the JConsole tool, can be added as optional plug\-ins.
.LP
.SH "OPTIONS"
.LP
.LP
The following option is possible when you launch Java VisualVM.
.LP
.RS 3
.TP 3
\-J<jvm_option>\
Pass this \f2<jvm_option>\fP to the JVM software.
.RE
.LP
.SH "USAGE"
.LP
.LP
Java VisualVM is useful to Java application developers to troubleshoot applications and to monitor and improve the applications' performance. Java VisualVM can allow developers to generate and analyse heap dumps, track down memory leaks, perform and monitor garbage collection, and perform lightweight memory and CPU profiling. Plug\-ins also exist that expand the functionality of Java VisualVM. For example, most of the functionality of the JConsole tool is available via the MBeans Tab and JConsole Plug\-in Wrapper plug\-ins. You can choose from a catalog of standard Java VisualVM plug\-ins by selecting 'Tools' | 'Plugins' in the Java VisualVM menus.
.LP
.LP
Start Java VisualVM with the following command:
.LP
.nf
\f3
.fl
% jvisualvm \fP\f4<options>\fP\f3
.fl
\fP
.fi
.LP
.SH "SEE ALSO"
.LP
.LP
For more details about Java VisualVM see the following pages.
.LP
.RS 3
.TP 2
o
.na
\f2Java VisualVM developers' site\fP @
.fi
http://visualvm.java.net
.TP 2
o
.na
\f2Java VisualVM in Java SE platform documentation\fP @
.fi
http://download.oracle.com/javase/7/docs/technotes/guides/visualvm/index.html
.RE
.LP
.LP
\f2(* The terms "Java Virtual Machine" and "JVM" mean a Virtual Machine for the Java platform.)\fP
.LP

View File

@ -1,126 +0,0 @@
'\" t
.\"
.\" 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.
.\"
.\" 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.
.\"
.\" Title: jvisualvm
.\" Language: Japanese
.\" Date: 2013年11月21日
.\" SectDesc: Javaトラブルシューティング、プロファイリング、モニタリングおよび管理ツール
.\" Software: JDK 8
.\" Arch: 汎用
.\" Part Number: E58103-01
.\" Doc ID: JSSON
.\"
.if n .pl 99999
.TH "jvisualvm" "1" "2013年11月21日" "JDK 8" "Javaトラブルシューティング、プロファイリング、モニタリン"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.\" http://bugs.debian.org/507673
.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\" -----------------------------------------------------------------
.\" * set default formatting
.\" -----------------------------------------------------------------
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
.ad l
.\" -----------------------------------------------------------------
.\" * MAIN CONTENT STARTS HERE *
.\" -----------------------------------------------------------------
.SH "名前"
jvisualvm \- Javaアプリケーションを視覚的にモニター、トラブルシュートおよびプロファイルします。
.SH "概要"
.sp
.if n \{\
.RS 4
.\}
.nf
\fBjvisualvm\fR [ \fIoptions\fR ]
.fi
.if n \{\
.RE
.\}
.PP
\fIoptions\fR
.RS 4
コマンド行オプション。オプションを参照してください。
.RE
.SH "説明"
.PP
Java VisualVMは、指定されたJava Virtual Machine (JVM)でJavaテクロジ・ベースのアプリケーション(Javaアプリケーション)が実行されているときに、そのJavaアプリケーションに関する詳細な情報を提供する直感的なグラフィカル・ユーザー・インタフェースです。Java VisualVMという名前は、Java VisualVMがJVMソフトウェアに関する情報を視覚的に提供するという事実に由来しています。
.PP
Java VisualVMは、いくつかのモニタリング、トラブルシューティングおよびプロファイリング・ユーティリティを1つのツールに統合します。たとえば、スタンドアロン・ツール\fBjmap\fR\fBjinfo\fR\fBjstat\fRおよび\fBjstack\fRで提供されている機能のほとんどが、Java VisualVMに組み込まれています。\fBjconsole\fRコマンドによって提供される一部の機能など、他の機能はオプションのプラグインとして追加できます。
.PP
Java VisualVMは、Javaアプリケーションの開発者がアプリケーションのトラブルシューティングを行ったり、アプリケーションのパフォーマンスをモニターおよび改善したりするのに役立ちます。Java VisualVMを使用すると、開発者はヒープ・ダンプの生成および解析、メモリー・リークの特定、ガベージ・コレクションの実行およびモニター、およびメモリーとCPUの簡易プロファイリングの実行が可能になります。プラグインでJava VisualVMの機能を拡張できます。たとえば、\fBjconsole\fRコマンドのほとんどの機能は、「MBean」タブおよびJConsole Plug\-in Wrapperプラグインを介して使用できます。標準のJava VisualVMプラグインのカタログから選択するには、Java VisualVMメニューの\fB「ツール」\fR\fB「プラグイン」\fRを選択します。
.PP
Java VisualVMを起動するには、次のコマンドを実行します。
.sp
.if n \{\
.RS 4
.\}
.nf
\fB% jvisualvm <options>\fR
.fi
.if n \{\
.RE
.\}
.SH "オプション"
.PP
次のオプションは、Java VisualVMを起動したときに実行可能になります。
.PP
\-J\fIjvm_option\fR
.RS 4
この\fBjvm_option\fRをJVMソフトウェアに渡します。
.RE
.SH "関連項目"
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
Java VisualVM開発者のサイト
http://visualvm\&.java\&.net/
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
Java SEドキュメントのJava VisualVM
(http://docs\&.oracle\&.com/javase/8/docs/technotes/guides/visualvm/index\&.html)
.RE
.br
'pl 8.5i
'bp

View File

@ -1,104 +0,0 @@
." Copyright (c) 2008, 2011, 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.
."
." 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.
."
.TH jvisualvm 1 "10 May 2011"
.LP
.SH "Name"
\f2jvisualvm\fP \- Java Virtual Machine Monitoring, Troubleshooting, and Profiling Tool
.LP
.SH "SYNOPSIS"
.LP
.nf
\f3
.fl
\fP\f3jvisualvm\fP [ \f2options\fP ]
.fl
.fi
.LP
.SH "PARAMETERS"
.LP
.LP
Options, if used, should follow immediately after the command name. Options may be in any order. For a discussion of parameters that apply to a specific option, see OPTIONS below.
.LP
.SH "DESCRIPTION"
.LP
.LP
Java VisualVM is an intuitive graphical user interface that provides detailed information about Java technology\-based applications (Java applications) while they are running on a given Java Virtual Machine (JVM(*)). The name Java VisualVM comes from the fact that Java VisualVM provides information about the JVM software \f2visually\fP.
.LP
.LP
Java VisualVM combines several monitoring, troubleshooting, and profiling utilities into a single tool. For example, most of the functionality offered by the standalone tools \f2jmap\fP, \f2jinfo\fP, \f2jstat\fP and \f2jstack\fP have been integrated into Java VisualVM. Other functionalities, such as some of those offered by the JConsole tool, can be added as optional plug\-ins.
.LP
.SH "OPTIONS"
.LP
.LP
The following option is possible when you launch Java VisualVM.
.LP
.RS 3
.TP 3
\-J<jvm_option>\
Pass this \f2<jvm_option>\fP to the JVM software.
.RE
.LP
.SH "USAGE"
.LP
.LP
Java VisualVM is useful to Java application developers to troubleshoot applications and to monitor and improve the applications' performance. Java VisualVM can allow developers to generate and analyse heap dumps, track down memory leaks, perform and monitor garbage collection, and perform lightweight memory and CPU profiling. Plug\-ins also exist that expand the functionality of Java VisualVM. For example, most of the functionality of the JConsole tool is available via the MBeans Tab and JConsole Plug\-in Wrapper plug\-ins. You can choose from a catalog of standard Java VisualVM plug\-ins by selecting 'Tools' | 'Plugins' in the Java VisualVM menus.
.LP
.LP
Start Java VisualVM with the following command:
.LP
.nf
\f3
.fl
% jvisualvm \fP\f4<options>\fP\f3
.fl
\fP
.fi
.LP
.SH "SEE ALSO"
.LP
.LP
For more details about Java VisualVM see the following pages.
.LP
.RS 3
.TP 2
o
.na
\f2Java VisualVM developers' site\fP @
.fi
http://visualvm.java.net
.TP 2
o
.na
\f2Java VisualVM in Java SE platform documentation\fP @
.fi
http://download.oracle.com/javase/7/docs/technotes/guides/visualvm/index.html
.RE
.LP
.LP
\f2(* The terms "Java Virtual Machine" and "JVM" mean a Virtual Machine for the Java platform.)\fP
.LP

View File

@ -58,7 +58,6 @@ public class VersionCheck extends TestHelper {
"jmc",
"jmc.ini",
"jweblauncher",
"jvisualvm",
"packager",
"ssvagent",
"unpack200",
@ -100,7 +99,6 @@ public class VersionCheck extends TestHelper {
"jstat",
"jstatd",
"jweblauncher",
"jvisualvm",
"keytool",
"kinit",
"klist",