apache / apache/camel-karavan

JasyptPropertiesParser algorithm not getting loaded from kubernetes

Open
#1,566 1 comment 0 reactions 0 assignees View on GitHub
bug
Dominant language
TypeScript
Stars
594
Forks
215
Avg merge
5d 11h
Merged PRs (30d)
2

Description

### Describe the bug

We are using thie bean and trying to load JASYPT_PASSWORD and JASYPT_ALGO from application properties which takes values from kubernetes secret. But it works fine only in dev mode and in build mode it fails during project build. We have encrypted value and trying to print that value using camel route. Please suggest.

**application.properties**
JASYPT_PASSWORD={{secret:testsecret/key}}
jJASYPT_ALGO={{secret:testsecret/algorithm}}
test=ENC(encryptedvalue)

camel.test.yaml
- beans:
- name: jasyptPropertiesParser
type: org.apache.camel.component.jasypt.JasyptPropertiesParser
properties:
password: "{{JASYPT_PASSWORD}}"
algorithm: "{{JASYPT_ALGO}}"

- route:
id: route-bf2e
nodePrefixId: route-ae7
from:
id: from-09ab
uri: timer
parameters:
timerName: test
repeatCount: "2"
steps:
- log:
id: log-da68
message: "{{test}}"

Exception when running project in build mode.

