mirror of
https://github.com/openjdk/jdk.git
synced 2026-02-13 03:45:19 +00:00
Merge
This commit is contained in:
commit
04d96f9698
@ -34,11 +34,13 @@ import java.io.ObjectStreamException;
|
||||
/**
|
||||
* This is the common base class of all Java language enumeration types.
|
||||
*
|
||||
* More information about enums, including implicit methods synthesised
|
||||
* by the compiler, can be found in <i>The Java™ Language
|
||||
* Specification, Third Edition</i>, <a
|
||||
* More information about enums, including descriptions of the
|
||||
* implicitly declared methods synthesized by the compiler, can be
|
||||
* found in <i>The Java™ Language Specification, Third
|
||||
* Edition</i>, <a
|
||||
* href="http://java.sun.com/docs/books/jls/third_edition/html/classes.html#8.9">§8.9</a>.
|
||||
*
|
||||
* @param <E> The enum type subclass
|
||||
* @author Josh Bloch
|
||||
* @author Neal Gafter
|
||||
* @see Class#getEnumConstants()
|
||||
@ -197,6 +199,15 @@ public abstract class Enum<E extends Enum<E>>
|
||||
* to declare an enum constant in this type. (Extraneous whitespace
|
||||
* characters are not permitted.)
|
||||
*
|
||||
* <p>Note that for a particular enum type {@code T}, the
|
||||
* implicitly declared {@code public static T valueOf(String)}
|
||||
* method on that enum may be used instead of this method to map
|
||||
* from a name to the corresponding enum constant. All the
|
||||
* constants of an enum type can be obtained by calling the
|
||||
* implicit {@code public static T[] values()} method of that
|
||||
* type.
|
||||
*
|
||||
* @param <T> The enum type whose constant is to be returned
|
||||
* @param enumType the {@code Class} object of the enum type from which
|
||||
* to return a constant
|
||||
* @param name the name of the constant to return
|
||||
|
||||
@ -107,8 +107,9 @@ import java.io.IOException;
|
||||
* </ul>
|
||||
* </blockquote>
|
||||
*
|
||||
* <p>The implementation conforms to RFC 2965, section 3.3.
|
||||
* <p>The implementation conforms to <a href="http://www.ietf.org/rfc/rfc2965.txt">RFC 2965</a>, section 3.3.
|
||||
*
|
||||
* @see CookiePolicy
|
||||
* @author Edward Wang
|
||||
* @since 1.6
|
||||
*/
|
||||
|
||||
@ -33,6 +33,7 @@ import java.util.TimeZone;
|
||||
import java.util.Date;
|
||||
|
||||
import java.lang.NullPointerException; // for javadoc
|
||||
import java.util.Locale;
|
||||
|
||||
/**
|
||||
* An HttpCookie object represents an http cookie, which carries state
|
||||
@ -1096,7 +1097,7 @@ public final class HttpCookie implements Cloneable {
|
||||
static {
|
||||
cDateFormats = new SimpleDateFormat[COOKIE_DATE_FORMATS.length];
|
||||
for (int i = 0; i < COOKIE_DATE_FORMATS.length; i++) {
|
||||
cDateFormats[i] = new SimpleDateFormat(COOKIE_DATE_FORMATS[i]);
|
||||
cDateFormats[i] = new SimpleDateFormat(COOKIE_DATE_FORMATS[i], Locale.US);
|
||||
cDateFormats[i].setTimeZone(TimeZone.getTimeZone("GMT"));
|
||||
}
|
||||
}
|
||||
|
||||
@ -39,7 +39,6 @@ import java.io.BufferedReader;
|
||||
import java.io.InputStreamReader;
|
||||
import java.io.IOException;
|
||||
import java.util.Enumeration;
|
||||
import java.util.List;
|
||||
import java.util.StringTokenizer;
|
||||
import java.net.InetAddress;
|
||||
import java.net.UnknownHostException;
|
||||
@ -156,11 +155,7 @@ public class Config {
|
||||
configFile = loadConfigFile();
|
||||
stanzaTable = parseStanzaTable(configFile);
|
||||
} catch (IOException ioe) {
|
||||
KrbException ke = new KrbException("Could not load " +
|
||||
"configuration file " +
|
||||
ioe.getMessage());
|
||||
ke.initCause(ioe);
|
||||
throw(ke);
|
||||
// No krb5.conf, no problem. We'll use DNS etc.
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1057,7 +1052,12 @@ public class Config {
|
||||
public boolean useDNS(String name) {
|
||||
String value = getDefault(name, "libdefaults");
|
||||
if (value == null) {
|
||||
return getDefaultBooleanValue("dns_fallback", "libdefaults");
|
||||
value = getDefault("dns_fallback", "libdefaults");
|
||||
if ("false".equalsIgnoreCase(value)) {
|
||||
return false;
|
||||
} else {
|
||||
return true;
|
||||
}
|
||||
} else {
|
||||
return value.equalsIgnoreCase("true");
|
||||
}
|
||||
@ -1079,12 +1079,39 @@ public class Config {
|
||||
|
||||
/**
|
||||
* Gets default realm.
|
||||
* @throws KrbException where no realm can be located
|
||||
* @return the default realm, always non null
|
||||
*/
|
||||
public String getDefaultRealm() throws KrbException {
|
||||
Exception cause = null;
|
||||
String realm = getDefault("default_realm", "libdefaults");
|
||||
if ((realm == null) && useDNS_Realm()) {
|
||||
// use DNS to locate Kerberos realm
|
||||
realm = getRealmFromDNS();
|
||||
try {
|
||||
realm = getRealmFromDNS();
|
||||
} catch (KrbException ke) {
|
||||
cause = ke;
|
||||
}
|
||||
}
|
||||
if (realm == null) {
|
||||
realm = java.security.AccessController.doPrivileged(
|
||||
new java.security.PrivilegedAction<String>() {
|
||||
@Override
|
||||
public String run() {
|
||||
String osname = System.getProperty("os.name");
|
||||
if (osname.startsWith("Windows")) {
|
||||
return System.getenv("USERDNSDOMAIN");
|
||||
}
|
||||
return null;
|
||||
}
|
||||
});
|
||||
}
|
||||
if (realm == null) {
|
||||
KrbException ke = new KrbException("Cannot locate default realm");
|
||||
if (cause != null) {
|
||||
ke.initCause(cause);
|
||||
}
|
||||
throw ke;
|
||||
}
|
||||
return realm;
|
||||
}
|
||||
@ -1092,17 +1119,48 @@ public class Config {
|
||||
/**
|
||||
* Returns a list of KDC's with each KDC separated by a space
|
||||
*
|
||||
* @param realm the realm for which the master KDC is desired
|
||||
* @return the list of KDCs
|
||||
* @param realm the realm for which the KDC list is desired
|
||||
* @throws KrbException if there's no way to find KDC for the realm
|
||||
* @return the list of KDCs separated by a space, always non null
|
||||
*/
|
||||
public String getKDCList(String realm) throws KrbException {
|
||||
if (realm == null) {
|
||||
realm = getDefaultRealm();
|
||||
}
|
||||
Exception cause = null;
|
||||
String kdcs = getDefault("kdc", realm);
|
||||
if ((kdcs == null) && useDNS_KDC()) {
|
||||
// use DNS to locate KDC
|
||||
kdcs = getKDCFromDNS(realm);
|
||||
try {
|
||||
kdcs = getKDCFromDNS(realm);
|
||||
} catch (KrbException ke) {
|
||||
cause = ke;
|
||||
}
|
||||
}
|
||||
if (kdcs == null) {
|
||||
kdcs = java.security.AccessController.doPrivileged(
|
||||
new java.security.PrivilegedAction<String>() {
|
||||
@Override
|
||||
public String run() {
|
||||
String osname = System.getProperty("os.name");
|
||||
if (osname.startsWith("Windows")) {
|
||||
String logonServer = System.getenv("LOGONSERVER");
|
||||
if (logonServer != null
|
||||
&& logonServer.startsWith("\\\\")) {
|
||||
logonServer = logonServer.substring(2);
|
||||
}
|
||||
return logonServer;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
});
|
||||
}
|
||||
if (kdcs == null) {
|
||||
KrbException ke = new KrbException("Cannot locate KDC");
|
||||
if (cause != null) {
|
||||
ke.initCause(cause);
|
||||
}
|
||||
throw ke;
|
||||
}
|
||||
return kdcs;
|
||||
}
|
||||
@ -1117,7 +1175,7 @@ public class Config {
|
||||
String realm = null;
|
||||
String hostName = null;
|
||||
try {
|
||||
hostName = InetAddress.getLocalHost().getHostName();
|
||||
hostName = InetAddress.getLocalHost().getCanonicalHostName();
|
||||
} catch (UnknownHostException e) {
|
||||
KrbException ke = new KrbException(Krb5.KRB_ERR_GENERIC,
|
||||
"Unable to locate Kerberos realm: " + e.getMessage());
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2006 Sun Microsystems, Inc. All Rights Reserved.
|
||||
* Copyright 2006-2009 Sun Microsystems, Inc. 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
|
||||
@ -133,7 +133,7 @@ class KrbServiceLocator {
|
||||
*/
|
||||
static String[] getKerberosService(String realmName, String protocol) {
|
||||
|
||||
String dnsUrl = "dns:///_kerberos." + protocol + realmName;
|
||||
String dnsUrl = "dns:///_kerberos." + protocol + "." + realmName;
|
||||
String[] hostports = null;
|
||||
|
||||
try {
|
||||
|
||||
48
jdk/test/java/net/CookieHandler/B6791927.java
Normal file
48
jdk/test/java/net/CookieHandler/B6791927.java
Normal file
@ -0,0 +1,48 @@
|
||||
/*
|
||||
* Copyright 2009 Sun Microsystems, Inc. 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
|
||||
* CA 95054 USA or visit www.sun.com if you need additional information or
|
||||
* have any questions.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test
|
||||
* @bug 6791927
|
||||
* @summary Wrong Locale in HttpCookie::expiryDate2DeltaSeconds
|
||||
*/
|
||||
|
||||
import java.net.*;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
|
||||
public class B6791927 {
|
||||
public static final void main( String[] aaParamters ) throws Exception{
|
||||
// Forces a non US locale
|
||||
Locale.setDefault(Locale.FRANCE);
|
||||
List<HttpCookie> cookies = HttpCookie.parse("set-cookie: CUSTOMER=WILE_E_COYOTE; expires=Wednesday, 09-Nov-2019 23:12:40 GMT");
|
||||
if (cookies == null || cookies.isEmpty()) {
|
||||
throw new RuntimeException("No cookie found");
|
||||
}
|
||||
for (HttpCookie c : cookies) {
|
||||
if (c.getMaxAge() == 0) {
|
||||
throw new RuntimeException("Expiration date shouldn't be 0");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2008 Sun Microsystems, Inc. All Rights Reserved.
|
||||
* Copyright 2008-2009 Sun Microsystems, Inc. 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
|
||||
@ -23,7 +23,8 @@
|
||||
/*
|
||||
* @test
|
||||
* @bug 6673164
|
||||
* @summary dns_fallback parse error
|
||||
* @bug 6552334
|
||||
* @summary fix dns_fallback parse error, and use dns by default
|
||||
*/
|
||||
|
||||
import sun.security.krb5.*;
|
||||
@ -31,6 +32,8 @@ import java.io.*;
|
||||
|
||||
public class DnsFallback {
|
||||
public static void main(String[] args) throws Exception {
|
||||
|
||||
// for 6673164
|
||||
check("true", "true", true);
|
||||
check("false", "true", false);
|
||||
check("true", "false", true);
|
||||
@ -39,6 +42,9 @@ public class DnsFallback {
|
||||
check("false", null, false);
|
||||
check(null, "true", true);
|
||||
check(null, "false", false);
|
||||
|
||||
// for 6552334
|
||||
check(null, null, true);
|
||||
}
|
||||
|
||||
static void check(String realm, String fallback, boolean output) throws Exception {
|
||||
|
||||
@ -136,6 +136,7 @@ public class B6216082 {
|
||||
server.getLocalPort(), "/");
|
||||
HttpURLConnection uc = (HttpURLConnection)url.openConnection();
|
||||
System.out.println(uc.getResponseCode());
|
||||
uc.disconnect();
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
} finally {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user