Skip to content

Commit

Permalink
Undo SunNativeProvider provider changes. They will be implemented in …
Browse files Browse the repository at this point in the history
…JDK-8345221.
  • Loading branch information
martinuy committed Nov 29, 2024
1 parent e646582 commit 29e9cba
Show file tree
Hide file tree
Showing 2 changed files with 68 additions and 12 deletions.
56 changes: 56 additions & 0 deletions src/java.base/share/classes/sun/security/action/PutAllAction.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
/*
* Copyright (c) 2003, 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. 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.action;

import java.util.Map;

import java.security.Provider;
import java.security.PrivilegedAction;

/**
* A convenience PrivilegedAction class for setting the properties of
* a provider. See the SunRsaSign provider for a usage example.
*
* @see sun.security.rsa.SunRsaSign
* @author Andreas Sterbenz
* @since 1.5
*/
public class PutAllAction implements PrivilegedAction<Void> {

private final Provider provider;
private final Map<?, ?> map;

public PutAllAction(Provider provider, Map<?, ?> map) {
this.provider = provider;
this.map = map;
}

public Void run() {
provider.putAll(map);
return null;
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
package sun.security.jgss.wrapper;

import java.io.Serial;
import java.util.HashMap;
import java.security.Provider;

import jdk.internal.util.OperatingSystem;
Expand Down Expand Up @@ -63,10 +64,10 @@ static void debug(String message) {
System.err.println(NAME + ": " + message);
}

private static final Oid[] MECH_OIDS = constructMechMap();
private static final HashMap<String, String> MECH_MAP = constructMechMap();

@SuppressWarnings("restricted")
private static Oid[] constructMechMap() {
private static HashMap<String, String> constructMechMap() {
try {
// Ensure the InetAddress class is loaded before
// loading j2gss. The library will access this class
Expand Down Expand Up @@ -111,29 +112,28 @@ private static Oid[] constructMechMap() {
debug("Loaded GSS library: " + libName);
}
Oid[] mechs = GSSLibStub.indicateMechs();
if (DEBUG) {
for (Oid mech : mechs) {
debug("Native MF for " + mech);
HashMap<String, String> map = new HashMap<>();
for (int i = 0; i < mechs.length; i++) {
if (DEBUG) {
debug("Native MF for " + mechs[i]);
}
map.put("GssApiMechanism." + mechs[i], MF_CLASS);
}
return mechs;
return map;
}
}
return null;
}

// initialize INSTANCE after MECH_OIDS is constructed
// initialize INSTANCE after MECH_MAP is constructed
static final Provider INSTANCE = new SunNativeProvider();

public SunNativeProvider() {
/* We are the Sun NativeGSS provider */
super(NAME, PROVIDER_VER, INFO);

if (MECH_OIDS != null) {
for (Oid mech : MECH_OIDS) {
putService(new Service(this, "GssApiMechanism",
mech.toString(), MF_CLASS, null, null));
}
if (MECH_MAP != null) {
putAll(MECH_MAP);
}
}
}

0 comments on commit 29e9cba

Please sign in to comment.