...

Package config

import "solace.dev/go/messaging/pkg/solace/config"
Overview
Index

Overview ▾

Package config contains the following constructs used for configuration:

- a set of keys that can be used to configure a variety of messaging services, such as a solace.MessagingService, solace.DirectMessageReceiver, etc.

- a set of strategies that can be used to configure various features on various builders, such as Kerberos authentication on a MessagingServiceBuilder and Replay on a PersistentMessageReceiver.

- a collection of map types that represent a valid configuration that can be passed to a builder.

For the various maps, such as a ServicePropertyMap, the configuration may be loaded as JSON as shown:

import "encoding/json"

...

var myJsonConfig []byte := []byte(`{"solace":{"messaging":{"transport":{"host":"10.10.10.10"}}}}`)
var myServicePropertyMap config.ServicePropertyMap
json.Unmarshal(myJsonConfig, &myServicePropertyMap)
messaging.NewMessagingServiceBuilder().FromConfigurationProvider(myServicePropertyMap)
...

Index ▾

Constants
type AuthenticationStrategy
    func BasicUserNamePasswordAuthentication(username, password string) AuthenticationStrategy
    func ClientCertificateAuthentication(certificateFile, keyFile, keyPassword string) AuthenticationStrategy
    func KerberosAuthentication(serviceName string) AuthenticationStrategy
    func OAuth2Authentication(accessToken, oidcIDToken, issuerIdentifier string) AuthenticationStrategy
    func (strategy AuthenticationStrategy) String() string
    func (strategy AuthenticationStrategy) ToProperties() ServicePropertyMap
type MessagePropertiesConfigurationProvider
type MessageProperty
type MessagePropertyMap
    func (messagePropertyMap MessagePropertyMap) GetConfiguration() MessagePropertyMap
    func (messagePropertyMap MessagePropertyMap) MarshalJSON() ([]byte, error)
    func (messagePropertyMap MessagePropertyMap) UnmarshalJSON(b []byte) error
type MessageUserPropertyConstant
type MissingResourcesCreationStrategy
type PublisherPropertiesConfigurationProvider
type PublisherProperty
type PublisherPropertyMap
    func (publisherPropertyMap PublisherPropertyMap) GetConfiguration() PublisherPropertyMap
    func (publisherPropertyMap PublisherPropertyMap) MarshalJSON() ([]byte, error)
    func (publisherPropertyMap PublisherPropertyMap) UnmarshalJSON(b []byte) error
type ReceiverPropertiesConfigurationProvider
type ReceiverProperty
type ReceiverPropertyMap
    func (receiverPropertyMap ReceiverPropertyMap) GetConfiguration() ReceiverPropertyMap
    func (receiverPropertyMap ReceiverPropertyMap) MarshalJSON() ([]byte, error)
    func (receiverPropertyMap ReceiverPropertyMap) UnmarshalJSON(b []byte) error
type ReplayStrategy
    func ReplayStrategyAllMessages() ReplayStrategy
    func ReplayStrategyReplicationGroupMessageID(replicationGroupMessageID rgmid.ReplicationGroupMessageID) ReplayStrategy
    func ReplayStrategyTimeBased(replayDate time.Time) ReplayStrategy
    func (strategy ReplayStrategy) GetData() interface{}
    func (strategy ReplayStrategy) GetStrategy() string
type RetryStrategy
    func RetryStrategyForeverRetry() RetryStrategy
    func RetryStrategyForeverRetryWithInterval(retryInterval time.Duration) RetryStrategy
    func RetryStrategyNeverRetry() RetryStrategy
    func RetryStrategyParameterizedRetry(retries uint, retryInterval time.Duration) RetryStrategy
    func (strategy RetryStrategy) GetRetries() int
    func (strategy RetryStrategy) GetRetryInterval() time.Duration
type ServicePropertiesConfigurationProvider
type ServiceProperty
type ServicePropertyMap
    func (servicePropertyMap ServicePropertyMap) GetConfiguration() ServicePropertyMap
    func (servicePropertyMap ServicePropertyMap) MarshalJSON() ([]byte, error)
    func (servicePropertyMap ServicePropertyMap) String() string
    func (servicePropertyMap ServicePropertyMap) UnmarshalJSON(b []byte) error
type TransportSecurityProtocol
type TransportSecurityStrategy
    func NewTransportSecurityStrategy() TransportSecurityStrategy
    func (tss TransportSecurityStrategy) Downgradable() TransportSecurityStrategy
    func (tss TransportSecurityStrategy) ToProperties() ServicePropertyMap
    func (tss TransportSecurityStrategy) WithCertificateValidation(ignoreExpiration bool, validateServerName bool, trustStoreFilePath string, trustedCommonNameList string) TransportSecurityStrategy
    func (tss TransportSecurityStrategy) WithCipherSuites(cipherSuiteList string) TransportSecurityStrategy
    func (tss TransportSecurityStrategy) WithExcludedProtocols(protocols ...TransportSecurityProtocol) TransportSecurityStrategy
    func (tss TransportSecurityStrategy) WithoutCertificateValidation() TransportSecurityStrategy

Package files

doc.go format_utils.go message_properties.go message_publisher_constants.go message_publisher_properties.go message_receiver_constants.go message_receiver_properties.go message_receiver_strategies.go message_user_property_constants.go messaging_service_constants.go messaging_service_properties.go messaging_service_strategies.go

Constants

The various back pressure strategies that can be used when configuring Publisher back pressure.

const (
    // PublisherPropertyBackPressureStrategyBufferWaitWhenFull waits for space on a call to publish
    // when the publisher's buffer is full.
    PublisherPropertyBackPressureStrategyBufferWaitWhenFull = "BUFFER_WAIT_WHEN_FULL"
    // PublisherPropertyBackPressureStrategyBufferRejectWhenFull rejects the call to publish
    // when the publisher's buffer is full.
    PublisherPropertyBackPressureStrategyBufferRejectWhenFull = "BUFFER_REJECT_WHEN_FULL"
)

The various back pressure strategies that can be used to configure a receiver.

