< prev index next >

jdk/src/java.base/share/classes/sun/security/ssl/ClientKeyExchangeService.java

Print this page




  24  */
  25 
  26 package sun.security.ssl;
  27 
  28 import sun.security.action.GetPropertyAction;
  29 
  30 import java.io.File;
  31 import java.io.FilePermission;
  32 import java.io.IOException;
  33 import java.security.AccessControlContext;
  34 import java.security.AccessController;
  35 import java.security.Principal;
  36 import java.security.PrivilegedAction;
  37 import java.security.SecureRandom;
  38 import java.util.*;
  39 
  40 /**
  41  * Models a service that provides support for a particular client key exchange
  42  * mode. Currently used to implement Kerberos-related cipher suites.
  43  *
  44  * @since 1.9
  45  */
  46 public interface ClientKeyExchangeService {
  47 
  48     static class Loader {
  49         private static final Map<String,ClientKeyExchangeService>
  50                 providers = new HashMap<>();
  51 
  52         static {
  53             final String key = "java.home";
  54             String path = AccessController.doPrivileged(
  55                     new GetPropertyAction(key), null,
  56                     new PropertyPermission(key, "read"));
  57             ServiceLoader<ClientKeyExchangeService> sc =
  58                     AccessController.doPrivileged(
  59                             (PrivilegedAction<ServiceLoader<ClientKeyExchangeService>>)
  60                                     () -> ServiceLoader.loadInstalled(ClientKeyExchangeService.class),
  61                             null,
  62                             new FilePermission(new File(path, "-").toString(), "read"));
  63             Iterator<ClientKeyExchangeService> iter = sc.iterator();
  64             while (iter.hasNext()) {




  24  */
  25 
  26 package sun.security.ssl;
  27 
  28 import sun.security.action.GetPropertyAction;
  29 
  30 import java.io.File;
  31 import java.io.FilePermission;
  32 import java.io.IOException;
  33 import java.security.AccessControlContext;
  34 import java.security.AccessController;
  35 import java.security.Principal;
  36 import java.security.PrivilegedAction;
  37 import java.security.SecureRandom;
  38 import java.util.*;
  39 
  40 /**
  41  * Models a service that provides support for a particular client key exchange
  42  * mode. Currently used to implement Kerberos-related cipher suites.
  43  *
  44  * @since 9
  45  */
  46 public interface ClientKeyExchangeService {
  47 
  48     static class Loader {
  49         private static final Map<String,ClientKeyExchangeService>
  50                 providers = new HashMap<>();
  51 
  52         static {
  53             final String key = "java.home";
  54             String path = AccessController.doPrivileged(
  55                     new GetPropertyAction(key), null,
  56                     new PropertyPermission(key, "read"));
  57             ServiceLoader<ClientKeyExchangeService> sc =
  58                     AccessController.doPrivileged(
  59                             (PrivilegedAction<ServiceLoader<ClientKeyExchangeService>>)
  60                                     () -> ServiceLoader.loadInstalled(ClientKeyExchangeService.class),
  61                             null,
  62                             new FilePermission(new File(path, "-").toString(), "read"));
  63             Iterator<ClientKeyExchangeService> iter = sc.iterator();
  64             while (iter.hasNext()) {


< prev index next >