From 0da1397153bf3f57c64185aeead67116a344eac1 Mon Sep 17 00:00:00 2001 From: Dave Syer Date: Mon, 26 Jun 2017 16:58:25 +0100 Subject: [PATCH] Add optional decryption to bootstrap config server Fixes gh-434 --- .../ConfigServerBootstrapConfiguration.java | 27 +++++++- .../encryption/LocatorTextEncryptor.java | 61 ++++++++++++++++++ .../main/resources/META-INF/spring.factories | 4 +- ...BootstrapConfigServerIntegrationTests.java | 8 ++- .../src/test/resources/enable-bootstrap.yml | 10 ++- .../resources/encrypt-repo/application.yml | 9 +++ .../resources/encrypt-repo/bar.properties | 1 + .../resources/encrypt-repo/git/COMMIT_EDITMSG | 1 + .../resources/encrypt-repo/git/FETCH_HEAD | 2 + .../src/test/resources/encrypt-repo/git/HEAD | 1 + .../test/resources/encrypt-repo/git/config | 5 ++ .../resources/encrypt-repo/git/gitk.cache | 3 + .../src/test/resources/encrypt-repo/git/index | Bin 0 -> 225 bytes .../test/resources/encrypt-repo/git/logs/HEAD | 7 ++ .../git/logs/refs/heads/composite | 1 + .../encrypt-repo/git/logs/refs/heads/master | 2 + .../encrypt-repo/git/logs/refs/heads/raw | 1 + .../13/b76fa2acbef52a002372071d08d7967fee9146 | Bin 0 -> 419 bytes .../ad/5e0cb7036ed11ddd4b7be6ed86ad3565c8a3fc | 4 ++ .../e7/7c14ccb5f9e49c11b6d4172b76b0d3cf4cef56 | Bin 0 -> 98 bytes ...edd2290fa647beaa1255881228dc90c1d53fce.idx | Bin 0 -> 1268 bytes ...dd2290fa647beaa1255881228dc90c1d53fce.pack | Bin 0 -> 571 bytes .../encrypt-repo/git/refs/heads/composite | 1 + .../encrypt-repo/git/refs/heads/master | 1 + .../resources/encrypt-repo/git/refs/heads/raw | 1 + .../resources/encrypt-repo/git/refs/tags/foo | 1 + 26 files changed, 144 insertions(+), 7 deletions(-) create mode 100644 spring-cloud-config-server/src/main/java/org/springframework/cloud/config/server/encryption/LocatorTextEncryptor.java create mode 100644 spring-cloud-config-server/src/test/resources/encrypt-repo/application.yml create mode 100644 spring-cloud-config-server/src/test/resources/encrypt-repo/bar.properties create mode 100644 spring-cloud-config-server/src/test/resources/encrypt-repo/git/COMMIT_EDITMSG create mode 100644 spring-cloud-config-server/src/test/resources/encrypt-repo/git/FETCH_HEAD create mode 100644 spring-cloud-config-server/src/test/resources/encrypt-repo/git/HEAD create mode 100644 spring-cloud-config-server/src/test/resources/encrypt-repo/git/config create mode 100644 spring-cloud-config-server/src/test/resources/encrypt-repo/git/gitk.cache create mode 100644 spring-cloud-config-server/src/test/resources/encrypt-repo/git/index create mode 100644 spring-cloud-config-server/src/test/resources/encrypt-repo/git/logs/HEAD create mode 100644 spring-cloud-config-server/src/test/resources/encrypt-repo/git/logs/refs/heads/composite create mode 100644 spring-cloud-config-server/src/test/resources/encrypt-repo/git/logs/refs/heads/master create mode 100644 spring-cloud-config-server/src/test/resources/encrypt-repo/git/logs/refs/heads/raw create mode 100644 spring-cloud-config-server/src/test/resources/encrypt-repo/git/objects/13/b76fa2acbef52a002372071d08d7967fee9146 create mode 100644 spring-cloud-config-server/src/test/resources/encrypt-repo/git/objects/ad/5e0cb7036ed11ddd4b7be6ed86ad3565c8a3fc create mode 100644 spring-cloud-config-server/src/test/resources/encrypt-repo/git/objects/e7/7c14ccb5f9e49c11b6d4172b76b0d3cf4cef56 create mode 100644 spring-cloud-config-server/src/test/resources/encrypt-repo/git/objects/pack/pack-d4edd2290fa647beaa1255881228dc90c1d53fce.idx create mode 100644 spring-cloud-config-server/src/test/resources/encrypt-repo/git/objects/pack/pack-d4edd2290fa647beaa1255881228dc90c1d53fce.pack create mode 100644 spring-cloud-config-server/src/test/resources/encrypt-repo/git/refs/heads/composite create mode 100644 spring-cloud-config-server/src/test/resources/encrypt-repo/git/refs/heads/master create mode 100644 spring-cloud-config-server/src/test/resources/encrypt-repo/git/refs/heads/raw create mode 100644 spring-cloud-config-server/src/test/resources/encrypt-repo/git/refs/tags/foo diff --git a/spring-cloud-config-server/src/main/java/org/springframework/cloud/config/server/bootstrap/ConfigServerBootstrapConfiguration.java b/spring-cloud-config-server/src/main/java/org/springframework/cloud/config/server/bootstrap/ConfigServerBootstrapConfiguration.java index 326cb108..3845f31c 100644 --- a/spring-cloud-config-server/src/main/java/org/springframework/cloud/config/server/bootstrap/ConfigServerBootstrapConfiguration.java +++ b/spring-cloud-config-server/src/main/java/org/springframework/cloud/config/server/bootstrap/ConfigServerBootstrapConfiguration.java @@ -15,17 +15,22 @@ */ package org.springframework.cloud.config.server.bootstrap; +import org.springframework.beans.BeansException; +import org.springframework.beans.factory.BeanFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.config.BeanPostProcessor; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.cloud.config.client.ConfigClientProperties; import org.springframework.cloud.config.server.config.ConfigServerProperties; import org.springframework.cloud.config.server.config.EnvironmentRepositoryConfiguration; +import org.springframework.cloud.config.server.encryption.LocatorTextEncryptor; import org.springframework.cloud.config.server.environment.EnvironmentRepository; import org.springframework.cloud.config.server.environment.EnvironmentRepositoryPropertySourceLocator; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Import; +import org.springframework.security.crypto.encrypt.TextEncryptor; import org.springframework.util.StringUtils; /** @@ -39,9 +44,27 @@ import org.springframework.util.StringUtils; * @author Roy Clarkson */ @Configuration -public class ConfigServerBootstrapConfiguration { +@ConditionalOnProperty("spring.cloud.config.server.bootstrap") +public class ConfigServerBootstrapConfiguration implements BeanPostProcessor { + + @Autowired + private BeanFactory beanFactory; + + @Override + public Object postProcessBeforeInitialization(Object bean, String beanName) + throws BeansException { + return bean; + } + + @Override + public Object postProcessAfterInitialization(Object bean, String beanName) + throws BeansException { + if (bean instanceof TextEncryptor && !(bean instanceof LocatorTextEncryptor)) { + return new LocatorTextEncryptor(beanFactory); + } + return bean; + } - @ConditionalOnProperty("spring.cloud.config.server.bootstrap") @EnableConfigurationProperties(ConfigServerProperties.class) @Import(EnvironmentRepositoryConfiguration.class) protected static class LocalPropertySourceLocatorConfiguration { diff --git a/spring-cloud-config-server/src/main/java/org/springframework/cloud/config/server/encryption/LocatorTextEncryptor.java b/spring-cloud-config-server/src/main/java/org/springframework/cloud/config/server/encryption/LocatorTextEncryptor.java new file mode 100644 index 00000000..6c4b5497 --- /dev/null +++ b/spring-cloud-config-server/src/main/java/org/springframework/cloud/config/server/encryption/LocatorTextEncryptor.java @@ -0,0 +1,61 @@ +/* + * Copyright 2012-2015 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.cloud.config.server.encryption; + +import java.util.Map; + +import org.springframework.beans.factory.BeanFactory; +import org.springframework.security.crypto.encrypt.TextEncryptor; + +/** + * @author Dave Syer + * + */ +public class LocatorTextEncryptor implements TextEncryptor { + + private EnvironmentPrefixHelper helper = new EnvironmentPrefixHelper(); + + private TextEncryptorLocator locator; + + private BeanFactory beanFactory; + + public LocatorTextEncryptor(BeanFactory beanFactory) { + this.beanFactory = beanFactory; + } + + @Override + public String encrypt(String text) { + Map keys = helper.getEncryptorKeys("configserver", "default", + text); + return getLocator().locate(keys).encrypt(helper.stripPrefix(text)); + } + + private TextEncryptorLocator getLocator() { + if (locator == null) { + locator = beanFactory.getBean(TextEncryptorLocator.class); + } + return locator; + } + + @Override + public String decrypt(String encryptedText) { + Map keys = helper.getEncryptorKeys("configserver", "default", + encryptedText); + return getLocator().locate(keys).decrypt(helper.stripPrefix(encryptedText)); + } + +} \ No newline at end of file diff --git a/spring-cloud-config-server/src/main/resources/META-INF/spring.factories b/spring-cloud-config-server/src/main/resources/META-INF/spring.factories index 94a0bb01..7b893f04 100644 --- a/spring-cloud-config-server/src/main/resources/META-INF/spring.factories +++ b/spring-cloud-config-server/src/main/resources/META-INF/spring.factories @@ -1,6 +1,8 @@ # Bootstrap components org.springframework.cloud.bootstrap.BootstrapConfiguration=\ -org.springframework.cloud.config.server.bootstrap.ConfigServerBootstrapConfiguration +org.springframework.cloud.config.server.bootstrap.ConfigServerBootstrapConfiguration,\ +org.springframework.cloud.config.server.config.EncryptionAutoConfiguration,\ +org.springframework.cloud.config.server.config.SingleEncryptorAutoConfiguration # Application listeners org.springframework.context.ApplicationListener=\ diff --git a/spring-cloud-config-server/src/test/java/org/springframework/cloud/config/server/BootstrapConfigServerIntegrationTests.java b/spring-cloud-config-server/src/test/java/org/springframework/cloud/config/server/BootstrapConfigServerIntegrationTests.java index 5a215621..571a60fa 100644 --- a/spring-cloud-config-server/src/test/java/org/springframework/cloud/config/server/BootstrapConfigServerIntegrationTests.java +++ b/spring-cloud-config-server/src/test/java/org/springframework/cloud/config/server/BootstrapConfigServerIntegrationTests.java @@ -20,7 +20,7 @@ import static org.junit.Assert.assertFalse; @RunWith(SpringRunner.class) @SpringBootTest(classes = ConfigServerApplication.class, properties = "spring.cloud.bootstrap.name:enable-bootstrap", webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) -@ActiveProfiles("test") +@ActiveProfiles({"test", "encrypt"}) public class BootstrapConfigServerIntegrationTests { @LocalServerPort @@ -29,9 +29,12 @@ public class BootstrapConfigServerIntegrationTests { @Value("${info.foo}") private String foo; + @Value("${config.foo}") + private String config; + @BeforeClass public static void init() throws IOException { - ConfigServerTestUtils.prepareLocalRepo(); + ConfigServerTestUtils.prepareLocalRepo("encrypt-repo"); } @Test @@ -46,6 +49,7 @@ public class BootstrapConfigServerIntegrationTests { @Test public void environmentBootstraps() throws Exception { assertEquals("bar", foo); + assertEquals("foo", config); } } diff --git a/spring-cloud-config-server/src/test/resources/enable-bootstrap.yml b/spring-cloud-config-server/src/test/resources/enable-bootstrap.yml index c780b861..f587c9bb 100644 --- a/spring-cloud-config-server/src/test/resources/enable-bootstrap.yml +++ b/spring-cloud-config-server/src/test/resources/enable-bootstrap.yml @@ -3,5 +3,11 @@ spring: config: server: git: - uri: file:./target/repos/config-repo - bootstrap: true \ No newline at end of file + uri: file:./target/repos/encrypt-repo + bootstrap: true +encrypt: + key-store: + location: classpath:server.jks + password: letmein + secret: changeme + \ No newline at end of file diff --git a/spring-cloud-config-server/src/test/resources/encrypt-repo/application.yml b/spring-cloud-config-server/src/test/resources/encrypt-repo/application.yml new file mode 100644 index 00000000..13b76fa2 --- /dev/null +++ b/spring-cloud-config-server/src/test/resources/encrypt-repo/application.yml @@ -0,0 +1,9 @@ +info: + foo: bar + +--- +spring: + profiles: encrypt +config: + foo: '{cipher}{key:mytestkey}AQCohs2V6P8/UiG6a4TF/CZTCBdt5Q7wvNvcyf6vs2ByK2ZYSM77Nu0sOAduxUpMbVwJ/syecmkIXR+hU3EfT2uqPieA7/v5n33ppqIQ9JAt5JggdYIGe+wX25zU3DTXOOJdAAMzNX+zjOVyCh0QtmJf/kFslg6NqQq0E+kSg3zBi3AnkKj5BLnLIxkjxzKA4mnDXpSm7ekLZZP2iQSYSW/82AC7UOLLzTqwInMI3tJLW1e9Ne+LDsjmSxA+nkK9zhidtXPwb/SPaNF74cJCEf9mgzzKYwJlwqChLzJt8UQ1jHwRc8B6FufmizUHSp27nxdtVB4HMqh3nNsMCy137Ces58T09ZS/y/cYNRxcFbp78MHFHUqAgbC0B/p5t6h4XbQ=' + diff --git a/spring-cloud-config-server/src/test/resources/encrypt-repo/bar.properties b/spring-cloud-config-server/src/test/resources/encrypt-repo/bar.properties new file mode 100644 index 00000000..7daacd5d --- /dev/null +++ b/spring-cloud-config-server/src/test/resources/encrypt-repo/bar.properties @@ -0,0 +1 @@ +foo: bar \ No newline at end of file diff --git a/spring-cloud-config-server/src/test/resources/encrypt-repo/git/COMMIT_EDITMSG b/spring-cloud-config-server/src/test/resources/encrypt-repo/git/COMMIT_EDITMSG new file mode 100644 index 00000000..a6b4e397 --- /dev/null +++ b/spring-cloud-config-server/src/test/resources/encrypt-repo/git/COMMIT_EDITMSG @@ -0,0 +1 @@ +Add encrypted property diff --git a/spring-cloud-config-server/src/test/resources/encrypt-repo/git/FETCH_HEAD b/spring-cloud-config-server/src/test/resources/encrypt-repo/git/FETCH_HEAD new file mode 100644 index 00000000..527abd40 --- /dev/null +++ b/spring-cloud-config-server/src/test/resources/encrypt-repo/git/FETCH_HEAD @@ -0,0 +1,2 @@ +7df4a26d5437d9d4090cd5809967f870444cde8f not-for-merge branch 'raw' of dsyer@localhost:/home/dsyer/dev/platform/config/spring-platform-config-server/target/test-classes/config-repo +7df4a26d5437d9d4090cd5809967f870444cde8f not-for-merge tag 'foo' of dsyer@localhost:/home/dsyer/dev/platform/config/spring-platform-config-server/target/test-classes/config-repo diff --git a/spring-cloud-config-server/src/test/resources/encrypt-repo/git/HEAD b/spring-cloud-config-server/src/test/resources/encrypt-repo/git/HEAD new file mode 100644 index 00000000..cb089cd8 --- /dev/null +++ b/spring-cloud-config-server/src/test/resources/encrypt-repo/git/HEAD @@ -0,0 +1 @@ +ref: refs/heads/master diff --git a/spring-cloud-config-server/src/test/resources/encrypt-repo/git/config b/spring-cloud-config-server/src/test/resources/encrypt-repo/git/config new file mode 100644 index 00000000..9b73bf82 --- /dev/null +++ b/spring-cloud-config-server/src/test/resources/encrypt-repo/git/config @@ -0,0 +1,5 @@ +[core] + repositoryformatversion = 0 + filemode = true + logallrefupdates = true +[branch "raw"] diff --git a/spring-cloud-config-server/src/test/resources/encrypt-repo/git/gitk.cache b/spring-cloud-config-server/src/test/resources/encrypt-repo/git/gitk.cache new file mode 100644 index 00000000..b420ccba --- /dev/null +++ b/spring-cloud-config-server/src/test/resources/encrypt-repo/git/gitk.cache @@ -0,0 +1,3 @@ +1 1 +7df4a26d5437d9d4090cd5809967f870444cde8f 9f01fb972bc9617e4ea59f5c8ee3ceb5ff515cd0 9f01fb972bc9617e4ea59f5c8ee3ceb5ff515cd0 +1 diff --git a/spring-cloud-config-server/src/test/resources/encrypt-repo/git/index b/spring-cloud-config-server/src/test/resources/encrypt-repo/git/index new file mode 100644 index 0000000000000000000000000000000000000000..e9aa8984d9074f5937eac605850199482121aaa1 GIT binary patch literal 225 zcmZ?q402{*U|<5_$UrSS;cIHnAX@P4y)6t39Lx-PZqpeU8kaCIFu#Cc#)rb&^B1kz z_f?BQxrkksOEUBG^eS_6fCfeeYAob5c3ldiA?CTJqngLS zQM>AF?2gOX$L>$lm1R6V<3^$V(<2OgNr^>z1x5J 1406860717 -0700 +7df4a26d5437d9d4090cd5809967f870444cde8f 9f01fb972bc9617e4ea59f5c8ee3ceb5ff515cd0 Ryan Baxter 1481905383 -0500 checkout: moving from raw to master +9f01fb972bc9617e4ea59f5c8ee3ceb5ff515cd0 7df4a26d5437d9d4090cd5809967f870444cde8f Ryan Baxter 1481905407 -0500 checkout: moving from master to raw +7df4a26d5437d9d4090cd5809967f870444cde8f 7df4a26d5437d9d4090cd5809967f870444cde8f Ryan Baxter 1481905544 -0500 checkout: moving from raw to composite +7df4a26d5437d9d4090cd5809967f870444cde8f 7df4a26d5437d9d4090cd5809967f870444cde8f Ryan Baxter 1481905552 -0500 checkout: moving from composite to raw +7df4a26d5437d9d4090cd5809967f870444cde8f 9f01fb972bc9617e4ea59f5c8ee3ceb5ff515cd0 Dave Syer 1498491043 +0100 checkout: moving from raw to master +9f01fb972bc9617e4ea59f5c8ee3ceb5ff515cd0 ad5e0cb7036ed11ddd4b7be6ed86ad3565c8a3fc Dave Syer 1498491468 +0100 commit: Add encrypted property diff --git a/spring-cloud-config-server/src/test/resources/encrypt-repo/git/logs/refs/heads/composite b/spring-cloud-config-server/src/test/resources/encrypt-repo/git/logs/refs/heads/composite new file mode 100644 index 00000000..67ab67c5 --- /dev/null +++ b/spring-cloud-config-server/src/test/resources/encrypt-repo/git/logs/refs/heads/composite @@ -0,0 +1 @@ +0000000000000000000000000000000000000000 7df4a26d5437d9d4090cd5809967f870444cde8f Ryan Baxter 1481905474 -0500 branch: Created from raw diff --git a/spring-cloud-config-server/src/test/resources/encrypt-repo/git/logs/refs/heads/master b/spring-cloud-config-server/src/test/resources/encrypt-repo/git/logs/refs/heads/master new file mode 100644 index 00000000..4310fccd --- /dev/null +++ b/spring-cloud-config-server/src/test/resources/encrypt-repo/git/logs/refs/heads/master @@ -0,0 +1,2 @@ +0000000000000000000000000000000000000000 9f01fb972bc9617e4ea59f5c8ee3ceb5ff515cd0 Dave Syer 1406860776 -0700 branch: Created from 9f01fb972bc9617e4ea59f5c8ee3ceb5ff515cd0 +9f01fb972bc9617e4ea59f5c8ee3ceb5ff515cd0 ad5e0cb7036ed11ddd4b7be6ed86ad3565c8a3fc Dave Syer 1498491468 +0100 commit: Add encrypted property diff --git a/spring-cloud-config-server/src/test/resources/encrypt-repo/git/logs/refs/heads/raw b/spring-cloud-config-server/src/test/resources/encrypt-repo/git/logs/refs/heads/raw new file mode 100644 index 00000000..c6423ee9 --- /dev/null +++ b/spring-cloud-config-server/src/test/resources/encrypt-repo/git/logs/refs/heads/raw @@ -0,0 +1 @@ +0000000000000000000000000000000000000000 7df4a26d5437d9d4090cd5809967f870444cde8f Dave Syer 1406860717 -0700 diff --git a/spring-cloud-config-server/src/test/resources/encrypt-repo/git/objects/13/b76fa2acbef52a002372071d08d7967fee9146 b/spring-cloud-config-server/src/test/resources/encrypt-repo/git/objects/13/b76fa2acbef52a002372071d08d7967fee9146 new file mode 100644 index 0000000000000000000000000000000000000000..c7dc2ed291e7723add5566f1f038efc55962de6f GIT binary patch literal 419 zcmV;U0bKrg0UeCXj;cTaMDLofa5oELK;D|%1)z)|pa?kVPM~>+G>zQ~^kn{h%&e+% zDyPzWm(C<@@vnwOx0*4tS<$^Sy*?ObKA$rfJ!)94-W)x;qP_#XngN(SCPbL5gGK$f z{W%}sS&b_2`1x+Yv}z{;FnPBhJutfp3n%5EadG{rT&2k3%u8e%IgtZ(c=@kvDwG!% zjADB16wT-QD7CoH|~Pm@{k0co9rYb<;(6~7O9e#16lDN>^rb=d4~ zvf)D49-G@pce>QVb%MfH1&w>T9E3Uu&*2xR3A(Aqd)K8=KiJT-MdG+$3$XM7>#p&w z4M&}QpDk%s=Oj4{DHk5DzNJc;V{VFNTT;3^56*q)&B~$(+&D&brxYx_nTK+e%h|{7Pt%oUJU!z^q5ab%00Vv` E*SY2}r~m)} literal 0 HcmV?d00001 diff --git a/spring-cloud-config-server/src/test/resources/encrypt-repo/git/objects/pack/pack-d4edd2290fa647beaa1255881228dc90c1d53fce.idx b/spring-cloud-config-server/src/test/resources/encrypt-repo/git/objects/pack/pack-d4edd2290fa647beaa1255881228dc90c1d53fce.idx new file mode 100644 index 0000000000000000000000000000000000000000..2a25a7b0f49bb3301f87fdd20b4f5483efb77b94 GIT binary patch literal 1268 zcmexg;-AdGz`z8=qhRQU03*=puc7<+*;Da_(wf&?^4Gd zcTa|Hzu?!fUU5(UcBxDI{{oY_ED-+zhA9uQ*y07!i-7!UAij}eze-KC`oQCBoWK7) ipY^Zw_QYqOd2MI>an7H=ylg|9Z^`1arT4GC`3e9D%Xqc` literal 0 HcmV?d00001 diff --git a/spring-cloud-config-server/src/test/resources/encrypt-repo/git/objects/pack/pack-d4edd2290fa647beaa1255881228dc90c1d53fce.pack b/spring-cloud-config-server/src/test/resources/encrypt-repo/git/objects/pack/pack-d4edd2290fa647beaa1255881228dc90c1d53fce.pack new file mode 100644 index 0000000000000000000000000000000000000000..a082f3c195a8a659f954b8d0d48c6eb842604f63 GIT binary patch literal 571 zcmWG=boORoU|<4b_G!EobLO7*? zfAH!c`+D;|mH zE06MQU48D@yB%|C-~2O)jXZYQI8Wr3y)6^NDOc58Jf>&Nukbh=e87KMZIF9F>ZB<;}YE6zg78P^6PoLi&B=T-ni!0YS@lxvSE-3sA9#F?^Y_2!v;LLdp7`uD0IeVdkpKVy literal 0 HcmV?d00001 diff --git a/spring-cloud-config-server/src/test/resources/encrypt-repo/git/refs/heads/composite b/spring-cloud-config-server/src/test/resources/encrypt-repo/git/refs/heads/composite new file mode 100644 index 00000000..4389eb3a --- /dev/null +++ b/spring-cloud-config-server/src/test/resources/encrypt-repo/git/refs/heads/composite @@ -0,0 +1 @@ +7df4a26d5437d9d4090cd5809967f870444cde8f diff --git a/spring-cloud-config-server/src/test/resources/encrypt-repo/git/refs/heads/master b/spring-cloud-config-server/src/test/resources/encrypt-repo/git/refs/heads/master new file mode 100644 index 00000000..ae0c4a61 --- /dev/null +++ b/spring-cloud-config-server/src/test/resources/encrypt-repo/git/refs/heads/master @@ -0,0 +1 @@ +ad5e0cb7036ed11ddd4b7be6ed86ad3565c8a3fc diff --git a/spring-cloud-config-server/src/test/resources/encrypt-repo/git/refs/heads/raw b/spring-cloud-config-server/src/test/resources/encrypt-repo/git/refs/heads/raw new file mode 100644 index 00000000..4389eb3a --- /dev/null +++ b/spring-cloud-config-server/src/test/resources/encrypt-repo/git/refs/heads/raw @@ -0,0 +1 @@ +7df4a26d5437d9d4090cd5809967f870444cde8f diff --git a/spring-cloud-config-server/src/test/resources/encrypt-repo/git/refs/tags/foo b/spring-cloud-config-server/src/test/resources/encrypt-repo/git/refs/tags/foo new file mode 100644 index 00000000..4389eb3a --- /dev/null +++ b/spring-cloud-config-server/src/test/resources/encrypt-repo/git/refs/tags/foo @@ -0,0 +1 @@ +7df4a26d5437d9d4090cd5809967f870444cde8f