const (
    // ReceiverBackPressureStrategyDropLatest drops the newest incoming message when the receiver's
    // buffer is full.
    ReceiverBackPressureStrategyDropLatest = "BUFFER_DROP_LATEST_WHEN_FULL"
    // ReceiverBackPressureStrategyDropOldest drops the oldest buffered message when the receiver's
    // buffer is full.
    ReceiverBackPressureStrategyDropOldest = "BUFFER_DROP_OLDEST_WHEN_FULL"
)

The various replay strategies available when configuring Replay on a PersistentMessageReceiver.

const (
    // PersistentReplayAll replays all messages stored on a replay log.
    PersistentReplayAll = "REPLAY_ALL"
    // PersistentReplayTimeBased replays all messages stored on a replay log after the specified date.
    PersistentReplayTimeBased = "REPLAY_TIME_BASED"
    // PersistentReplayIDBased replays all the messages stored on a replay log after the given message ID.
    PersistentReplayIDBased = "REPLAY_ID_BASED"
)

The available acknowledgement strategies used on a PersistentMessageReceiver.

const (
    // PersistentReceiverAutoAck acknowledge the message automatically.
    PersistentReceiverAutoAck = "AUTO_ACK"
    // PersistentReceiverClientAck does not acknowledge the message and messages instead needs to be
    // acknowledged with PersistentMessageReceiver::Ack.
    PersistentReceiverClientAck = "CLIENT_ACK"
)

The various authentication schemes available for use when configuring a MessagingService's authentication.

const (
    // AuthenticationSchemeBasic configures basic authentication.
    AuthenticationSchemeBasic = "AUTHENTICATION_SCHEME_BASIC"
    // AuthenticationSchemeClientCertificate configures client certificate authentication.
    AuthenticationSchemeClientCertificate = "AUTHENTICATION_SCHEME_CLIENT_CERTIFICATE"
    // AuthenticationSchemeKerberos configures Generic Security Service for Kerberos authentication.
    AuthenticationSchemeKerberos = "AUTHENTICATION_SCHEME_GSS_KRB"
    // AuthenticationSchemeOAuth2 configures OAuth2 authentication.
    AuthenticationSchemeOAuth2 = "AUTHENTICATION_SCHEME_OAUTH2"
)

DowngradeToPlaintext can be used with TransportLayerSecurityPropertyProtocolDowngradeTo to configure downgrading the TLS connection to the broker to plain-text after authenticating over TLS.

const DowngradeToPlaintext = "PLAIN_TEXT"
const (
    // A standard property key that clients should use if they want to group messages. It is used to
    // specify a partition queue name, when supported by a PubSub+ messaging broker. Expected value
    // is UTF-8 encoded up to 255 bytes long string. This constant can be passed as the property
    // string to any generic property setter on the OutboundMessageBuilder that takes properties from
    // message_properties.go as a parameter, such as
    // OutboundMessage.WithProperty().
    QueuePartitionKey = "JMSXGroupID"
)

type AuthenticationStrategy

AuthenticationStrategy represents an authentication strategy.

type AuthenticationStrategy struct {
    // contains filtered or unexported fields
}

func BasicUserNamePasswordAuthentication

func BasicUserNamePasswordAuthentication(username, password string) AuthenticationStrategy

BasicUserNamePasswordAuthentication gets a basic authentication strategy with the provided credentials.

func ClientCertificateAuthentication

func ClientCertificateAuthentication(certificateFile, keyFile, keyPassword string) AuthenticationStrategy

ClientCertificateAuthentication gets a client certificate-based authentication strategy using the provided certificate file, key file, and key password if required. If no keyFile or keyPassword is required, use an empty string for the keyFile and keyPassword arguments.

func KerberosAuthentication

func KerberosAuthentication(serviceName string) AuthenticationStrategy

KerberosAuthentication creates a Kerberos-based authentication strategy. Optionally, a Kerberos service name can be provided. If the service name is not required, an empty string can be passed to the serviceName argument.

To implement Kerberos authentication for clients connecting to a broker, the following configuration is required the broker:

Further reference can be found at

https://docs.solace.com/Configuring-and-Managing/Configuring-Client-Authentication.htm#Config-Kerberos

func OAuth2Authentication

func OAuth2Authentication(accessToken, oidcIDToken, issuerIdentifier string) AuthenticationStrategy

OAuth2Authentication creates an OAuth2-based authentication strategy using the specified tokens. At least one of accessToken or OIDC idToken must be provided. Optionally, issuerIdentifier can be provided. If any of the parameters is not required, an empty string can be passed.

func (AuthenticationStrategy) String

func (strategy AuthenticationStrategy) String() string

func (AuthenticationStrategy) ToProperties

func (strategy AuthenticationStrategy) ToProperties() ServicePropertyMap

ToProperties gets the configuration of the authentication strategy in the form of a ServicePropertyMap.

type MessagePropertiesConfigurationProvider

MessagePropertiesConfigurationProvider describes the behavior of a configuration provider that provides properties for messages.

type MessagePropertiesConfigurationProvider interface {
    // GetConfiguration returns a copy of the configuration of the MessagePropertiesConfigurationProvider
    // as a MessagePropertyMap.
    GetConfiguration() MessagePropertyMap
}

type MessageProperty

MessageProperty is a property that can be set on a messages.

type MessageProperty string

These constants are used as keys in a MessagePropertyMap to configure the message.

