jenkinsci / artifactory-artifact-manager-plugin

artifactory-artifact-manager-plugin
https://plugins.jenkins.io/artifactory-artifact-manager/
MIT License
0 stars 3 forks source link

plugin yields exception on space character in job name, folder name, or file name. #12

Closed moshavnik closed 3 months ago

moshavnik commented 3 months ago

Jenkins and plugins versions report

Environment ``` Jenkins: 2.440.2 OS: Linux - 3.10.0-1160.105.1.el7.x86_64 Java: 17.0.10 - Eclipse Adoptium (OpenJDK 64-Bit Server VM) --- Parameterized-Remote-Trigger:3.2.0 active-directory:2.35 additional-metrics:67.vcb_823d3999a_2 agent-maintenance:2.163.v08874cd79262 all-changes:1.5 allure-jenkins-plugin:2.31.1 analysis-model-api:12.1.0 ansible:307.va_1f3ef06575a_ ansicolor:1.0.4 ant:497.v94e7d9fffa_b_9 antisamy-markup-formatter:162.v0e6ec0fcfcf6 any-buildstep:14.ve115ec1484f0 apache-httpcomponents-client-4-api:4.5.14-208.v438351942757 apache-httpcomponents-client-5-api:5.3.1-1.0 artifact-repository-parameter:2.0.1 artifactdeployer:1.3 artifactory:4.0.6 artifactory-artifact-manager:55.v2c4362a_b_c4cb_ asm-api:9.6-3.v2e1fa_b_338cd7 assertthat-bdd-jira:1.7 atlassian-jira-software-cloud:2.0.13 authentication-tokens:1.53.v1c90fd9191a_b_ authorize-project:1.7.1 autocancel:1.0.5 aws-credentials:231.v08a_59f17d742 aws-java-sdk:1.12.671-445.ve02f9b_558f2e aws-java-sdk-api-gateway:1.12.671-445.ve02f9b_558f2e aws-java-sdk-autoscaling:1.12.671-445.ve02f9b_558f2e aws-java-sdk-cloudformation:1.12.671-445.ve02f9b_558f2e aws-java-sdk-cloudfront:1.12.671-445.ve02f9b_558f2e aws-java-sdk-codebuild:1.12.671-445.ve02f9b_558f2e aws-java-sdk-codedeploy:1.12.671-445.ve02f9b_558f2e aws-java-sdk-ec2:1.12.671-445.ve02f9b_558f2e aws-java-sdk-ecr:1.12.671-445.ve02f9b_558f2e aws-java-sdk-ecs:1.12.671-445.ve02f9b_558f2e aws-java-sdk-efs:1.12.671-445.ve02f9b_558f2e aws-java-sdk-elasticbeanstalk:1.12.671-445.ve02f9b_558f2e aws-java-sdk-elasticloadbalancingv2:1.12.671-445.ve02f9b_558f2e aws-java-sdk-iam:1.12.671-445.ve02f9b_558f2e aws-java-sdk-kinesis:1.12.671-445.ve02f9b_558f2e aws-java-sdk-lambda:1.12.671-445.ve02f9b_558f2e aws-java-sdk-logs:1.12.671-445.ve02f9b_558f2e aws-java-sdk-minimal:1.12.671-445.ve02f9b_558f2e aws-java-sdk-organizations:1.12.671-445.ve02f9b_558f2e aws-java-sdk-secretsmanager:1.12.671-445.ve02f9b_558f2e aws-java-sdk-sns:1.12.671-445.ve02f9b_558f2e aws-java-sdk-sqs:1.12.671-445.ve02f9b_558f2e aws-java-sdk-ssm:1.12.671-445.ve02f9b_558f2e badge:1.9.1 basic-branch-build-strategies:81.v05e333931c7d blueocean:1.27.11 blueocean-autofavorite:1.2.5 blueocean-bitbucket-pipeline:1.27.11 blueocean-commons:1.27.11 blueocean-config:1.27.11 blueocean-core-js:1.27.11 blueocean-dashboard:1.27.11 blueocean-display-url:2.4.2 blueocean-events:1.27.11 blueocean-git-pipeline:1.27.11 blueocean-github-pipeline:1.27.11 blueocean-i18n:1.27.11 blueocean-jira:1.27.11 blueocean-jwt:1.27.11 blueocean-personalization:1.27.11 blueocean-pipeline-api-impl:1.27.11 blueocean-pipeline-editor:1.27.11 blueocean-pipeline-scm-api:1.27.11 blueocean-rest:1.27.11 blueocean-rest-impl:1.27.11 blueocean-web:1.27.11 bootstrap5-api:5.3.3-1 bouncycastle-api:2.30.1.77-225.v26ea_c9455fd9 branch-api:2.1152.v6f101e97dd77 build-environment:1.7 build-failure-analyzer:2.5.0 build-history-manager:1.8.0 build-history-metrics-plugin:112.v476124de7dfc build-monitor-plugin:1.14-860.vd06ef2568b_3f build-name-setter:2.4.2 build-pipeline-plugin:2.0.1 build-time-blame:75.v44a_51cc97cdd-2.1.0 build-timeout:1.32 build-timestamp:1.0.3 build-user-vars-plugin:1.9 build-with-parameters:76.v9382db_f78962 buildtriggerbadge:251.vdf6ef853f3f5 built-on-column:1.4 caffeine-api:3.1.8-133.v17b_1ff2e0599 calendar-view:0.3.3 checks-api:2.0.2 claim:543.v0061de6b_dcb_d clearcase:1.6.8 cloud-stats:336.v788e4055508b_ cloudbees-bitbucket-branch-source:880.vcf4056c5a_71f cloudbees-disk-usage-simple:203.v3f46a_7462b_1a_ cloudbees-folder:6.901.vb_4c7a_da_75da_3 cloudbees-jenkins-advisor:358.v58972d19b_1f0 clover:4.14.2.596.vb_4d6475e990b_ cmakebuilder:4.1.1 cobertura:1.17 code-coverage-api:4.99.0 command-launcher:107.v773860566e2e commons-httpclient3-api:3.1-3 commons-lang3-api:3.13.0-62.v7d18e55f51e2 commons-text-api:1.11.0-95.v22a_d30ee5d36 compact-columns:1.185.vf3851b_4d31fe concurrent-step:1.0.0 conditional-buildstep:1.4.3 config-driven-pipeline:1.3 config-file-provider:968.ve1ca_eb_913f8c configuration-as-code:1775.v810dc950b_514 configuration-as-code-groovy:1.1 configurationslicing:548.ve92d48e66b_f8 console-badge:1.1 console-column-plugin:252.v0b_8fa_0e33b_72 content-replace:1.8.2 conventional-commits:0.11.2 convert-to-pipeline:1.0 copyartifact:722.v0662a_9b_e22a_c coverage:1.13.0 credentials:1337.v60b_d7b_c7b_c9f credentials-binding:657.v2b_19db_7d6e6d cucumber-reports:5.8.1 custom-build-properties:2.90.v4c63458e3ec8 custom-folder-icon:2.12 custom-tools-plugin:0.8 customize-build-now:17.ve5db_875e5343 cvs:2.19.1 dark-theme:439.vdef09f81f85e dashboard-view:2.508.va_74654f026d1 data-tables-api:2.0.2-1 database:230.v701f20b_8b_f95 database-mysql:63.va_0596d2b_1438 database-postgresql:100.v2418e0a_c6909 database-sqlite:1.6 date-parameter:0.0.4 declarative-pipeline-migration-assistant:1.6.3 declarative-pipeline-migration-assistant-api:1.6.3 deploy:1.16 describe-with-params:1.0 disk-usage:1.2 display-url-api:2.200.vb_9327d658781 docker-build-publish:1.4.0 docker-commons:439.va_3cb_0a_6a_fb_29 docker-compose-build-step:1.0 docker-custom-build-environment:1.7.3 docker-java-api:3.3.4-86.v39b_a_5ede342c docker-plugin:1.6 docker-workflow:572.v950f58993843 dockerhub-notification:2.7.2 dotnet-sdk:1.4.0 downstream-build-cache:1.7 dtkit-api:3.0.2 durable-task:550.v0930093c4b_a_6 echarts-api:5.5.0-1 editable-choice:71.v02a291ebbe45 email-ext:2.105 email-ext-recipients-column:27.vb_9404db_b_018d emailext-template:1.5 embeddable-build-status:467.v4a_954796e45d enhanced-metrics:1.6 enhanced-old-build-discarder:1.4 envinject-api:1.199.v3ce31253ed13 extended-choice-parameter:381.v360a_25ea_017c extended-read-permission:53.v6499940139e5 extensible-choice-parameter:1.8.1 external-monitor-job:215.v2e88e894db_f8 external-workspace-manager:1.3.1 extra-columns:1.26 extra-tool-installers:139.v723fee51b_7f2 fail-the-build-plugin:5.v153b_2c826ef0 favorite:2.208.v91d65b_7792a_c file-leak-detector:1.13 file-operations:214.v2e7dc7f25757 file-parameters:316.va_83a_1221db_a_7 files-found-trigger:1.5 flexible-publish:0.16.1 folder-properties:1.2.1 font-awesome-api:6.5.1-3 forensics-api:2.4.0 fstrigger:1.00 generic-event:41.v2b15d4dfb893 generic-webhook-trigger:2.1.0 git:5.2.1 git-automerger:0.6.3 git-changelog:3.38 git-chooser-alternative:1.1 git-client:4.7.0 git-forensics:2.1.0 git-parameter:0.9.19 git-push:34.vd474e0fe7b_ec git-server:114.v068a_c7cc2574 git-tag-message:1.7.1 git-userContent:1.4 github:1.38.0 github-api:1.318-461.v7a_c09c9fa_d63 github-branch-source:1785.v99802b_69816c github-checks:554.vb_ee03a_000f65 github-pr-comment-build:103.vc8919acf2a6b github-pr-coverage-status:2.2.0 github-pullrequest:0.7.0 github-release:10.vc8cd6962b_e7f github-scm-trait-notification-context:40.vfa_7f31a_b_d7f8 gitlab-api:5.3.0-91.v1f9a_fda_d654f gitlab-branch-source:703.vc5fd7effcc6b_ gitlab-logo:1.1.2 gitlab-merge-request-jenkins:2.0.0 gitlab-plugin:1.8.0 golang:1.4 google-oauth-plugin:1.330.vf5e86021cb_ec gradle:2.10 groovy:457.v99900cb_85593 groovy-postbuild:228.vcdb_cf7265066 grypescanner:1.8 gson-api:2.10.1-15.v0d99f670e0a_7 h2-api:11.1.4.199-12.v9f4244395f7a_ handy-uri-templates-2-api:2.1.8-30.v7e777411b_148 hp-application-automation-tools-plugin:24.1.0 htmlpublisher:1.33 http_request:1.18 hudson-wsclean-plugin:1.0.8 image-tag-parameter:2.0 inline-pipeline:1.0.3 inodes-monitor:52.v05406b_c33a_b_0 instance-identity:185.v303dc7c645f9 ionicons-api:56.v1b_1c8c49374e ivy:2.5 jackson2-api:2.17.0-379.v02de8ec9f64c jacoco:3.3.5 jakarta-activation-api:2.1.3-1 jakarta-mail-api:2.1.3-1 javadoc:243.vb_b_503b_b_45537 javax-activation-api:1.2.0-6 javax-mail-api:1.6.2-9 jaxb:2.3.9-1 jdk-tool:73.vddf737284550 jenkins-design-language:1.27.11 jersey2-api:2.42-147.va_28a_44603b_d5 jfrog:1.5.0 jira:3.13 jira-ext:114.v7b_8b_1d4274c6 jira-integration:5.2.0-23.v990dc373a_0b_f jira-steps:2.0.165.v8846cf59f3db jira-trigger:1.0.3 jjwt-api:0.11.5-77.v646c772fddb_0 jnr-posix-api:3.1.19-2 job-dsl:1.87 job-import-plugin:3.6 job-parameter-summary:0.5 job-restrictions:0.8 jobConfigHistory:1229.v3039470161a_d jobcacher:449.v00180ef283de jobtag:25.va_12b_1dd63367 joda-time-api:2.12.7-29.v5a_b_e3a_82269a_ jquery:1.12.4-1 jquery3-api:3.7.1-2 jsch:0.2.16-86.v42e010d9484b_ json-api:20240303-41.v94e11e6de726 json-path-api:2.9.0-58.v62e3e85b_a_655 junit:1265.v65b_14fa_f12f0 junit-attachments:205.vc0677977deb_0 junit-realtime-test-reporter:149.v05a_d403e2f48 kerberos-sso:1.11 kotlin-v1-stdlib-jdk8:1.3.20-1.4 kubernetes:4203.v1dd44f5b_1cf9 kubernetes-cli:1.12.1 kubernetes-client-api:6.10.0-240.v57880ce8b_0b_2 kubernetes-credentials:0.11 last-changes:2.7.11 ldap:719.vcb_d039b_77d0d leastload:3.0.0 list-git-branches-parameter:0.0.13 locale:431.v3435fa_8f8445 lockable-resources:1246.v28b_e4cc6fa_16 log-parser:2.3.3 login-theme:146.v64a_da_cf70ea_6 m2release:0.16.4 mail-watcher-plugin:1.19 mailer:472.vf7c289a_4b_420 managed-scripts:1.5.6 mapdb-api:1.0.9-28.vf251ce40855d mask-passwords:173.v6a_077a_291eb_5 matlab:2.13.0 matrix-auth:3.2.2 matrix-combinations-parameter:1.3.3 matrix-project:822.824.v14451b_c0fd42 maven-dependency-update-trigger:1.5 maven-info:0.3.1 maven-plugin:3.23 maven-snapshot-check:1106.v529e6b_c11e8e metrics:4.2.21-449.v6960d7c54c69 mina-sshd-api-common:2.12.0-99.vdb_f07841c2db_ mina-sshd-api-core:2.12.0-99.vdb_f07841c2db_ miniorange-saml-sp:2.4.1 monitoring:1.98.0 msbuild:1.30 mstest:1.0.5 mstestrunner:1.5.0 multi-module-tests-publisher:1.44 multibranch-action-triggers:1.8.6 multibranch-build-strategy-extension:48.v3dc306525d0c multibranch-scan-webhook-trigger:1.0.11 multiselect-parameter:1.7 muuri-api:0.9.5-3 mysql-api:8.3.0-21.v2837a_a_360d57 naginator:1.436.vb_e769dcb_cdf6 nant:248.vcc8a_3eec8db_a next-build-number:1.8 next-executions:310.v52e770651319 node-iterator-api:55.v3b_77d4032326 nodejs:1.6.1 nodelabelparameter:1.12.0 notification:1.17 notify-events:1.6.2 npm-yarn-wrapper-steps:0.4.0 nuget:1.1 nunit:485.ve8a_85357320d oauth-credentials:0.646.v02b_66dc03d2e okhttp-api:4.11.0-172.vda_da_1feeb_c6e ownership:0.13.0 pam-auth:1.10 parameterized-scheduler:262.v00f3d90585cc parameterized-trigger:787.v665fcf2a_830b_ percentage-du-node-column:0.1.0 pipeline-agent-build-history:28.vc1153328e666 pipeline-aggregator-view:1.15 pipeline-build-step:540.vb_e8849e1a_b_d8 pipeline-config-history:1.6 pipeline-cps-http:0.3.1 pipeline-github:2.8-159.09e4403bc62f pipeline-github-lib:42.v0739460cda_c4 pipeline-githubnotify-step:49.vf37bf92d2bc8 pipeline-graph-analysis:216.vfd8b_ece330ca_ pipeline-graph-view:234.v984087d1eb_25 pipeline-groovy-lib:704.vc58b_8890a_384 pipeline-input-notification:15.v175f12f20f9e pipeline-input-step:491.vb_07d21da_1a_fb_ pipeline-maven:1396.veb_f07b_2fc1d8 pipeline-maven-api:1396.veb_f07b_2fc1d8 pipeline-milestone-step:111.v449306f708b_7 pipeline-model-api:2.2184.v0b_358b_953e69 pipeline-model-definition:2.2184.v0b_358b_953e69 pipeline-model-extensions:2.2184.v0b_358b_953e69 pipeline-multibranch-defaults:2.1 pipeline-npm:204.v4dc4c2202625 pipeline-project-env:108.vfa_130b_24429b_ pipeline-rest-api:2.34 pipeline-stage-step:305.ve96d0205c1c6 pipeline-stage-tags-metadata:2.2184.v0b_358b_953e69 pipeline-stage-view:2.34 pipeline-timeline:1.0.3 pipeline-utility-steps:2.16.2 plain-credentials:179.vc5cb_98f6db_38 platformlabeler:2325.v8f074df8840d plugin-usage-plugin:4.3 plugin-util-api:4.1.0 pollscm:1.5 postbuild-task:1.9 postbuildscript:3.2.0-550.v88192b_d3e922 postgresql-api:42.7.2-40.v76d376d65c77 powershell:2.1 preSCMbuildstep:71.v1f2990a_37e27 prism-api:1.29.0-13 prometheus:2.5.2 promoted-builds:945.v597f5c6a_d3fd publish-over:0.22 publish-over-cifs:0.16 publish-over-ftp:1.17 pubsub-light:1.18 purge-build-queue-plugin:88.v23b_97b_f2c7a_d purge-job-history:1.6 pyenv-pipeline:2.1.2 rabbitmq-build-trigger:2.5 rabbitmq-consumer:2.8 rabbitmq-publisher:1.3.1 rebuild:330.v645b_7df10e2a_ remote-file:1.24 repository-connector:2.2.1 resource-disposer:0.23 rest-list-parameter:1.7.0 rich-text-publisher-plugin:1.5 run-condition:1.7 run-selector:1.1.1 saml:4.464.vea_cb_75d7f5e0 schedule-build:557.va_2b_4f8544708 scm-api:689.v237b_6d3a_ef7f scm-filter-branch-pr:148.v0b_5f06e8b_c84 scoring-load-balancer:81.vb_82d531ff049 script-security:1326.vdb_c154de8669 scriptler:348.v5d461e205da_a_ select2-api:4.0.13-8 seleniumhtmlreport:1.1 semantic-versioning-plugin:1.15 shelve-project-plugin:3.2 sidebar-link:2.4.1 sidebar-update-notification:1.1.0 simple-theme-plugin:176.v39740c03a_a_f5 skip-notifications-trait:313.vd1337c8f8134 snakeyaml-api:2.2-111.vc6598e30cc65 sonar:2.17.2 sqlplus-script-runner:3.0.0 sse-gateway:1.26 ssh:2.6.1 ssh-agent:346.vda_a_c4f2c8e50 ssh-credentials:334.v7732563deee1 ssh-slaves:2.948.vb_8050d697fec ssh-steps:2.0.68.va_d21a_12a_6476 sshd:3.322.v159e91f6a_550 startup-trigger-plugin:2.9.4 strict-crumb-issuer:2.1.1 structs:337.v1b_04ea_4df7c8 subversion:1256.vee91953217b_6 support-core:1421.v1a_899a_c02a_54 swarm:3.44 synopsys-coverity:3.0.3 terraform:1.0.10 test-results-aggregator:2.1 test-results-analyzer:0.4.1 text-finder:1.26 theme-manager:215.vc1ff18d67920 thinBackup:1.19 timestamper:1.26 token-macro:400.v35420b_922dcb_ tracking-git:1.0 trilead-api:2.142.v748523a_76693 uno-choice:2.8.2 urltrigger:1.02 validating-string-parameter:183.v3748e79b_9737 validating-yaml-parameter:217.ve3877deb_a_5b_f variant:60.v7290fc0eb_b_cd versioncolumn:243.vda_c20eea_a_8a_f versionnumber:1.11 view-job-filters:369.ve0513a_a_f5524 vstestrunner:1.0.8 warnings-ng:11.2.2 webhook-step:342.v620877effe14 windows-cloud:1.0.1 wix:1.12 workflow-aggregator:596.v8c21c963d92d workflow-api:1291.v51fd2a_625da_7 workflow-basic-steps:1049.v257a_e6b_30fb_d workflow-cps:3889.v937e0b_3412d3 workflow-durable-task-step:1331.vc8c2fed35334 workflow-job:1400.v7fd111b_ec82f workflow-multibranch:773.vc4fe1378f1d5 workflow-remote-loader:1.6 workflow-scm-step:427.v4ca_6512e7df1 workflow-step-api:657.v03b_e8115821b_ workflow-support:881.v7663695646cf ws-cleanup:0.45 xtrigger-api:1.0 xunit:3.1.4 yet-another-build-visualizer:1.16 zentimestamp:4.2 ```

