This is an automated email from the ASF dual-hosted git repository.
pjfanning pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/pekko-connectors.git
The following commit(s) were added to refs/heads/main by this push:
new a7b948f9b mask sensitive values in toString (#1809)
a7b948f9b is described below
commit a7b948f9b45bec9a96bcc0d28f6ce717816602f3
Author: PJ Fanning <[email protected]>
AuthorDate: Wed Aug 5 09:56:57 2026 +0100
mask sensitive values in toString (#1809)
---
.../stream/connectors/amqp/AmqpConnectionProvider.scala | 6 ++++--
.../pekko/stream/connectors/google/auth/AccessToken.scala | 11 ++++++++++-
.../connectors/google/auth/AccessTokenCredentials.scala | 5 +++++
.../connectors/google/auth/ServiceAccountCredentials.scala | 8 +++++++-
.../connectors/google/auth/UserAccessCredentials.scala | 9 ++++++++-
.../stream/connectors/huawei/pushkit/HmsSettings.scala | 13 +++++++++++++
.../stream/connectors/huawei/pushkit/impl/HmsTokenApi.scala | 13 +++++++++++--
.../pekko/stream/connectors/ironmq/IronMqSettings.scala | 2 +-
.../pekko/stream/connectors/jakartams/Credentials.scala | 2 +-
.../apache/pekko/stream/connectors/jms/Credentials.scala | 2 +-
.../scala/org/apache/pekko/stream/connectors/s3/model.scala | 2 +-
11 files changed, 62 insertions(+), 11 deletions(-)
diff --git
a/amqp/src/main/scala/org/apache/pekko/stream/connectors/amqp/AmqpConnectionProvider.scala
b/amqp/src/main/scala/org/apache/pekko/stream/connectors/amqp/AmqpConnectionProvider.scala
index 6d265e8dd..8509b3bd9 100644
---
a/amqp/src/main/scala/org/apache/pekko/stream/connectors/amqp/AmqpConnectionProvider.scala
+++
b/amqp/src/main/scala/org/apache/pekko/stream/connectors/amqp/AmqpConnectionProvider.scala
@@ -53,10 +53,12 @@ final class AmqpUriConnectionProvider private (val uri:
String) extends AmqpConn
factory.newConnection
}
- override def toString: String =
+ override def toString: String = {
+ val maskedUri = uri.replaceAll("://([^@]*)@", "://*****@")
"AmqpUriConnectionProvider(" +
- s"uri=$uri" +
+ s"uri=$maskedUri" +
")"
+ }
}
object AmqpUriConnectionProvider {
diff --git
a/google-common/src/main/scala/org/apache/pekko/stream/connectors/google/auth/AccessToken.scala
b/google-common/src/main/scala/org/apache/pekko/stream/connectors/google/auth/AccessToken.scala
index 3f6b538db..c82d7d009 100644
---
a/google-common/src/main/scala/org/apache/pekko/stream/connectors/google/auth/AccessToken.scala
+++
b/google-common/src/main/scala/org/apache/pekko/stream/connectors/google/auth/AccessToken.scala
@@ -26,6 +26,10 @@ import scala.concurrent.duration._
private[auth] final case class AccessToken(token: String, expiresAt: Long) {
def expiresSoon(in: FiniteDuration = 1.minute)(implicit clock: Clock):
Boolean =
expiresAt < JwtTime.nowSeconds + in.toSeconds
+
+ override def toString: String =
+ "AccessToken(token=*****," +
+ s"expiresAt=$expiresAt)"
}
@InternalApi
@@ -39,7 +43,12 @@ private[auth] object AccessToken {
}
@InternalApi
-private[auth] final case class AccessTokenResponse(access_token: String,
token_type: String, expires_in: Int)
+private[auth] final case class AccessTokenResponse(access_token: String,
token_type: String, expires_in: Int) {
+ override def toString: String =
+ "AccessTokenResponse(access_token=*****," +
+ s"token_type=$token_type," +
+ s"expires_in=$expires_in)"
+}
@InternalApi
private[auth] object AccessTokenResponse {
diff --git
a/google-common/src/main/scala/org/apache/pekko/stream/connectors/google/auth/AccessTokenCredentials.scala
b/google-common/src/main/scala/org/apache/pekko/stream/connectors/google/auth/AccessTokenCredentials.scala
index 9f121cac1..33fec7fcd 100644
---
a/google-common/src/main/scala/org/apache/pekko/stream/connectors/google/auth/AccessTokenCredentials.scala
+++
b/google-common/src/main/scala/org/apache/pekko/stream/connectors/google/auth/AccessTokenCredentials.scala
@@ -33,6 +33,11 @@ private[auth] object AccessTokenCredentials {
private[auth] final case class AccessTokenCredentials(projectId: String,
accessToken: String) extends Credentials
with RetrievableCredentials {
+ override def toString: String =
+ "AccessTokenCredentials(" +
+ s"projectId=$projectId," +
+ s"accessToken=*****)"
+
private val futureToken = Future.successful(OAuth2BearerToken(accessToken))
override def get()(implicit ec: ExecutionContext, settings:
RequestSettings): Future[OAuth2BearerToken] =
diff --git
a/google-common/src/main/scala/org/apache/pekko/stream/connectors/google/auth/ServiceAccountCredentials.scala
b/google-common/src/main/scala/org/apache/pekko/stream/connectors/google/auth/ServiceAccountCredentials.scala
index 7e69fb4e6..b96c8bced 100644
---
a/google-common/src/main/scala/org/apache/pekko/stream/connectors/google/auth/ServiceAccountCredentials.scala
+++
b/google-common/src/main/scala/org/apache/pekko/stream/connectors/google/auth/ServiceAccountCredentials.scala
@@ -53,7 +53,13 @@ private[connectors] object ServiceAccountCredentials {
apply(projectId, clientEmail, privateKey, scopes)
}
- final case class ServiceAccountCredentialsFile(project_id: String,
client_email: String, private_key: String)
+ final case class ServiceAccountCredentialsFile(project_id: String,
client_email: String, private_key: String) {
+ override def toString: String =
+ "ServiceAccountCredentialsFile(" +
+ s"project_id=$project_id," +
+ s"client_email=$client_email," +
+ s"private_key=*****)"
+ }
implicit val serviceAccountCredentialsFormat:
RootJsonFormat[ServiceAccountCredentialsFile] = jsonFormat3(
ServiceAccountCredentialsFile.apply)
}
diff --git
a/google-common/src/main/scala/org/apache/pekko/stream/connectors/google/auth/UserAccessCredentials.scala
b/google-common/src/main/scala/org/apache/pekko/stream/connectors/google/auth/UserAccessCredentials.scala
index be1f71ea9..102690cc7 100644
---
a/google-common/src/main/scala/org/apache/pekko/stream/connectors/google/auth/UserAccessCredentials.scala
+++
b/google-common/src/main/scala/org/apache/pekko/stream/connectors/google/auth/UserAccessCredentials.scala
@@ -59,7 +59,14 @@ private[connectors] object UserAccessCredentials {
final case class UserAccessCredentialsFile(client_id: String,
client_secret: String,
refresh_token: String,
- quota_project_id: String)
+ quota_project_id: String) {
+ override def toString: String =
+ "UserAccessCredentialsFile(" +
+ s"client_id=$client_id," +
+ s"client_secret=*****," +
+ s"refresh_token=*****," +
+ s"quota_project_id=$quota_project_id)"
+ }
implicit val userAccessCredentialsFormat:
RootJsonFormat[UserAccessCredentialsFile] = jsonFormat4(
UserAccessCredentialsFile.apply)
}
diff --git
a/huawei-push-kit/src/main/scala/org/apache/pekko/stream/connectors/huawei/pushkit/HmsSettings.scala
b/huawei-push-kit/src/main/scala/org/apache/pekko/stream/connectors/huawei/pushkit/HmsSettings.scala
index d818b19f6..2354ae22e 100644
---
a/huawei-push-kit/src/main/scala/org/apache/pekko/stream/connectors/huawei/pushkit/HmsSettings.scala
+++
b/huawei-push-kit/src/main/scala/org/apache/pekko/stream/connectors/huawei/pushkit/HmsSettings.scala
@@ -143,6 +143,14 @@ final case class HmsSettings @InternalApi private (
maxConcurrentConnections: Int,
forwardProxy: Option[ForwardProxy]) {
+ override def toString: String =
+ "HmsSettings(" +
+ s"appId=$appId," +
+ s"appSecret=*****," +
+ s"test=$test," +
+ s"maxConcurrentConnections=$maxConcurrentConnections," +
+ s"forwardProxy=$forwardProxy)"
+
def getAppId = appId
def getAppSecret = appSecret
def isTest = test
@@ -254,6 +262,11 @@ object ForwardProxyCredentials {
final case class ForwardProxyCredentials @InternalApi private (username:
String, password: String) {
+ override def toString: String =
+ "ForwardProxyCredentials(" +
+ s"username=$username," +
+ s"password=*****)"
+
def getUsername: String = username
def getPassword: String = password
diff --git
a/huawei-push-kit/src/main/scala/org/apache/pekko/stream/connectors/huawei/pushkit/impl/HmsTokenApi.scala
b/huawei-push-kit/src/main/scala/org/apache/pekko/stream/connectors/huawei/pushkit/impl/HmsTokenApi.scala
index d9e7e7bc7..509843a7d 100644
---
a/huawei-push-kit/src/main/scala/org/apache/pekko/stream/connectors/huawei/pushkit/impl/HmsTokenApi.scala
+++
b/huawei-push-kit/src/main/scala/org/apache/pekko/stream/connectors/huawei/pushkit/impl/HmsTokenApi.scala
@@ -72,6 +72,15 @@ private[pushkit] class HmsTokenApi(http: => HttpExt, system:
ActorSystem, forwar
*/
@InternalApi
private[pushkit] object HmsTokenApi {
- case class AccessTokenExpiry(accessToken: String, expiresAt: Long)
- case class OAuthResponse(access_token: String, token_type: String,
expires_in: Int)
+ case class AccessTokenExpiry(accessToken: String, expiresAt: Long) {
+ override def toString: String =
+ "AccessTokenExpiry(accessToken=*****," +
+ s"expiresAt=$expiresAt)"
+ }
+ case class OAuthResponse(access_token: String, token_type: String,
expires_in: Int) {
+ override def toString: String =
+ "OAuthResponse(access_token=*****," +
+ s"token_type=$token_type," +
+ s"expires_in=$expires_in)"
+ }
}
diff --git
a/ironmq/src/main/scala/org/apache/pekko/stream/connectors/ironmq/IronMqSettings.scala
b/ironmq/src/main/scala/org/apache/pekko/stream/connectors/ironmq/IronMqSettings.scala
index 744d53be2..1bc88828b 100644
---
a/ironmq/src/main/scala/org/apache/pekko/stream/connectors/ironmq/IronMqSettings.scala
+++
b/ironmq/src/main/scala/org/apache/pekko/stream/connectors/ironmq/IronMqSettings.scala
@@ -57,7 +57,7 @@ final class IronMqSettings private (
"IronMqSettings(" +
s"endpoint=$endpoint," +
s"projectId=$projectId," +
- s"token=$token," +
+ s"token=*****," +
s"consumerSettings=$consumerSettings" +
")"
}
diff --git
a/jakartams/src/main/scala/org/apache/pekko/stream/connectors/jakartams/Credentials.scala
b/jakartams/src/main/scala/org/apache/pekko/stream/connectors/jakartams/Credentials.scala
index 82e9e379a..0275467f8 100644
---
a/jakartams/src/main/scala/org/apache/pekko/stream/connectors/jakartams/Credentials.scala
+++
b/jakartams/src/main/scala/org/apache/pekko/stream/connectors/jakartams/Credentials.scala
@@ -31,7 +31,7 @@ final class Credentials private (
override def toString =
"Credentials(" +
s"username=$username," +
- s"password=${"*" * password.length}" +
+ s"password=*****" +
")"
override def equals(other: Any): Boolean = other match {
diff --git
a/jms/src/main/scala/org/apache/pekko/stream/connectors/jms/Credentials.scala
b/jms/src/main/scala/org/apache/pekko/stream/connectors/jms/Credentials.scala
index 41957a485..dbe71fae4 100644
---
a/jms/src/main/scala/org/apache/pekko/stream/connectors/jms/Credentials.scala
+++
b/jms/src/main/scala/org/apache/pekko/stream/connectors/jms/Credentials.scala
@@ -31,7 +31,7 @@ final class Credentials private (
override def toString =
"Credentials(" +
s"username=$username," +
- s"password=${"*" * password.length}" +
+ s"password=*****" +
")"
override def equals(other: Any): Boolean = other match {
diff --git
a/s3/src/main/scala/org/apache/pekko/stream/connectors/s3/model.scala
b/s3/src/main/scala/org/apache/pekko/stream/connectors/s3/model.scala
index 752abf6aa..240cbb866 100644
--- a/s3/src/main/scala/org/apache/pekko/stream/connectors/s3/model.scala
+++ b/s3/src/main/scala/org/apache/pekko/stream/connectors/s3/model.scala
@@ -46,7 +46,7 @@ final class MFA private (val serialNumber: String, val
tokenCode: String) {
override def toString: String =
"MFA(" +
s"serialNumber=$serialNumber," +
- s"tokenCode=$tokenCode" +
+ s"tokenCode=*****" +
")"
override def equals(other: Any): Boolean = other match {
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]