const (
    // MessagePropertyApplicationMessageType specifies an application message type. This value is only used by applications,
    // and is passed through this API unmodified.
    MessagePropertyApplicationMessageType MessageProperty = "solace.messaging.message.application-message-type"

    // MessagePropertyApplicationMessageID specifies an application-specific message identifier. This value is used by
    // applications only, and is passed through the API unmodified.
    MessagePropertyApplicationMessageID MessageProperty = "solace.messaging.message.application-message-id"

    // MessagePropertyElidingEligible specifies whether the message is eligible for eliding.
    MessagePropertyElidingEligible MessageProperty = "solace.messaging.message.eliding-eligible"

    // MessagePropertyPriority specifies an optional message priority.
    // The valid priority value range is 0-255 with 0 as the lowest priority and 255 as the
    // highest. A value of -1 indicates the priority is not set and that a default priority value is used
    // instead.
    MessagePropertyPriority MessageProperty = "solace.messaging.message.priority"

    // MessagePropertyHTTPContentType specifies the HTTP content-type header value for interaction with an HTTP client.
    // Accepted values Defined in RFC7231, Section-3.1.2.2.
    MessagePropertyHTTPContentType MessageProperty = "solace.messaging.message.http-content"

    // MessagePropertyHTTPContentEncoding specifies the HTTP content-type encoding value for interaction with an HTTP client.
    // Accepted values Defined in rfc2616 section-14.11
    MessagePropertyHTTPContentEncoding MessageProperty = "solace.messaging.message.http-encoding"

    // MessagePropertyCorrelationID key specifies a correlation ID. The correlation ID is used for correlating a request
    // to a reply and should be as random as possible.
    // This variable is being also used for the Request-Reply API. For this reason, it is not recommended
    // to use this property on a message builder instance but only on a publisher interface
    // where it's available.
    MessagePropertyCorrelationID MessageProperty = "solace.messaging.message.correlation-id"

    // MessagePropertyPersistentTimeToLive specifies the number of milliseconds before the message is discarded or moved to a
    // Dead Message Queue. The default value is 0, which means the message never expires.
    // This key is valid only for persistent messages
    MessagePropertyPersistentTimeToLive MessageProperty = "solace.messaging.message.persistent.time-to-live"

    // MessagePropertyPersistentExpiration specifies the UTC time (in milliseconds, from midnight, January 1, 1970 UTC)
    // and indicates when the message is supposed to expire. Setting this property has no effect if the TimeToLive
    // is set in the same message. It is carried to clients that receive the message, unmodified, and
    // does not effect the life cycle of the message. This property is only valid for persistent messages.
    MessagePropertyPersistentExpiration MessageProperty = "solace.messaging.message.persistent.expiration"

    // MessagePropertyPersistentDMQEligible specifies if a message is eligible to be moved to a Dead Message Queue.
    // The default value is true. This property is valid only for persistent messages.
    MessagePropertyPersistentDMQEligible MessageProperty = "solace.messaging.message.persistent.dmq-eligible"

    // MessagePropertyPersistentAckImmediately specifies if an appliance should ACK this message immediately upon message receipt.
    // The default value is false. This property is valid only for persistent messages
    MessagePropertyPersistentAckImmediately MessageProperty = "solace.messaging.message.persistent.ack-immediately"

    // MessagePropertySequenceNumber specifies the sequence number of the message. If sequence number generation is
    // enabled, this key overrides the generated value. This field can be set
    // automatically during message publishing, but existing values are not overwritten when set, as
    // when a message is sent multiple times.
    MessagePropertySequenceNumber MessageProperty = "solace.messaging.message.persistent.sequence-number"

    // MessagePropertyClassOfService specifies the class of service to set on the message.
    // Valid class of service values are
    //  0 | COS_1
    //  1 | COS_2
    //  2 | COS_3
    MessagePropertyClassOfService MessageProperty = "solace.messaging.message.class-of-service"

    // MessagePropertySenderID specifies a custom sender ID in the message header.
    // The given value is converted to a string. If set to nil, the sender ID is not set,
    // however a sender ID is still generated if ServicePropertyGenerateSenderID is enabled.
    MessagePropertySenderID MessageProperty = "solace.messaging.message.sender-id"
)

type MessagePropertyMap

MessagePropertyMap is a map of MessageProperty keys to values.

type MessagePropertyMap map[MessageProperty]interface{}

func (MessagePropertyMap) GetConfiguration

func (messagePropertyMap MessagePropertyMap) GetConfiguration() MessagePropertyMap

GetConfiguration returns a copy of the MessagePropertyMap

func (MessagePropertyMap) MarshalJSON

func (messagePropertyMap MessagePropertyMap) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaler interface.

func (MessagePropertyMap) UnmarshalJSON

func (messagePropertyMap MessagePropertyMap) UnmarshalJSON(b []byte) error

UnmarshalJSON implements the json.Unmarshaler interface.

type MessageUserPropertyConstant

MessageUserPropertyConstant is a property that can be set on a messages.

type MessageUserPropertyConstant = MessageProperty

type MissingResourcesCreationStrategy

MissingResourcesCreationStrategy represents the various missing resource creation strategies available to publishers requiring guaranteed resources.

type MissingResourcesCreationStrategy string
const (
    // PersistentReceiverDoNotCreateMissingResources disables any attempt to create the missing
    // resource and is the default missing resource strategy. This value is
    // recommended for production.
    PersistentReceiverDoNotCreateMissingResources MissingResourcesCreationStrategy = "DO_NOT_CREATE"
    // PersistentReceiverCreateOnStartMissingResources attempts to create missing resources
    // once a connection is established, and only for resources known at that
    // time.
    PersistentReceiverCreateOnStartMissingResources MissingResourcesCreationStrategy = "CREATE_ON_START"
)

type PublisherPropertiesConfigurationProvider

PublisherPropertiesConfigurationProvider describes the behavior of a configuration provider that provides properties for publishers.

type PublisherPropertiesConfigurationProvider interface {
    GetConfiguration() PublisherPropertyMap
}

type PublisherProperty

PublisherProperty is a property that can be set on a publisher.

type PublisherProperty string
const (
    // PublisherPropertyBackPressureStrategy sets the back pressure strategy on a publisher.
    // Valid values are BUFFER_WAIT_WHEN_FULL or BUFFER_REJECT_WHEN_FULL where BUFFER_WAIT_WHEN_FULL
    // will block until space is available and BUFFER_REJECT_WHEN_FULL will return an error if the buffer
    // is full.
    PublisherPropertyBackPressureStrategy PublisherProperty = "solace.messaging.publisher.back-pressure.strategy"
    // PublisherPropertyBackPressureBufferCapacity sets the buffer size of the publisher.
    // Valid values are greater than or equal to 1 for back pressure strategy Wait and greater than or
    // equal to 0 for back pressure strategy Reject.
    PublisherPropertyBackPressureBufferCapacity PublisherProperty = "solace.messaging.publisher.back-pressure.buffer-capacity"
)

type PublisherPropertyMap

PublisherPropertyMap is a map of PublisherProperty keys to values.

type PublisherPropertyMap map[PublisherProperty]interface{}

func (PublisherPropertyMap) GetConfiguration

func (publisherPropertyMap PublisherPropertyMap) GetConfiguration() PublisherPropertyMap

GetConfiguration returns a copy of the PublisherPropertyMap.

