You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2024/03/10 10:43:32 UTC
(camel) 01/01: CAMEL-20491: camel-shiro - Upgrade to 2.0 that is jakarta ee compatible
This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch shiro
in repository https://gitbox.apache.org/repos/asf/camel.git
commit d44cce7587ad1b1ab89a305006ba909077645063
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Sun Mar 10 11:43:13 2024 +0100
CAMEL-20491: camel-shiro - Upgrade to 2.0 that is jakarta ee compatible
---
components/camel-shiro/pom.xml | 8 ++++++--
.../component/shiro/security/ShiroSecurityHelper.java | 4 ++--
.../component/shiro/security/ShiroSecurityPolicy.java | 15 +++++++--------
.../component/shiro/security/ShiroSecurityProcessor.java | 10 +++++-----
.../shiro/security/ShiroSecurityTokenInjector.java | 6 +++---
.../modules/ROOT/pages/camel-4x-upgrade-guide-4_5.adoc | 4 ++++
parent/pom.xml | 2 +-
7 files changed, 28 insertions(+), 21 deletions(-)
diff --git a/components/camel-shiro/pom.xml b/components/camel-shiro/pom.xml
index 939f005050b..473cbfecc6c 100644
--- a/components/camel-shiro/pom.xml
+++ b/components/camel-shiro/pom.xml
@@ -44,8 +44,12 @@
</dependency>
<dependency>
<groupId>org.apache.shiro</groupId>
- <artifactId>shiro-core</artifactId>
- <classifier>jakarta</classifier>
+ <artifactId>shiro-jakarta-ee</artifactId>
+ <version>${shiro-version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.shiro</groupId>
+ <artifactId>shiro-crypto-cipher</artifactId>
<version>${shiro-version}</version>
</dependency>
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 488c50e6d83..51b46fe1000 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 @@ package org.apache.camel.component.shiro.security;
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 6ca0b64e9e4..f31a7310fae 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.camel.spi.AuthorizationPolicy;
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 class ShiroSecurityPolicy implements AuthorizationPolicy {
public ShiroSecurityPolicy(String iniResourcePath) {
this();
- Factory<SecurityManager> 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<SecurityManager> 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 e32584d7546..05002aefc69 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.LockedAccountException;
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 @@ public class ShiroSecurityProcessor extends DelegateAsyncProcessor {
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 353c5cecc8b..6fbd4cfe565 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 @@ package org.apache.camel.component.shiro.security;
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 98e2921388b..338038f69f1 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 401d4e5b864..2996276bda7 100644
--- a/parent/pom.xml
+++ b/parent/pom.xml
@@ -414,7 +414,7 @@
<rxjava2-version>2.2.21</rxjava2-version>
<saxon-version>12.4</saxon-version>
<scala-datasonnet-version>2.13.13</scala-datasonnet-version>
- <shiro-version>1.13.0</shiro-version>
+ <shiro-version>2.0.0</shiro-version>
<slack-api-model-version>1.38.1</slack-api-model-version>
<slf4j-api-version>2.0.12</slf4j-api-version>
<slf4j-version>2.0.12</slf4j-version>