diff --git a/components/camel-shiro/pom.xml b/components/camel-shiro/pom.xml
index 939f005050b61..473cbfecc6cbd 100644
--- a/components/camel-shiro/pom.xml
+++ b/components/camel-shiro/pom.xml
@@ -44,8 +44,12 @@
org.apache.shiro
- shiro-core
- jakarta
+ shiro-jakarta-ee
+ ${shiro-version}
+
+
+ org.apache.shiro
+ shiro-crypto-cipher
${shiro-version}
diff --git a/components/camel-shiro/src/main/java/org/apache/camel/component/shiro/security/ShiroSecurityHelper.java b/components/camel-shiro/src/main/java/org/apache/camel/component/shiro/security/ShiroSecurityHelper.java
index 488c50e6d834a..51b46fe100083 100644
--- a/components/camel-shiro/src/main/java/org/apache/camel/component/shiro/security/ShiroSecurityHelper.java
+++ b/components/camel-shiro/src/main/java/org/apache/camel/component/shiro/security/ShiroSecurityHelper.java
@@ -19,8 +19,8 @@
import java.util.regex.Matcher;
import java.util.regex.Pattern;
-import org.apache.shiro.crypto.CipherService;
-import org.apache.shiro.util.ByteSource;
+import org.apache.shiro.crypto.cipher.CipherService;
+import org.apache.shiro.lang.util.ByteSource;
public final class ShiroSecurityHelper {
diff --git a/components/camel-shiro/src/main/java/org/apache/camel/component/shiro/security/ShiroSecurityPolicy.java b/components/camel-shiro/src/main/java/org/apache/camel/component/shiro/security/ShiroSecurityPolicy.java
index 6ca0b64e9e4db..f31a7310fae74 100644
--- a/components/camel-shiro/src/main/java/org/apache/camel/component/shiro/security/ShiroSecurityPolicy.java
+++ b/components/camel-shiro/src/main/java/org/apache/camel/component/shiro/security/ShiroSecurityPolicy.java
@@ -26,11 +26,10 @@
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.authz.Permission;
import org.apache.shiro.config.Ini;
-import org.apache.shiro.config.IniSecurityManagerFactory;
-import org.apache.shiro.crypto.AesCipherService;
-import org.apache.shiro.crypto.CipherService;
+import org.apache.shiro.crypto.cipher.AesCipherService;
+import org.apache.shiro.crypto.cipher.CipherService;
+import org.apache.shiro.ini.IniSecurityManagerFactory;
import org.apache.shiro.mgt.SecurityManager;
-import org.apache.shiro.util.Factory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -56,15 +55,15 @@ public ShiroSecurityPolicy() {
public ShiroSecurityPolicy(String iniResourcePath) {
this();
- Factory factory = new IniSecurityManagerFactory(iniResourcePath);
- securityManager = factory.getInstance();
+ Ini ini = new Ini();
+ ini.loadFromPath(iniResourcePath);
+ securityManager = new IniSecurityManagerFactory(ini).getInstance();
SecurityUtils.setSecurityManager(securityManager);
}
public ShiroSecurityPolicy(Ini ini) {
this();
- Factory factory = new IniSecurityManagerFactory(ini);
- securityManager = factory.getInstance();
+ securityManager = new IniSecurityManagerFactory(ini).getInstance();
SecurityUtils.setSecurityManager(securityManager);
}
diff --git a/components/camel-shiro/src/main/java/org/apache/camel/component/shiro/security/ShiroSecurityProcessor.java b/components/camel-shiro/src/main/java/org/apache/camel/component/shiro/security/ShiroSecurityProcessor.java
index e32584d75460e..05002aefc6914 100644
--- a/components/camel-shiro/src/main/java/org/apache/camel/component/shiro/security/ShiroSecurityProcessor.java
+++ b/components/camel-shiro/src/main/java/org/apache/camel/component/shiro/security/ShiroSecurityProcessor.java
@@ -31,9 +31,10 @@
import org.apache.shiro.authc.UnknownAccountException;
import org.apache.shiro.authc.UsernamePasswordToken;
import org.apache.shiro.authz.Permission;
-import org.apache.shiro.codec.Base64;
+import org.apache.shiro.crypto.cipher.ByteSourceBroker;
+import org.apache.shiro.lang.codec.Base64;
+import org.apache.shiro.lang.util.ByteSource;
import org.apache.shiro.subject.Subject;
-import org.apache.shiro.util.ByteSource;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -113,9 +114,8 @@ private void applySecurityPolicy(Exchange exchange) throws Exception {
exchange);
}
- ByteSource decryptedToken = policy.getCipherService().decrypt(encryptedToken.getBytes(), policy.getPassPhrase());
-
- ShiroSecurityToken securityToken = ShiroSecurityHelper.deserialize(decryptedToken.getBytes());
+ ByteSourceBroker decryptedToken = policy.getCipherService().decrypt(encryptedToken.getBytes(), policy.getPassPhrase());
+ ShiroSecurityToken securityToken = ShiroSecurityHelper.deserialize(decryptedToken.getClonedBytes());
Subject currentUser = SecurityUtils.getSubject();
diff --git a/components/camel-shiro/src/main/java/org/apache/camel/component/shiro/security/ShiroSecurityTokenInjector.java b/components/camel-shiro/src/main/java/org/apache/camel/component/shiro/security/ShiroSecurityTokenInjector.java
index 353c5cecc8b6c..6fbd4cfe565d7 100644
--- a/components/camel-shiro/src/main/java/org/apache/camel/component/shiro/security/ShiroSecurityTokenInjector.java
+++ b/components/camel-shiro/src/main/java/org/apache/camel/component/shiro/security/ShiroSecurityTokenInjector.java
@@ -18,9 +18,9 @@
import org.apache.camel.Exchange;
import org.apache.camel.Processor;
-import org.apache.shiro.crypto.AesCipherService;
-import org.apache.shiro.crypto.CipherService;
-import org.apache.shiro.util.ByteSource;
+import org.apache.shiro.crypto.cipher.AesCipherService;
+import org.apache.shiro.crypto.cipher.CipherService;
+import org.apache.shiro.lang.util.ByteSource;
public class ShiroSecurityTokenInjector implements Processor {
private byte[] passPhrase;
diff --git a/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_5.adoc b/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_5.adoc
index 98e2921388b19..338038f69f12f 100644
--- a/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_5.adoc
+++ b/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_5.adoc
@@ -222,6 +222,10 @@ calls the `/api-doc` endpoint.
Added a Cookie Handler allowing the addition, retrieval and expiry of Cookies.
+=== camel-shiro
+
+Upgraded Apache Shiro from 1.13 to 2.0.
+
=== camel-twilio
Upgraded to Twilio 10.1.0 which removed `call-feedback` and `call-feedback-summary` from the available APIs,
diff --git a/parent/pom.xml b/parent/pom.xml
index d0383ea06899f..ab3aa0e3fe0e1 100644
--- a/parent/pom.xml
+++ b/parent/pom.xml
@@ -414,7 +414,7 @@
2.2.21
12.4
2.13.13
- 1.13.0
+ 2.0.0
1.38.1
2.0.12
2.0.12