func (PublisherPropertyMap) MarshalJSON

func (publisherPropertyMap PublisherPropertyMap) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaler interface.

func (PublisherPropertyMap) UnmarshalJSON

func (publisherPropertyMap PublisherPropertyMap) UnmarshalJSON(b []byte) error

UnmarshalJSON implements the json.Unmarshaler interface.

type ReceiverPropertiesConfigurationProvider

ReceiverPropertiesConfigurationProvider describes the behavior of a configuration provider that provides properties for receivers.

type ReceiverPropertiesConfigurationProvider interface {
    GetConfiguration() ReceiverPropertyMap
}

type ReceiverProperty

ReceiverProperty is a property that can be set on a receiver.

type ReceiverProperty string
const (
    // ReceiverPropertyDirectBackPressureStrategy defines a direct receiver back pressure strategy.
    // Valid values are BUFFER_DROP_LATEST_WHEN_FULL where the latest incoming message is dropped
    // or BUFFER_DROP_OLDEST_WHEN_FULL where the oldest undelivered message is dropped.
    ReceiverPropertyDirectBackPressureStrategy ReceiverProperty = "solace.messaging.receiver.direct.back-pressure.strategy"

    // ReceiverPropertyDirectBackPressureBufferCapacity defines the direct receiver back pressure buffer capacity
    // measured in messages. This property only has effect in conjunction with the back pressure strategy.
    ReceiverPropertyDirectBackPressureBufferCapacity ReceiverProperty = "solace.messaging.receiver.direct.back-pressure.buffer-capacity"

    // ReceiverPropertyPersistentMissingResourceCreationStrategy specifies if and how missing remote resource (such as queues) are to be created
    // on a broker prior to receiving persistent messages. Valid values are of type MissingResourceCreationStrategy, either
    // MissingResourceDoNotCreate or MissingResourceCreateOnStart.
    ReceiverPropertyPersistentMissingResourceCreationStrategy ReceiverProperty = "solace.messaging.receiver.persistent.missing-resource-creation-strategy"

    // ReceiverPropertyPersistentMessageSelectorQuery specifies the message-selection query based on the message header parameter
    // and message properties values. When a selector is applied then the receiver receives only
    // messages whose headers and properties match the selector. A message selector cannot select
    // messages on the basis of the content of the message body.
    ReceiverPropertyPersistentMessageSelectorQuery ReceiverProperty = "solace.messaging.receiver.persistent.selector-query"

    // ReceiverPropertyPersistentStateChangeListener specifies to use the callback ReceiverStateChangeListener and enable
    // activation and passivation support.
    ReceiverPropertyPersistentStateChangeListener ReceiverProperty = "solace.messaging.receiver.persistent.state-change-listener"

    // ReceiverPropertyPersistentMessageAckStrategy specifies the acknowledgement strategy for the message receiver.
    ReceiverPropertyPersistentMessageAckStrategy ReceiverProperty = "solace.messaging.receiver.persistent.ack.strategy"

    // ReceiverPropertyPersistentMessageReplayStrategy enables message replay and to specify a replay strategy.
    ReceiverPropertyPersistentMessageReplayStrategy ReceiverProperty = "solace.messaging.receiver.persistent.replay.strategy"

    // ReceiverPropertyPersistentMessageReplayStrategyTimeBasedStartTime configures time-based replay strategy with a start time.
    ReceiverPropertyPersistentMessageReplayStrategyTimeBasedStartTime ReceiverProperty = "solace.messaging.receiver.persistent.replay.timebased-start-time"

    // ReceiverPropertyPersistentMessageReplayStrategyIDBasedReplicationGroupMessageID configures the ID based replay strategy with a specified  replication group message ID.
    ReceiverPropertyPersistentMessageReplayStrategyIDBasedReplicationGroupMessageID ReceiverProperty = "solace.messaging.receiver.persistent.replay.replication-group-message-id"
)

type ReceiverPropertyMap

ReceiverPropertyMap is a map of ReceiverProperty keys to values.

type ReceiverPropertyMap map[ReceiverProperty]interface{}

func (ReceiverPropertyMap) GetConfiguration

func (receiverPropertyMap ReceiverPropertyMap) GetConfiguration() ReceiverPropertyMap

GetConfiguration returns a copy of the ReceiverPropertyMap.

func (ReceiverPropertyMap) MarshalJSON

func (receiverPropertyMap ReceiverPropertyMap) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaler interface.

func (ReceiverPropertyMap) UnmarshalJSON

func (receiverPropertyMap ReceiverPropertyMap) UnmarshalJSON(b []byte) error

UnmarshalJSON implements the json.Unmarshaler interface.

type ReplayStrategy

ReplayStrategy is an interface for Message Replay strategies. Message Replay lets applications retrieve messages from an event broker hours or even days after those messages were first received by the broker.

type ReplayStrategy struct {
    // contains filtered or unexported fields
}

func ReplayStrategyAllMessages

func ReplayStrategyAllMessages() ReplayStrategy

ReplayStrategyAllMessages sets the strategy to replaying all messages stored on the broker's replay log.

func ReplayStrategyReplicationGroupMessageID

func ReplayStrategyReplicationGroupMessageID(replicationGroupMessageID rgmid.ReplicationGroupMessageID) ReplayStrategy

ReplayStrategyReplicationGroupMessageID sets the strategy to replay all messages stored on the broker's replay log received at or after the specified messageID. Returns the constructed ReplayStrategy. Valid Replication Group Message IDs take the form

rmid1:xxxxx-xxxxxxxxxxx-xxxxxxxx-xxxxxxxx

where x is a valid hexadecimal digit.

func ReplayStrategyTimeBased

func ReplayStrategyTimeBased(replayDate time.Time) ReplayStrategy

ReplayStrategyTimeBased sets the strategy to replay all messages stored on the broker's replay log dated at or after the specified replayDate. Note that the replayDate given should be set to the correct timezone from which replay is meant to begin. See time.Date for the appropriate configuration of a timezone aware time.Time value.

func (ReplayStrategy) GetData

func (strategy ReplayStrategy) GetData() interface{}

GetData returns the additional data, if applicable, stored with the strategy. For example, for time based replay this contains the start date.

func (ReplayStrategy) GetStrategy

func (strategy ReplayStrategy) GetStrategy() string

