[
https://issues.apache.org/jira/browse/ARTEMIS-1252?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16063600#comment-16063600
]
ASF GitHub Bot commented on ARTEMIS-1252:
-----------------------------------------
Github user clebertsuconic commented on a diff in the pull request:
https://github.com/apache/activemq-artemis/pull/1366#discussion_r124090489
--- Diff:
artemis-commons/src/main/java/org/apache/activemq/artemis/utils/PasswordMaskingUtil.java
---
@@ -108,22 +110,29 @@ public static HashProcessor getHashProcessor() {
// semi colons
String[] parts = codecDesc.split(";");
-
if (parts.length < 1)
throw new ActiveMQException(ActiveMQExceptionType.ILLEGAL_STATE,
"Invalid PasswordCodec value: " + codecDesc);
final String codecClassName = parts[0];
// load class
- codecInstance = AccessController.doPrivileged(new
PrivilegedAction<SensitiveDataCodec<String>>() {
- @Override
- public SensitiveDataCodec<String> run() {
- ClassLoader loader =
Thread.currentThread().getContextClassLoader();
+ codecInstance =
AccessController.doPrivileged((PrivilegedAction<SensitiveDataCodec<String>>) ()
-> {
+ ServiceLoader<SensitiveDataCodec> serviceLoader =
ServiceLoader.load(SensitiveDataCodec.class,
PasswordMaskingUtil.class.getClassLoader());
--- End diff --
Looks like a nice feature.. but no tests?
> Add service loading of password codec to obtain its implementation from the
> application’s root context, rather than using a class loader
> ----------------------------------------------------------------------------------------------------------------------------------------
>
> Key: ARTEMIS-1252
> URL: https://issues.apache.org/jira/browse/ARTEMIS-1252
> Project: ActiveMQ Artemis
> Issue Type: Improvement
> Affects Versions: 1.5.5, 2.1.0
> Reporter: Armand Roelens
>
> The current implementation for retrieving a custom password codec forces
> every OSGI bundle requiring the password codec (which can be every bundle
> with its own client that attempts to connect to the broker) to import the
> package containing the custom password codec.
> If the password codec is instead service loaded, none of the OSGI bundles
> need to import the package containing the password codec. That password codec
> package does need to advertise its implementation via a configuration file,
> but that change is limited to just that package.
> Add service loading of the custom password codec, and as a fallback, if no
> service is found, maintain the current implementation of using normal class
> loading.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)