[Info-vax] Java Is UnbeluckingFievable (was Re: Versioning fun)

Lawrence D'Oliveiro ldo at nz.invalid
Wed Mar 27 17:16:33 EDT 2024


On Wed, 27 Mar 2024 09:11:43 -0400, Arne Vajhøj wrote:

> A relative little know fact about the JVM is that it implicit prefixes
> class names with the id of the classloader.

I currently have to use Java for a project that involves connecting to an 
in-house server via HTTPS (modifying an existing app). If there is one 
word that sums up the Java language and APIs, it is “bureaucracy”.

Consider setting up a TLS/SSL context. In Python, creating the context 
object is one call:

    sctx = ssl.SSLContext(protocol = ssl.PROTOCOL_TLS_CLIENT)

Loading a private CA cert is one call:

    sctx.load_verify_locations(ca_cert_file)

Loading a cert and key for client-side authentication is one call:

    sctx.load_cert_chain(client_cert_file, client_key_file)

But in Java, you first need to create a KeyStore. Load the CA cert via a 
CertificateFactory and creating a TrustedCertificateEntry. Call the 
factory’s generateCertificate routine to load the client cert. Then go 
through a whole lot more contortions to load the client key file.

And then, you have to set up a TrustManagerFactory to create a 
TrustManager, and a KeyManagerFactory to create a KeyManager, so that you 
can load the contents of the KeyStore, via those two separate intermediary 
objects, into an actual SSLContext for use in HTTPS connections.



More information about the Info-vax mailing list