Cloning into '/karavan/code'...
Generating fresh run data
org.apache.camel.FailedToCreateRouteException: Failed to create route route-bf2e at: >>> Log[{{test}] <<< in route: Route(route-bf2e)[From[timer:test?repeatCount=2] -> [Log[{{j... because of java.security.NoSuchAlgorithmException: @@CamelMagicValue@@ SecretKeyFactory not available
at org.apache.camel.reifier.RouteReifier.doCreateRoute(RouteReifier.java:235)
at org.apache.camel.reifier.RouteReifier.createRoute(RouteReifier.java:86)
at org.apache.camel.impl.DefaultModelReifierFactory.createRoute(DefaultModelReifierFactory.java:49)
at org.apache.camel.impl.DefaultCamelContext.startRouteDefinitions(DefaultCamelContext.java:736)
at org.apache.camel.impl.DefaultCamelContext.startRouteDefinitions(DefaultCamelContext.java:597)
at org.apache.camel.impl.engine.AbstractCamelContext.doInit(AbstractCamelContext.java:2470)
at org.apache.camel.support.service.BaseService.init(BaseService.java:85)
at org.apache.camel.impl.engine.AbstractCamelContext.init(AbstractCamelContext.java:2100)
at org.apache.camel.support.service.BaseService.start(BaseService.java:115)
at org.apache.camel.impl.engine.AbstractCamelContext.start(AbstractCamelContext.java:2119)
at org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:211)
at org.apache.camel.main.KameletMain.doStart(KameletMain.java:385)
at org.apache.camel.support.service.BaseService.start(BaseService.java:123)
at org.apache.camel.dsl.jbang.core.commands.Run.runKameletMain(Run.java:1458)
at org.apache.camel.dsl.jbang.core.commands.Run.run(Run.java:910)
at org.apache.camel.dsl.jbang.core.commands.Run.runExport(Run.java:353)
at org.apache.camel.dsl.jbang.core.commands.ExportBaseCommand.runSilently(ExportBaseCommand.java:344)
at org.apache.camel.dsl.jbang.core.commands.ExportCamelMain.export(ExportCamelMain.java:66)
at org.apache.camel.dsl.jbang.core.commands.Export.export(Export.java:165)
at org.apache.camel.dsl.jbang.core.commands.Export.export(Export.java:76)
at org.apache.camel.dsl.jbang.core.commands.ExportBaseCommand.doCall(ExportBaseCommand.java:267)
at org.apache.camel.dsl.jbang.core.commands.CamelCommand.call(CamelCommand.java:71)
at org.apache.camel.dsl.jbang.core.commands.CamelCommand.call(CamelCommand.java:37)
at picocli.CommandLine.executeUserObject(CommandLine.java:2045)
at picocli.CommandLine.access$1500(CommandLine.java:148)
at picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2465)
at picocli.CommandLine$RunLast.handle(CommandLine.java:2457)
at picocli.CommandLine$RunLast.handle(CommandLine.java:2419)
at picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2277)
at picocli.CommandLine$RunLast.execute(CommandLine.java:2421)
at picocli.CommandLine.execute(CommandLine.java:2174)
at org.apache.camel.dsl.jbang.core.commands.CamelJBangMain.run(CamelJBangMain.java:196)
at org.apache.camel.dsl.jbang.core.commands.CamelJBangMain.run(CamelJBangMain.java:72)
at main.CamelJBang.main(CamelJBang.java:36)
Caused by: org.jasypt.exceptions.EncryptionInitializationException: java.security.NoSuchAlgorithmException: @@CamelMagicValue@@ SecretKeyFactory not available
at org.jasypt.encryption.pbe.StandardPBEByteEncryptor.initialize(StandardPBEByteEncryptor.java:773)
at org.jasypt.encryption.pbe.StandardPBEStringEncryptor.initialize(StandardPBEStringEncryptor.java:566)
at org.jasypt.encryption.pbe.StandardPBEStringEncryptor.decrypt(StandardPBEStringEncryptor.java:718)
at org.apache.camel.component.jasypt.JasyptPropertiesParser.parseProperty(JasyptPropertiesParser.java:65)
at org.apache.camel.component.properties.DefaultPropertiesParser$ParsingContext.doGetPropertyValue(DefaultPropertiesParser.java:513)
at org.apache.camel.component.properties.DefaultPropertiesParser$ParsingContext.getPropertyValue(DefaultPropertiesParser.java:391)
at org.apache.camel.component.properties.DefaultPropertiesParser$ParsingContext.readProperty(DefaultPropertiesParser.java:243)
at org.apache.camel.component.properties.DefaultPropertiesParser$ParsingContext.doParseNested(DefaultPropertiesParser.java:174)
at org.apache.camel.component.properties.DefaultPropertiesParser$ParsingContext.parse(DefaultPropertiesParser.java:121)
at org.apache.camel.component.properties.DefaultPropertiesParser.parseUri(DefaultPropertiesParser.java:73)
at org.apache.camel.component.properties.PropertiesComponent.parseUri(PropertiesComponent.java:344)
at org.apache.camel.component.properties.PropertiesComponent.parseUri(PropertiesComponent.java:175)
at org.apache.camel.impl.engine.DefaultCamelContextExtension.resolvePropertyPlaceholders(DefaultCamelContextExtension.java:351)
at org.apache.camel.impl.engine.AbstractCamelContext.resolvePropertyPlaceholders(AbstractCamelContext.java:1656)
at org.apache.camel.support.CamelContextHelper.parseText(CamelContextHelper.java:388)
at org.apache.camel.reifier.AbstractReifier.parseString(AbstractReifier.java:58)
at org.apache.camel.reifier.LogReifier.createProcessor(LogReifier.java:49)
at org.apache.camel.reifier.ProcessorReifier.makeProcessor(ProcessorReifier.java:848)
at org.apache.camel.reifier.ProcessorReifier.addRoutes(ProcessorReifier.java:621)
at org.apache.camel.reifier.RouteReifier.doCreateRoute(RouteReifier.java:231)
... 33 more
Caused by: java.security.NoSuchAlgorithmException: @@CamelMagicValue@@ SecretKeyFactory not available
at java.base/javax.crypto.SecretKeyFactory.(SecretKeyFactory.java:118)
at java.base/javax.crypto.SecretKeyFactory.getInstance(SecretKeyFactory.java:164)
at org.jasypt.encryption.pbe.StandardPBEByteEncryptor.initialize(StandardPBEByteEncryptor.java:761)
... 52 more

[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.057 s
[INFO] Finished at: 2025-11-27T08:55:57Z
[INFO] ------------------------------------------------------------------------

### Steps to reproduce the behavior

1. Go to '...'a
2. Click on '....'
3. Scroll down to '....'
4. See error

### Variant

Web Application

### Container Management (if applicable)

None

### Operating System (if applicable)

None

### Version

4.7.0

### Relevant log output

```shell

```

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with the JasyptPropertiesParser configuration shown in camel.test.yaml and the values in application.properties, then reproduce the failure in build mode and compare it with dev mode. Trace how the JASYPT_ALGO secret reaches the parser; done means the algorithm loads successfully and the route can resolve and decrypt {{test}} without the NoSuchAlgorithmException.

Written by the indexing model from the issue text.

Assessment

Tech stack
java, kubernetes
Domain
backend, devops
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.