56 lines
2.8 KiB
Markdown
56 lines
2.8 KiB
Markdown
|
###Examples
|
|||
|
|
|||
|
This directory contains examples of customising the image for particular use cases
|
|||
|
|
|||
|
####amqp_sasl_scram_test__etc
|
|||
|
In this example, you can run the image with configuration that locks the broker down to a single user on a single predefined
|
|||
|
queue called `TEST`. The necessary configuration overrides:
|
|||
|
- restricting the acceptor to AMQP/SASL-SCRAM
|
|||
|
- providing RBAC for queue TEST
|
|||
|
|
|||
|
are in:`./amqp_sasl_scram_test__etc/amqp_sasl_scram.properties`
|
|||
|
|
|||
|
To exercise this example, you need to choose a password for the pre-configured user 'A'.
|
|||
|
With SASL_SCRAM the broker retains a salted representation of that value, but not the plain text value.
|
|||
|
|
|||
|
Register your chosen password by creating `./amqp_sasl_scram_test__etc/user` using mvn as follows:
|
|||
|
|
|||
|
`$> mvn exec:exec -Dexample.pwd=<some value>`
|
|||
|
|
|||
|
To see the result, cat the generated user file to see the stored representation:
|
|||
|
|
|||
|
`$> cat ./amqp_sasl_scram_test__etc/user`
|
|||
|
|
|||
|
You can then mount the `./amqp_sasl_scram_test__etc directory` as `/app/etc` for the container and initialize JAAS
|
|||
|
via the `java.security.auth.login.config` system property, which is passed to the JVM via the ENV `JDK_JAVA_OPTIONS` as follows:
|
|||
|
|
|||
|
`$> podman run --name=artemis-amqp -dp 61616:61616 --env JDK_JAVA_OPTIONS=-Djava.security.auth.login.config=/app/etc/login.config --privileged -v ./amqp_sasl_scram_test__etc:/app/etc localhost/target/activemq-artemis-image:<version>`
|
|||
|
|
|||
|
Execute the artemis producer/consumer command line tools to validate secure access to the TEST queue using AMQP
|
|||
|
SASL-SCRAM with your chosen password via:
|
|||
|
|
|||
|
`$> ./bin/artemis producer --protocol amqp --url amqp://localhost:61616 --user A --password <some value>`
|
|||
|
|
|||
|
`$> ./bin/artemis consumer --protocol amqp --url amqp://localhost:61616 --user A --password <some value>`
|
|||
|
|
|||
|
####byoc__etc
|
|||
|
This is an example of "Bring Your Own Config" or BYOC. The image will look for `/app/etc/broker.xml`. If that file exists
|
|||
|
it will be treated as the broker xml configuration for the embedded broker. If your existing configuration is nicely
|
|||
|
locked down or if you want to provide some custom defaults for your image, referencing an existing broker.xml makes sense.
|
|||
|
Property files can still be used to augment the defaults or be used solely for more dynamic parts of configuration.
|
|||
|
|
|||
|
To exercise the example, `./byoc__etc directory` as `/app/etc` for the container as follows:
|
|||
|
|
|||
|
`$> podman run --name=artemis-byoc -dp 61616:61616 --privileged -v ./byoc__etc:/app/etc localhost/target/activemq-artemis-image:<version>`
|
|||
|
|
|||
|
Peek at the broker logs to note the broker name 'byoc' configured from the broker.xml file
|
|||
|
|
|||
|
`$> podman logs artemis-byoc
|
|||
|
|
|||
|
Execute the artemis producer/consumer command line tools to validate, it behaves like the bare image:
|
|||
|
|
|||
|
`$> ./bin/artemis producer --url tcp://localhost:61616`
|
|||
|
|
|||
|
`$> ./bin/artemis consumer --url tcp://localhost:61616`
|
|||
|
|