Proveedor getService() y método getServices() en Java

getService (tipo de string, algoritmo de string)

El método getService() de la clase java.security.Provider se utiliza para obtener el servicio que describe la implementación de este proveedor del tipo especificado de este algoritmo o alias.

Si no existe tal implementación, este método devuelve nulo. Si hay dos servicios coincidentes, uno agregado a este proveedor mediante putService() y otro agregado mediante put(), se devuelve el servicio agregado mediante putService().

Sintaxis:

public Provider.Service getService(String type, String algorithm)

Parámetros: este método toma el siguiente argumento como parámetro.

  • tipo : el tipo de servicio solicitado.
  • algoritmo : el nombre del algoritmo que no distingue entre mayúsculas y minúsculas (o alias alternativo) del servicio solicitado.

Valor devuelto: este método devuelve el servicio que describe el servicio coincidente de este proveedor o nulo si no existe dicho servicio.

Excepción: este método arroja NullPointerException si el tipo o el algoritmo es nulo.

A continuación se muestran los ejemplos para ilustrar el método getService() :

Ejemplo 1:

// Java program to demonstrate
// getService() method
  
import java.security.*;
import java.util.*;
  
public class GFG1 {
    public static void main(String[] argv) throws Exception
    {
  
        try {
            // creating the object of  SecureRandom
            Signature sr = Signature.getInstance("SHA1withDSA", "SUN");
  
            // getting the Provider of the SecureRandom sr
            // by using method getProvider()
            Provider provider = sr.getProvider();
  
            // getting the service of the provider using getServices() method
            Provider.Service service1 = provider
                                            .getService("Signature", sr.getAlgorithm());
  
            // printing the service
            System.out.println("Provider service : " + service1);
        }
  
        catch (NoSuchAlgorithmException e) {
            System.out.println("Exception thrown : " + e);
        }
    }
}
Producción:

Provider service : SUN: Signature.SHA1withDSA -> sun.security.provider.DSA$SHA1withDSA
  aliases: [DSA, DSS, SHA/DSA, SHA-1/DSA, SHA1/DSA, SHAwithDSA, DSAWithSHA1, OID.1.2.840.10040.4.3, 1.2.840.10040.4.3, 1.3.14.3.2.13, 1.3.14.3.2.27]
  attributes: {ImplementedIn=Software, KeySize=1024, SupportedKeyClasses=java.security.interfaces.DSAPublicKey|java.security.interfaces.DSAPrivateKey}

Ejemplo 2: para mostrar NullPointerException lanzada por el método getService().

// Java program to demonstrate
// getService() method
  
import java.security.*;
import java.util.*;
  
public class GFG1 {
    public static void main(String[] argv) throws Exception
    {
  
        try {
            // creating the object of  SecureRandom
            Signature sr = Signature.getInstance("SHA1withDSA", "SUN");
  
            // getting the Provider of the SecureRandom sr
            // by using method getProvider()
            Provider provider = sr.getProvider();
  
            // getting the service of the provider using getServices() method
            Provider.Service service1 = provider
                                            .getService(null, sr.getAlgorithm());
  
            // printing the service
            System.out.println("Provider service : " + service1);
        }
  
        catch (NoSuchAlgorithmException e) {
            System.out.println("Exception thrown : " + e);
        }
  
        catch (NullPointerException e) {
            System.out.println("Exception thrown : " + e);
        }
    }
}
Producción:

Exception thrown : java.lang.NullPointerException

obtenerServicios()

El método getServices() de la clase java.security.Provider se utiliza para obtener un conjunto no modificable de todos los servicios admitidos por este proveedor.

Sintaxis:

public Set<Provider.Service> getServices()

Valor devuelto: este método devuelve un conjunto no modificable de todos los servicios admitidos por este proveedor.

A continuación se muestran los ejemplos para ilustrar el método getServices():

Programa 1:

// Java program to demonstrate
// getService() method
  
import java.security.*;
import java.util.*;
  
public class GFG1 {
    public static void main(String[] argv) throws Exception
    {
        // Declaring int variable
        int i = 5;
  
        try {
            // creating the object of  SecureRandom
            Signature sr = Signature.getInstance("SHA1withDSA", "SUN");
  
            // getting the Provider of the SecureRandom sr
            // by using method getProvider()
            Provider provider = sr.getProvider();
  
            // Declaring the variable of set<Map> type
            Set<Provider.Service> servicelist;
  
            // getting the service of the provider using getServices() method
            servicelist = provider.getServices();
  
            // Creating the object of iterator to iterate set
            Iterator<Provider.Service> iter = servicelist.iterator();
  
            // printing the set elements
            System.out.println("Provider servicelist : \n ");
            while (i > 0) {
                System.out.println("Value is : " + iter.next());
                i--;
            }
        }
  
        catch (NoSuchAlgorithmException e) {
            System.out.println("Exception thrown : " + e);
        }
  
        catch (NullPointerException e) {
            System.out.println("Exception thrown : " + e);
        }
    }
}
Producción:

Provider servicelist : 
 
Value is : SUN: SecureRandom.NativePRNG -> sun.security.provider.NativePRNG

Value is : SUN: SecureRandom.SHA1PRNG -> sun.security.provider.SecureRandom
  attributes: {ImplementedIn=Software}

Value is : SUN: SecureRandom.NativePRNGBlocking -> sun.security.provider.NativePRNG$Blocking

Value is : SUN: SecureRandom.NativePRNGNonBlocking -> sun.security.provider.NativePRNG$NonBlocking

Value is : SUN: Signature.SHA1withDSA -> sun.security.provider.DSA$SHA1withDSA
  aliases: [DSA, DSS, SHA/DSA, SHA-1/DSA, SHA1/DSA, SHAwithDSA, DSAWithSHA1, OID.1.2.840.10040.4.3, 1.2.840.10040.4.3, 1.3.14.3.2.13, 1.3.14.3.2.27]
  attributes: {ImplementedIn=Software, KeySize=1024, SupportedKeyClasses=java.security.interfaces.DSAPublicKey|java.security.interfaces.DSAPrivateKey}

Publicación traducida automáticamente

Artículo escrito por RohitPrasad3 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *