From 342c5fc99ca3c46c10896dcb88fc68413ee8fe94 Mon Sep 17 00:00:00 2001 From: michaeloffner Date: Fri, 6 Oct 2023 11:39:33 +0200 Subject: [PATCH] improve exception --- .../lucee/extension/resource/s3/function/S3Function.java | 5 +++-- .../extension/resource/s3/function/S3GetMetaData.java | 8 +++++--- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/source/java/src/org/lucee/extension/resource/s3/function/S3Function.java b/source/java/src/org/lucee/extension/resource/s3/function/S3Function.java index 3039d63..ca892cb 100644 --- a/source/java/src/org/lucee/extension/resource/s3/function/S3Function.java +++ b/source/java/src/org/lucee/extension/resource/s3/function/S3Function.java @@ -144,17 +144,18 @@ PropsAndEndpoint extractFromPath(CFMLEngine eng, String bucketName, String objec props.setAccessKeyId(accessKeyId); props.setSecretAccessKey(secretAccessKey); props.setHost(host); + RefString location = eng.getCreationUtil().createRefString(null); String[] bo = S3Resource.toBO(S3ResourceProvider.loadWithNewPattern(props, location, bucketName.substring(5), Util.isEmpty(accessKeyId))); bucketName = bo[0]; objectName = bo[1]; + if (objectName != null && objectName.endsWith("/")) objectName = objectName.substring(0, objectName.length() - 1); + // explicit credentals overrule in path credentials! if (!Util.isEmpty(accessKeyId)) props.setAccessKeyId(accessKeyId); if (!Util.isEmpty(secretAccessKey)) props.setSecretAccessKey(secretAccessKey); if (!Util.isEmpty(host)) props.setHost(host); - - if (objectName != null && objectName.endsWith("/")) objectName = objectName.substring(0, objectName.length() - 1); } return new PropsAndEndpoint(props, bucketName, objectName); } diff --git a/source/java/src/org/lucee/extension/resource/s3/function/S3GetMetaData.java b/source/java/src/org/lucee/extension/resource/s3/function/S3GetMetaData.java index 843f5a8..309a394 100644 --- a/source/java/src/org/lucee/extension/resource/s3/function/S3GetMetaData.java +++ b/source/java/src/org/lucee/extension/resource/s3/function/S3GetMetaData.java @@ -19,6 +19,7 @@ package org.lucee.extension.resource.s3.function; import org.lucee.extension.resource.s3.S3; +import org.lucee.extension.resource.s3.S3Properties; import lucee.loader.engine.CFMLEngine; import lucee.loader.engine.CFMLEngineFactory; @@ -55,14 +56,15 @@ public Object invoke(PageContext pc, Object[] args) throws PageException { * secretAccessKey, host)); print.e("pae.bucketName:" + pae.bucketName); print.e("pae.objectName:" + * pae.objectName); */ - + S3Properties props = pae.props != null ? pae.props : toS3Properties(pc, accessKeyId, secretAccessKey, host); try { // create S3 Instance - S3 s3 = S3.getInstance(pae.props != null ? pae.props : toS3Properties(pc, accessKeyId, secretAccessKey, host), toTimeout(timeout)); + S3 s3 = S3.getInstance(props, toTimeout(timeout)); return s3.getMetaData(pae.bucketName, pae.objectName); } catch (Exception e) { - throw eng.getCastUtil().toPageException(e); + throw eng.getExceptionUtil().createApplicationException(eng.getStringUtil().replace(props.toString(), secretAccessKey, "...", false, true)); + // throw eng.getCastUtil().toPageException(e); } } } \ No newline at end of file