What Operating System are you using (both controller, and any agents involved in the problem)?

controller: centos 7 agent: windows 10

Reproduction steps

  1. on the controller: create a regular pipeline job with space in its name ("some job" - for example)
  2. on a windows 10 agent: create a folder with space in its name ("some folder" - for example)
  3. on a windows 10 agent: create a file with space in its name ("some file.txt" - for example), place the file inside the folder from the previous step.
  4. on the controller: configure the jenkins to use artifactory for artifacts storage using the plugin.
  5. in the job from step 1, add a step to upload the folder and file from steps 2 and 3 as artifacts.
  6. connect the agent with the folder and file to the controller.
  7. run the job from step 1.

Expected Results

job artifacts are uploaded successfully to the artifactory.

Actual Results

exception occurs, stating the space character in the job name, folder name and file name - is illegal. exception is attached after removing sensitive data. artifacts manager artifactory exception with space in job name.txt

Anything else?

I think using the folders plugin in jenkins, and creating a folder with space in its name would cause the exact problem - didn't try it though. if neede I can provide more infromation (tell me what is missing).

Are you interested in contributing a fix?

I wish :)

jonesbusy commented 3 months ago

Hi,

Thanks for your report. That's correct I didn't perform any test, automated or manual with special character on file names :(

I will try to take a look at it because I'm sure I will face the same anytime soon

jonesbusy commented 3 months ago

Should be fixed by #14

Release will be published soon

jonesbusy commented 3 months ago

@moshavnik Can you try again with 59.ve0c669a_a_1913. It should fix any issue with space or special chars on job names, prefix or artifact names

moshavnik commented 3 months ago

tested. works as expected!

thank you for the incredible quick fix!