GetStrategy returns the strategy type stored in this ReplayStrategy.

type RetryStrategy

RetryStrategy represents the strategy to use when reconnecting.

type RetryStrategy struct {
    // contains filtered or unexported fields
}

func RetryStrategyForeverRetry

func RetryStrategyForeverRetry() RetryStrategy

RetryStrategyForeverRetry creates a retry strategy that runs forever with automatic retries and a retry interval of 3000 milliseconds.

func RetryStrategyForeverRetryWithInterval

func RetryStrategyForeverRetryWithInterval(retryInterval time.Duration) RetryStrategy

RetryStrategyForeverRetryWithInterval creates a retry strategy that runs forever with automatic retries and a retry interval of the specified duration.

func RetryStrategyNeverRetry

func RetryStrategyNeverRetry() RetryStrategy

RetryStrategyNeverRetry creates an instance of configuration for disabled automatic retries.

func RetryStrategyParameterizedRetry

func RetryStrategyParameterizedRetry(retries uint, retryInterval time.Duration) RetryStrategy

RetryStrategyParameterizedRetry creates an instance of configuration for free configurability. retries must be greater than or equal to zero.

func (RetryStrategy) GetRetries

func (strategy RetryStrategy) GetRetries() int

GetRetries returns the number of retries configured with the retry strategy.

func (RetryStrategy) GetRetryInterval

func (strategy RetryStrategy) GetRetryInterval() time.Duration

GetRetryInterval returns the interval between (re)connection retry attempts.

type ServicePropertiesConfigurationProvider

ServicePropertiesConfigurationProvider represents a generic configuration provider that can be used to provide configurations to MessagingServiceBuilders.

type ServicePropertiesConfigurationProvider interface {
    // GetConfiguration retrieves the configuration provided by the provider
    // in the form of a ServicePropertyMap.
    GetConfiguration() ServicePropertyMap
}

type ServiceProperty

ServiceProperty is a key for a property.

