Package org.microproxy
Record Class ProxyFailure.TlsFailed
java.lang.Object
java.lang.Record
org.microproxy.ProxyFailure.TlsFailed
- Record Components:
hostAndPort- the destination host and port, ornullwhen unavailablecause- the failure that triggered this event
- All Implemented Interfaces:
ProxyFailure
- Enclosing interface:
ProxyFailure
public static record ProxyFailure.TlsFailed(String hostAndPort, IOException cause)
extends Record
implements ProxyFailure
The TLS handshake with the server (when intercepting) or with a TLS chained proxy failed or
did not finish within
HttpProxyServerBootstrap.withTlsHandshakeTimeout(java.time.Duration) (or the
request's HttpFilters.proxyToServerTlsHandshakeTimeout()), e.g. because its
certificate is not trusted. Default 502.
cause is the handshake's own exception, as the JDK threw it, with its whole cause
chain: an SSLHandshakeException whose causes say, for example, that the
certificate was revoked (a CertPathValidatorException with reason
CertPathValidatorException.BasicReason.REVOKED); a SocketTimeoutException for a handshake that overran its deadline. reason()
and alert() read the chain for the common cases.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic enumWhy a TLS handshake failed, read from the exception's cause chain: the certificate checks first, then an alert from the peer, a timeout, or anything else.Nested classes/interfaces inherited from interface org.microproxy.ProxyFailure
ProxyFailure.BadRequest, ProxyFailure.BadServerResponse, ProxyFailure.ConnectFailed, ProxyFailure.NoConnectionAvailable, ProxyFailure.NoRoute, ProxyFailure.RequestTooLarge, ProxyFailure.ServerTimeout, ProxyFailure.TlsFailed, ProxyFailure.UnresolvedHost -
Constructor Summary
ConstructorsConstructorDescriptionTlsFailed(String hostAndPort, IOException cause) Creates an instance of aTlsFailedrecord class. -
Method Summary
Modifier and TypeMethodDescriptionalert()Returns the description of the TLS alert the peer ended the handshake with, as RFC 8446 section 6 names it ("unrecognized_name","handshake_failure", ...), or null when the peer sent none.cause()Returns the value of thecauserecord component.final booleanIndicates whether some other object is "equal to" this one.final inthashCode()Returns a hash code value for this object.Returns the value of thehostAndPortrecord component.reason()Returns why the handshake failed, as far ascause()'s chain tells.status()Returns the status of the proxy's default answer.final StringtoString()Returns a string representation of this record class.
-
Constructor Details
-
TlsFailed
Creates an instance of aTlsFailedrecord class.- Parameters:
hostAndPort- the value for thehostAndPortrecord componentcause- the value for thecauserecord component
-
-
Method Details
-
status
Description copied from interface:ProxyFailureReturns the status of the proxy's default answer.- Specified by:
statusin interfaceProxyFailure- Returns:
- the status of the proxy's default answer
-
reason
Returns why the handshake failed, as far ascause()'s chain tells.- Returns:
- why the handshake failed, as far as
cause()'s chain tells - See Also:
-
alert
Returns the description of the TLS alert the peer ended the handshake with, as RFC 8446 section 6 names it ("unrecognized_name","handshake_failure", ...), or null when the peer sent none.- Returns:
- the description of the TLS alert the peer ended the handshake with, as RFC 8446
section 6 names it (
"unrecognized_name","handshake_failure", ...), or null when the peer sent none - See Also:
-
toString
Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components. -
hashCode
public final int hashCode()Returns a hash code value for this object. The value is derived from the hash code of each of the record components. -
equals
Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. All components in this record class are compared withObjects::equals(Object,Object). -
hostAndPort
Returns the value of thehostAndPortrecord component.- Returns:
- the value of the
hostAndPortrecord component
-
cause
Returns the value of thecauserecord component.- Returns:
- the value of the
causerecord component
-