type ServiceProperty string
const (

    // AuthenticationPropertyScheme defines the keys for the authentication scheme type.
    // Possible values for configuration of authentication scheme are defined in
    // the AuthenticationScheme type, which has the following possible strings,
    // accessible by constants
    //  config.AuthenticationSchemeBasic | "AUTHENTICATION_SCHEME_BASIC"
    //  config.AuthenticationSchemeClientCertificate | "AUTHENTICATION_SCHEME_CLIENT_CERTIFICATE"
    //  config.AuthenticationSchemeKerberos | "AUTHENTICATION_SCHEME_GSS_KRB"
    //  config.AuthenticationSchemeOAuth2 | "AUTHENTICATION_SCHEME_OAUTH2"
    AuthenticationPropertyScheme ServiceProperty = "solace.messaging.authentication.scheme"

    // AuthenticationPropertySchemeBasicUserName specifies the username for basic authentication.
    AuthenticationPropertySchemeBasicUserName ServiceProperty = "solace.messaging.authentication.basic.username"

    // AuthenticationPropertySchemeBasicPassword specifies password for basic authentication.
    AuthenticationPropertySchemeBasicPassword ServiceProperty = "solace.messaging.authentication.basic.password"

    // AuthenticationPropertySchemeSSLClientCertFile specifies the client certificate file used for Secure Socket Layer (SSL).
    AuthenticationPropertySchemeSSLClientCertFile ServiceProperty = "solace.messaging.authentication.client-cert.file"

    // AuthenticationPropertySchemeSSLClientPrivateKeyFile specifies the client private key file.
    AuthenticationPropertySchemeSSLClientPrivateKeyFile ServiceProperty = "solace.messaging.authentication.client-cert.private-key-file"

    // AuthenticationPropertySchemeClientCertPrivateKeyFilePassword specifies the private key password for client certificate authentication.
    AuthenticationPropertySchemeClientCertPrivateKeyFilePassword ServiceProperty = "solace.messaging.authentication.client-cert.private-key-password"

    // AuthenticationPropertySchemeClientCertUserName specifies the username to use when connecting with client certificate authentication.
    AuthenticationPropertySchemeClientCertUserName ServiceProperty = "solace.messaging.authentication.client-cert.username"

    // AuthenticationPropertySchemeKerberosInstanceName specifies the first part of Kerberos Service Principal Name (SPN) of the
    // form ServiceName/Hostname\@REALM (for Windows) or Host Based Service of the form
    // ServiceName\@Hostname (for Linux and SunOS).
    AuthenticationPropertySchemeKerberosInstanceName ServiceProperty = "solace.messaging.authentication.kerberos.instance-name"

    // AuthenticationPropertySchemeKerberosUserName allows configuration of the client username to use when connecting to the broker.
    // It is only used if Kerberos is the chosen authentication strategy.
    // This property is ignored by default and only needed if the 'allow-api-provided-username' is enabled in the
    // configuration of the message-vpn in the broker. This property is not recommended for use.
    AuthenticationPropertySchemeKerberosUserName ServiceProperty = "solace.messaging.authentication.kerberos.username"

    // AuthenticationPropertySchemeOAuth2AccessToken specifies an access token for OAuth 2.0 token-based authentication.
    AuthenticationPropertySchemeOAuth2AccessToken ServiceProperty = "solace.messaging.authentication.oauth2.access-token"

    // AuthenticationPropertySchemeOAuth2IssuerIdentifier defines an optional issuer identifier for OAuth 2.0 token-based authentication.
    AuthenticationPropertySchemeOAuth2IssuerIdentifier ServiceProperty = "solace.messaging.authentication.oauth2.issuer-identifier"

    // AuthenticationPropertySchemeOAuth2OIDCIDToken specifies the ID token for Open ID Connect token-based authentication.
    AuthenticationPropertySchemeOAuth2OIDCIDToken ServiceProperty = "solace.messaging.authentication.oauth2.oidc-id-token"

    // ClientPropertyName sets the client name used when connecting to the broker. This field is set on:
    //   MessagingServiceBuilder::BuildWithApplicationID
    ClientPropertyName ServiceProperty = "solace.messaging.client.name"

    // ClientPropertyApplicationDescription can be set to set the application description viewable on a broker.
    ClientPropertyApplicationDescription ServiceProperty = "solace.messaging.client.application-description"

    // ServicePropertyVPNName name of the Message VPN to attempt to join when connecting to a broker. Default
    // value is "" when this property is not specified. When using default values, the client attempts to join
    // the default Message VPN for the client. This parameter is only valid for sessions operating
    // in client mode. If specified, it must be a maximum of 32 bytes in length when encoded as
    // UTF-8.
    ServicePropertyVPNName ServiceProperty = "solace.messaging.service.vpn-name"

    // ServicePropertyGenerateSenderID specifies whether the client name should be included in the SenderID
    // message-header parameter. Setting this property is optional.
    ServicePropertyGenerateSenderID ServiceProperty = "solace.messaging.service.generate-sender-id"

    // ServicePropertyGenerateSendTimestamps specifies whether timestamps should be generated for outbound messages.
    ServicePropertyGenerateSendTimestamps ServiceProperty = "solace.messaging.service.generate-send-timestamps"

    // ServicePropertyGenerateReceiveTimestamps specifies whether timestamps should be generated on inbound messages.
    ServicePropertyGenerateReceiveTimestamps ServiceProperty = "solace.messaging.service.generate-receive-timestamps"

    // ServicePropertyReceiverDirectSubscriptionReapply enables reapplying a subscription when a session reconnection occurs
    // for a direct message receiver the value type is boolean.
    ServicePropertyReceiverDirectSubscriptionReapply ServiceProperty = "solace.messaging.service.receivers.direct.subscription.reapply"

    // TransportLayerPropertyHost is IPv4 or IPv6 address or host name of the broker to which to connect.
    // Multiple entries are permitted when each address is separated by a comma.
    // The entry for the HOST property should provide a protocol, host and port.
    TransportLayerPropertyHost ServiceProperty = "solace.messaging.transport.host"

    // TransportLayerPropertyConnectionAttemptsTimeout is the timeout period for a connect operation to a given host.
    TransportLayerPropertyConnectionAttemptsTimeout ServiceProperty = "solace.messaging.transport.connection-attempts-timeout"

    // TransportLayerPropertyConnectionRetries is how many times to try connecting to a broker during connection setup.
    TransportLayerPropertyConnectionRetries ServiceProperty = "solace.messaging.transport.connection-retries"

    // TransportLayerPropertyConnectionRetriesPerHost defines how many connection or reconnection attempts are made to a
    // single host before moving to the next host in the list,  when using a host list.
    TransportLayerPropertyConnectionRetriesPerHost ServiceProperty = "solace.messaging.transport.connection.retries-per-host"

    // TransportLayerPropertyReconnectionAttempts is the number reconnection attempts to the broker (or list of brokers) after
    // a connected MessagingService goes down.
    // Zero means no automatic reconnection attempts, while a -1 means attempt to reconnect forever. The default valid range is greather than or equal to -1.
    // When using a host list, each time the API works through the host list without establishing a connection is considered a
    // reconnection retry. Each reconnection retry begins with the first host listed. After each unsuccessful attempt to reconnect
    // to a host, the API waits for the amount of time set for TransportLayerPropertyReconnectionAttemptsWaitInterval before attempting another
    // connection to a broker. The number of times attempted to connect to one broker before moving on to the
    // next listed host is determined by the value set for TransportLayerPropertyConnectionRetriesPerHost.
    TransportLayerPropertyReconnectionAttempts ServiceProperty = "solace.messaging.transport.reconnection-attempts"

    // TransportLayerPropertyReconnectionAttemptsWaitInterval sets how much time (in milliseconds) to wait between each connection or reconnection attempt to the configured host.
    // If a connection or reconnection attempt to the configured host (which may be a list) is not successful, the API waits for
    // the amount of time set for ReconnectionAttemptsWaitInterval, and then makes another connection or reconnection attempt.
    // The valid range is greater than or equal to zero.
    TransportLayerPropertyReconnectionAttemptsWaitInterval ServiceProperty = "solace.messaging.transport.reconnection-attempts-wait-interval"

    // TransportLayerPropertyKeepAliveInterval is the amount of time (in milliseconds) to wait between sending out Keep-Alive messages.
    TransportLayerPropertyKeepAliveInterval ServiceProperty = "solace.messaging.transport.keep-alive-interval"

    // TransportLayerPropertyKeepAliveWithoutResponseLimit is the maximum number of consecutive keep-alive messages that can be sent
    // without receiving a response before the connection is closed by the API.
    TransportLayerPropertyKeepAliveWithoutResponseLimit ServiceProperty = "solace.messaging.transport.keep-alive-without-response-limit"

    // TransportLayerPropertySocketOutputBufferSize is the value for the socket send buffer size (in bytes).
    // Zero indicates to not set the value and leave the buffer size set at operating system default. The valid range is zero or
    // a value greater than or equal to 1024.
    TransportLayerPropertySocketOutputBufferSize ServiceProperty = "solace.messaging.transport.socket.output-buffer-size"

    // TransportLayerPropertySocketInputBufferSize is the value for socket receive buffer size (in bytes).
    // Zero indicates to not set the value and leave the buffer size set at operating system default. The valid range is zero or
    // a value greater than or equal to 1024.
    TransportLayerPropertySocketInputBufferSize ServiceProperty = "solace.messaging.transport.socket.input-buffer-size"

    // TransportLayerPropertySocketTCPOptionNoDelay is a boolean value to enable TCP no delay.
    TransportLayerPropertySocketTCPOptionNoDelay ServiceProperty = "solace.messaging.transport.socket.tcp-option-no-delay"

    // TransportLayerPropertyCompressionLevel enables messages to be compressed with ZLIB before transmission and decompressed on receive.
    // This property should preferably be set by MessagingServiceClientBuilder.WithCompressionLevel function.
    // The valid range is zero (off) or a value from 1 to 9, where 1 is less compression (fastest) and 9 is most compression (slowest).
    // Note: If no port is specified in  TransportLayerPropertyHost, the API  automatically connects to either the default
    // non-compressed listen port (55555) or default compressed listen port (55003) based on the specified
    // CompressionLevel. If a port is specified in TransportLayerPropertyHost, you must specify the non-compressed listen port if you are not
    // using compression (compression level 0), or the compressed listen port if using compression (compression levels 1 to 9).
    TransportLayerPropertyCompressionLevel ServiceProperty = "solace.messaging.transport.compression-level"

    // TransportLayerSecurityPropertyCertValidated is a boolean property that will specify if server certificates should be validated.
    // Setting this property to false exposes a client and data being sent to a higher security risk.
    TransportLayerSecurityPropertyCertValidated ServiceProperty = "solace.messaging.tls.cert-validated"

    // TransportLayerSecurityPropertyCertRejectExpired is a boolean property that specifies if server certificate's expiration date should be validated.
    // Setting this property to false exposes a client and data being sent to a higher security risk.
    TransportLayerSecurityPropertyCertRejectExpired ServiceProperty = "solace.messaging.tls.cert-reject-expired"

    // TransportLayerSecurityPropertyCertValidateServername is a boolean property that enables or disables server certificate hostname or
    // IP address validation. When enabled, the certificate received from the broker must match
    // the host used to connect.
    TransportLayerSecurityPropertyCertValidateServername ServiceProperty = "solace.messaging.tls.cert-validate-servername"

    // TransportLayerSecurityPropertyExcludedProtocols is a comma-separated list specifying SSL protocols to exclude.
    // Valid protocols are 'SSLv3', 'TLSv1', 'TLSv1.1' and 'TLSv1.2'
    TransportLayerSecurityPropertyExcludedProtocols ServiceProperty = "solace.messaging.tls.excluded-protocols"

    // TransportLayerSecurityPropertyProtocolDowngradeTo specifies a transport protocol that the SSL connection is  downgraded to after
    // client authentication. Allowed transport protocol is 'PLAIN_TEXT'.
    // May be combined with non-zero compression level to achieve compression without encryption.
    TransportLayerSecurityPropertyProtocolDowngradeTo ServiceProperty = "solace.messaging.tls.protocol-downgrade-to"

    // TransportLayerSecurityPropertyCipherSuites specifies a comma-separated list of cipher suites to use.
    // Allowed cipher suites are as follows:
    //	+-----------------+-------------------------------+--------------------+
    //	| 'AES256-SHA'    | 'ECDHE-RSA-AES256-SHA'        | 'AES256-GCM-SHA384'|
    //	+-----------------+-------------------------------+--------------------+
    //	| 'AES256-SHA256' | 'ECDHE-RSA-AES256-GCM-SHA384' | 'AES128-SHA256'    |
    //	+-----------------+-------------------------------+--------------------+
    //	| 'DES-CBC3-SHA'  | 'ECDHE-RSA-DES-CBC3-SHA'      |                    |
    //	+-----------------+-------------------------------+--------------------+
    //	| 'RC4-SHA'       | 'ECDHE-RSA-AES256-SHA384'     | 'AES128            |
    //	+-----------------+-------------------------------+--------------------+
    //	| 'ECDHE-RSA-AES128-SHA256'                       | 'AES128-GCM-SHA256'|
    //	+-----------------+-------------------------------+--------------------+
    //	| 'RC4-MD5'       | 'ECDHE-RSA-AES128-GCM-SHA256' |                    |
    //	+----------------------------------------+-----------------------------+
    //	| 'TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384'| 'ECDHE-RSA-AES128-SHA'      |
    //	+----------------------------------------+-----------------------------+
    //	| 'TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384'|                             |
    //	+----------------------------------------+-----------------------------+
    //	| 'TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA'   |                             |
    //	+----------------------------------------+-----------------------------+
    //	| 'TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA'  |                             |
    //	+----------------------------------------+-----------------------------+
    //	| 'TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256'|                             |
    //	+----------------------------------------+-----------------------------+
    //	| 'TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA'   |                             |
    //	+----------------------------------------+-----------------------------+
    //	| 'TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256'|                             |
    //	+-----------------------------------+----------------------------------+
    //	| 'TLS_RSA_WITH_AES_128_GCM_SHA256' |                                  |
    //	+-----------------------------------+----------------------------------+
    //	| 'TLS_RSA_WITH_AES_128_CBC_SHA256' |'TLS_RSA_WITH_AES_256_GCM_SHA384' |
    //	+-----------------------------------+----------------------------------+
    //	| 'TLS_RSA_WITH_AES_256_CBC_SHA256' | 'TLS_RSA_WITH_AES_256_CBC_SHA'   |
    //	+-----------------------------------+----------------------------------+
    //	| 'SSL_RSA_WITH_3DES_EDE_CBC_SHA    | 'TLS_RSA_WITH_AES_128_CBC_SHA'   |
    //	+-----------------------------------+----------------------------------+
    //	| 'SSL_RSA_WITH_RC4_128_SHA'        | 'SSL_RSA_WITH_RC4_128_MD5'       |
    //	+-----------------------------------+----------------------------------+
    TransportLayerSecurityPropertyCipherSuites ServiceProperty = "solace.messaging.tls.cipher-suites"

    // TransportLayerSecurityPropertyTrustStorePath specifies the path of the directory where trusted certificates are found
    // The maximum depth for the certificate chain verification is 3.
    TransportLayerSecurityPropertyTrustStorePath ServiceProperty = "solace.messaging.tls.trust-store-path"

    // TransportLayerSecurityPropertyTrustedCommonNameList is provided for legacy installations and is not recommended as part of our best practices.
    // The API performs Subject Alternative Name (SAN) verification when the SAN is found in the server certificate,
    // which is generally the best practice for a secure connection.
    // This property specifies a comma-separated list of acceptable common names in certificate validation.
    // The number of common names specified by an application is limited to 16. Leading and trailing whitespaces are considered
    // to be part of the common names and are not ignored.
    // If the application does not provide any common names, there is no common-name verification.
    // An empty string specifies that no common-name verification is required.
    TransportLayerSecurityPropertyTrustedCommonNameList ServiceProperty = "solace.messaging.tls.trusted-common-name-list"
)

type ServicePropertyMap

ServicePropertyMap is a map of SolaceServicePropery keys to values.

type ServicePropertyMap map[ServiceProperty]interface{}

func (ServicePropertyMap) GetConfiguration

func (servicePropertyMap ServicePropertyMap) GetConfiguration() ServicePropertyMap

GetConfiguration returns a copy of the servicePropertyMap.

func (ServicePropertyMap) MarshalJSON

func (servicePropertyMap ServicePropertyMap) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaler interface.

func (ServicePropertyMap) String

func (servicePropertyMap ServicePropertyMap) String() string

String implements the fmt.Stringer interface.

func (ServicePropertyMap) UnmarshalJSON

func (servicePropertyMap ServicePropertyMap) UnmarshalJSON(b []byte) error

UnmarshalJSON implements the json.Unmarshaler interface.

type TransportSecurityProtocol

TransportSecurityProtocol represents the various security protocols available to the API.

type TransportSecurityProtocol string
const (
    // TransportSecurityProtocolSSLv3 represents SSLv3.
    TransportSecurityProtocolSSLv3 TransportSecurityProtocol = "SSLv3"
    // TransportSecurityProtocolTLSv1 represents TLSv1.
    TransportSecurityProtocolTLSv1 TransportSecurityProtocol = "TLSv1"
    // TransportSecurityProtocolTLSv1_1 represents TLSv1.1.
    TransportSecurityProtocolTLSv1_1 TransportSecurityProtocol = "TLSv1.1"
    // TransportSecurityProtocolTLSv1_2 represents TLSv1.2.
    TransportSecurityProtocolTLSv1_2 TransportSecurityProtocol = "TLSv1.2"
)

type TransportSecurityStrategy

TransportSecurityStrategy represents the strategy to use when connecting to a broker via a secure port.

type TransportSecurityStrategy struct {
    // contains filtered or unexported fields
}

func NewTransportSecurityStrategy

func NewTransportSecurityStrategy() TransportSecurityStrategy

NewTransportSecurityStrategy creates a transport security strategy with default configuration. Properties can be overwritten by calling the various configuration functions on TransportSecurityStrategy.

func (TransportSecurityStrategy) Downgradable

func (tss TransportSecurityStrategy) Downgradable() TransportSecurityStrategy

Downgradable configures TLS so that the session connection is downgraded to plain-text after client authentication. WARNING: Downgrading SSL to plain-text after client authentication exposes a client and the data being sent to higher security risks.

func (TransportSecurityStrategy) ToProperties

func (tss TransportSecurityStrategy) ToProperties() ServicePropertyMap

ToProperties returns the configuration in the form of a ServicePropertyMap.

func (TransportSecurityStrategy) WithCertificateValidation

func (tss TransportSecurityStrategy) WithCertificateValidation(
    ignoreExpiration bool,
    validateServerName bool,
    trustStoreFilePath string,
    trustedCommonNameList string,
) TransportSecurityStrategy

WithCertificateValidation configures TLS validation on certificates. By default, validation is performed. WARNING: Disabling certificate validation exposes clients and data being sent to higher security risks.

ignoreExpiration: when set to true, expired certificates are accepted.

validateServerName: When set to true, certificates without the matching host are not accepted.

trustStoreFilePath: The location of the trust store files. If an empty string is passed, no file path will be set.

trustedCommonNameList: A comma-separated list of acceptable common names for matching with server certificates. An empty string will match no names.

func (TransportSecurityStrategy) WithCipherSuites

func (tss TransportSecurityStrategy) WithCipherSuites(cipherSuiteList string) TransportSecurityStrategy

WithCipherSuites configures cipher suites to use. The cipher suites value is a comma-separated list of cipher suites and must be from the following table:

+-----------------+-------------------------------+--------------------+
| 'AES256-SHA'    | 'ECDHE-RSA-AES256-SHA'        | 'AES256-GCM-SHA384'|
+-----------------+-------------------------------+--------------------+
| 'AES256-SHA256' | 'ECDHE-RSA-AES256-GCM-SHA384' | 'AES128-SHA256'    |
+-----------------+-------------------------------+--------------------+
| 'DES-CBC3-SHA'  | 'ECDHE-RSA-DES-CBC3-SHA'      |                    |
+-----------------+-------------------------------+--------------------+
| 'RC4-SHA'       | 'ECDHE-RSA-AES256-SHA384'     | 'AES128            |
+-----------------+-------------------------------+--------------------+
| 'ECDHE-RSA-AES128-SHA256'                       | 'AES128-GCM-SHA256'|
+-----------------+-------------------------------+--------------------+
| 'RC4-MD5'       | 'ECDHE-RSA-AES128-GCM-SHA256' |                    |
+----------------------------------------+-----------------------------+
| 'TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384'| 'ECDHE-RSA-AES128-SHA'      |
+----------------------------------------+-----------------------------+
| 'TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384'|                             |
+----------------------------------------+-----------------------------+
| 'TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA'   |                             |
+----------------------------------------+-----------------------------+
| 'TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA'  |                             |
+----------------------------------------+-----------------------------+
| 'TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256'|                             |
+----------------------------------------+-----------------------------+
| 'TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA'   |                             |
+----------------------------------------+-----------------------------+
| 'TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256'|                             |
+-----------------------------------+----------------------------------+
| 'TLS_RSA_WITH_AES_128_GCM_SHA256' |                                  |
+-----------------------------------+----------------------------------+
| 'TLS_RSA_WITH_AES_128_CBC_SHA256' |'TLS_RSA_WITH_AES_256_GCM_SHA384' |
+-----------------------------------+----------------------------------+
| 'TLS_RSA_WITH_AES_256_CBC_SHA256' | 'TLS_RSA_WITH_AES_256_CBC_SHA'   |
+-----------------------------------+----------------------------------+
| 'SSL_RSA_WITH_3DES_EDE_CBC_SHA    | 'TLS_RSA_WITH_AES_128_CBC_SHA'   |
+-----------------------------------+----------------------------------+
| 'SSL_RSA_WITH_RC4_128_SHA'        | 'SSL_RSA_WITH_RC4_128_MD5'       |
+-----------------------------------+----------------------------------+

func (TransportSecurityStrategy) WithExcludedProtocols

func (tss TransportSecurityStrategy) WithExcludedProtocols(protocols ...TransportSecurityProtocol) TransportSecurityStrategy

WithExcludedProtocols specifies the list of SSL or TLS protocols to not use.

func (TransportSecurityStrategy) WithoutCertificateValidation

func (tss TransportSecurityStrategy) WithoutCertificateValidation() TransportSecurityStrategy

WithoutCertificateValidation configures TLS to not validate the server certificate configured on the remote broker. WARNING: Disabling certificate validation exposes clients and data being sent to higher security risks.