parent
3bb271e320
commit
5ac6a3d90b
@ -0,0 +1,24 @@
|
||||
plugins {
|
||||
id "java"
|
||||
id "org.springframework.boot.conventions"
|
||||
}
|
||||
|
||||
description = "Spring Boot Data MongoDB smoke test"
|
||||
|
||||
dependencies {
|
||||
implementation(project(":spring-boot-project:spring-boot-starters:spring-boot-starter-data-mongodb"))
|
||||
implementation(project(":spring-boot-project:spring-boot-starters:spring-boot-starter-data-mongodb-reactive"))
|
||||
implementation("io.projectreactor:reactor-core")
|
||||
|
||||
testImplementation(project(":spring-boot-project:spring-boot-test"))
|
||||
testImplementation(project(":spring-boot-project:spring-boot-starters:spring-boot-starter-test"))
|
||||
testImplementation(project(":spring-boot-project:spring-boot-tools:spring-boot-test-support"))
|
||||
testImplementation(project(":spring-boot-project:spring-boot-testcontainers"))
|
||||
testImplementation("io.projectreactor:reactor-test")
|
||||
testImplementation("org.junit.jupiter:junit-jupiter")
|
||||
testImplementation("org.junit.platform:junit-platform-engine")
|
||||
testImplementation("org.junit.platform:junit-platform-launcher")
|
||||
testImplementation("org.testcontainers:junit-jupiter")
|
||||
testImplementation("org.testcontainers:testcontainers")
|
||||
testImplementation("org.testcontainers:mongodb")
|
||||
}
|
@ -0,0 +1,44 @@
|
||||
/*
|
||||
* Copyright 2012-2023 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
|
||||
*
|
||||
* https://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 smoketest.data.mongo;
|
||||
|
||||
import org.springframework.data.mongodb.core.mapping.Document;
|
||||
|
||||
@Document(collection = "exampleDocuments")
|
||||
public class ExampleDocument {
|
||||
|
||||
private String id;
|
||||
|
||||
private String text;
|
||||
|
||||
public String getId() {
|
||||
return this.id;
|
||||
}
|
||||
|
||||
public void setId(String id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public String getText() {
|
||||
return this.text;
|
||||
}
|
||||
|
||||
public void setText(String text) {
|
||||
this.text = text;
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,24 @@
|
||||
/*
|
||||
* Copyright 2012-2023 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
|
||||
*
|
||||
* https://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 smoketest.data.mongo;
|
||||
|
||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
|
||||
@SpringBootApplication
|
||||
public class ExampleMongoApplication {
|
||||
|
||||
}
|
@ -0,0 +1,23 @@
|
||||
/*
|
||||
* Copyright 2012-2023 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
|
||||
*
|
||||
* https://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 smoketest.data.mongo;
|
||||
|
||||
import org.springframework.data.mongodb.repository.ReactiveMongoRepository;
|
||||
|
||||
interface ExampleReactiveRepository extends ReactiveMongoRepository<ExampleDocument, String> {
|
||||
|
||||
}
|
@ -0,0 +1,23 @@
|
||||
/*
|
||||
* Copyright 2012-2023 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
|
||||
*
|
||||
* https://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 smoketest.data.mongo;
|
||||
|
||||
import org.springframework.data.mongodb.repository.MongoRepository;
|
||||
|
||||
interface ExampleRepository extends MongoRepository<ExampleDocument, String> {
|
||||
|
||||
}
|
@ -0,0 +1,35 @@
|
||||
/*
|
||||
* Copyright 2012-2023 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
|
||||
*
|
||||
* https://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 smoketest.data.mongo;
|
||||
|
||||
import org.springframework.data.mongodb.core.MongoTemplate;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@Service
|
||||
public class ExampleService {
|
||||
|
||||
private final MongoTemplate mongoTemplate;
|
||||
|
||||
public ExampleService(MongoTemplate mongoTemplate) {
|
||||
this.mongoTemplate = mongoTemplate;
|
||||
}
|
||||
|
||||
public boolean hasCollection(String collectionName) {
|
||||
return this.mongoTemplate.collectionExists(collectionName);
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,64 @@
|
||||
/*
|
||||
* Copyright 2012-2023 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
|
||||
*
|
||||
* https://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 smoketest.data.mongo;
|
||||
|
||||
import java.time.Duration;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.testcontainers.containers.MongoDBContainer;
|
||||
import org.testcontainers.junit.jupiter.Container;
|
||||
import org.testcontainers.junit.jupiter.Testcontainers;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.test.context.SpringBootTest;
|
||||
import org.springframework.boot.testcontainers.service.connection.ServiceConnection;
|
||||
import org.springframework.data.mongodb.core.ReactiveMongoTemplate;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
/**
|
||||
* Smoke tests for MongoDB using reactive repositories with SSL.
|
||||
*
|
||||
* @author Scott Frederick
|
||||
*/
|
||||
@Testcontainers(disabledWithoutDocker = true)
|
||||
@SpringBootTest(properties = { "spring.data.mongodb.ssl.bundle=client",
|
||||
"spring.ssl.bundle.pem.client.keystore.certificate=classpath:ssl/test-client.crt",
|
||||
"spring.ssl.bundle.pem.client.keystore.private-key=classpath:ssl/test-client.key",
|
||||
"spring.ssl.bundle.pem.client.truststore.certificate=classpath:ssl/test-ca.crt" })
|
||||
class DataMongoTestReactiveSslIntegrationTests {
|
||||
|
||||
@Container
|
||||
@ServiceConnection
|
||||
static final MongoDBContainer mongoDB = new SecureMongoContainer();
|
||||
|
||||
@Autowired
|
||||
private ReactiveMongoTemplate mongoTemplate;
|
||||
|
||||
@Autowired
|
||||
private ExampleReactiveRepository exampleRepository;
|
||||
|
||||
@Test
|
||||
void testRepository() {
|
||||
ExampleDocument exampleDocument = new ExampleDocument();
|
||||
exampleDocument.setText("Look, new @DataMongoTest!");
|
||||
exampleDocument = this.exampleRepository.save(exampleDocument).block(Duration.ofSeconds(30));
|
||||
assertThat(exampleDocument.getId()).isNotNull();
|
||||
assertThat(this.mongoTemplate.collectionExists("exampleDocuments").block(Duration.ofSeconds(30))).isTrue();
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,65 @@
|
||||
/*
|
||||
* Copyright 2012-2023 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
|
||||
*
|
||||
* https://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 smoketest.data.mongo;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.testcontainers.containers.MongoDBContainer;
|
||||
import org.testcontainers.junit.jupiter.Container;
|
||||
import org.testcontainers.junit.jupiter.Testcontainers;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.autoconfigure.ImportAutoConfiguration;
|
||||
import org.springframework.boot.autoconfigure.ssl.SslAutoConfiguration;
|
||||
import org.springframework.boot.test.context.SpringBootTest;
|
||||
import org.springframework.boot.testcontainers.service.connection.ServiceConnection;
|
||||
import org.springframework.data.mongodb.core.MongoTemplate;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
/**
|
||||
* Smoke tests for MongoDB with SSL.
|
||||
*
|
||||
* @author Scott Frederick
|
||||
*/
|
||||
@Testcontainers(disabledWithoutDocker = true)
|
||||
@SpringBootTest(properties = { "spring.data.mongodb.ssl.bundle=client",
|
||||
"spring.ssl.bundle.pem.client.keystore.certificate=classpath:ssl/test-client.crt",
|
||||
"spring.ssl.bundle.pem.client.keystore.private-key=classpath:ssl/test-client.key",
|
||||
"spring.ssl.bundle.pem.client.truststore.certificate=classpath:ssl/test-ca.crt" })
|
||||
@ImportAutoConfiguration(SslAutoConfiguration.class)
|
||||
class DataMongoTestSslIntegrationTests {
|
||||
|
||||
@Container
|
||||
@ServiceConnection
|
||||
static final MongoDBContainer mongoDB = new SecureMongoContainer();
|
||||
|
||||
@Autowired
|
||||
private MongoTemplate mongoTemplate;
|
||||
|
||||
@Autowired
|
||||
private ExampleRepository exampleRepository;
|
||||
|
||||
@Test
|
||||
void testRepository() {
|
||||
ExampleDocument exampleDocument = new ExampleDocument();
|
||||
exampleDocument.setText("Look, new @DataMongoTest!");
|
||||
exampleDocument = this.exampleRepository.save(exampleDocument);
|
||||
assertThat(exampleDocument.getId()).isNotNull();
|
||||
assertThat(this.mongoTemplate.collectionExists("exampleDocuments")).isTrue();
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,51 @@
|
||||
/*
|
||||
* Copyright 2012-2023 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
|
||||
*
|
||||
* https://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 smoketest.data.mongo;
|
||||
|
||||
import java.time.Duration;
|
||||
|
||||
import com.github.dockerjava.api.command.InspectContainerResponse;
|
||||
import org.testcontainers.containers.MongoDBContainer;
|
||||
import org.testcontainers.utility.MountableFile;
|
||||
|
||||
import org.springframework.boot.testsupport.testcontainers.DockerImageNames;
|
||||
|
||||
/**
|
||||
* A {@link MongoDBContainer} for MongoDB with SSL configuration.
|
||||
*
|
||||
* @author Scott Frederick
|
||||
*/
|
||||
class SecureMongoContainer extends MongoDBContainer {
|
||||
|
||||
SecureMongoContainer() {
|
||||
super(DockerImageNames.mongo());
|
||||
withStartupAttempts(5);
|
||||
withStartupTimeout(Duration.ofMinutes(5));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void configure() {
|
||||
withCopyFileToContainer(MountableFile.forClasspathResource("/ssl/test-server.pem"), "/ssl/server.pem");
|
||||
withCopyFileToContainer(MountableFile.forClasspathResource("/ssl/test-ca.crt"), "/ssl/ca.crt");
|
||||
withCommand("mongod --tlsMode requireTLS --tlsCertificateKeyFile /ssl/server.pem --tlsCAFile /ssl/ca.crt");
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void containerIsStarted(InspectContainerResponse containerInfo, boolean reused) {
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,32 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
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
|
||||
/Ytm09/9WUCrCX0dvH08KiRgamTaDEVUgQk=
|
||||
-----END CERTIFICATE-----
|
@ -0,0 +1,51 @@
|
||||
-----BEGIN RSA PRIVATE KEY-----
|
||||
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
|
||||
-----END RSA PRIVATE KEY-----
|
@ -0,0 +1,24 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIEGjCCAgKgAwIBAgIUfNbd10WD9F5RGiWEGJ4MMEgYtWQwDQYJKoZIhvcNAQEL
|
||||
BQAwOzEZMBcGA1UECgwQU3ByaW5nIEJvb3QgVGVzdDEeMBwGA1UEAwwVQ2VydGlm
|
||||
aWNhdGUgQXV0aG9yaXR5MB4XDTIzMDUwMjE5MTY0M1oXDTI0MDUwMTE5MTY0M1ow
|
||||
LzEZMBcGA1UECgwQU3ByaW5nIEJvb3QgVGVzdDESMBAGA1UEAwwJbG9jYWxob3N0
|
||||
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwKlofgVj8ayX20VxeXwv
|
||||
u0Ac41e6HzfPy8XzBjo67uMFCpXZNhnDIt5VZGilsqAiHfN/VzuQfDkGkwdw28RT
|
||||
wmcfJflgaNNjGIHvOBcVpsRMmMrqnYWIqJ4yTdaKdWeGEH8imotTarrXJufliAyN
|
||||
PyZQpOSv0i0huAXl41qN9196o7MqbhQlBLAzf8Jhc9JCbplyVAfxCjIb2zyjr7h5
|
||||
SbppJitbJTK8T5kD98ZHop6AJWNd6ow4iBULH0ByMEWVa6/nYlxmxNjPwAXf55lu
|
||||
z+DFFsAOz0eMR7xxF7U5ueWrfsvHvAA0BMrixQqiOZq1Z1CYVlc4LwQJDtFdhy1G
|
||||
UwIDAQABoyIwIDALBgNVHQ8EBAMCBaAwEQYJYIZIAYb4QgEBBAQDAgeAMA0GCSqG
|
||||
SIb3DQEBCwUAA4ICAQCU5rbionr7KK7wqzBoaZFwkBoNucQCrLX2V+BwU1sYrQFG
|
||||
uwqgl6pX3dZ95wOJ93Pz8hMXl7cUMVzu92al91gR6RJeEEAfzE1nvv+3u8I/iT2w
|
||||
jcmS5j/pZEYJsfcwhtwVQN72g4QYrNCfq2heGY4ovdaMwtlUQiSEgvYxF/cchrDx
|
||||
ylWOENfUtRFEQ00r13mvVbyTi+JOqEv80kqxBfZGlRflkrB7moyBruyz5Skr8TTx
|
||||
MIcxnpC7fwLxNwfk8iJiW9v5Aj/bd0ulmzwrPEn+ONo9mdKNRqi15wwqky8vpLNT
|
||||
I+P5t4cpZUCDCJFPPXhQKMNdSwZQpv4hMJqp5/qORfA5A3Wl9EzTtmwmra43pZ39
|
||||
4PMl0AHt5sq0pFfVPZ0eaySBFZfgxEuvzw6tSsadisHfCkToNVFVV08hKtqtezXE
|
||||
C3152LiHlnUl/1VkZlWqRx6zyY1myshWy/OU9LeNAB6Hw7QTPGFPNKQ3NpxKvprx
|
||||
D/lD/kvZe8UJHcV50Q6pu4/KF4tLhP+poCBDGNlj078vwZa3IEXJpn2yYkpxmJGj
|
||||
WspnXbGSxIiS4ioVFh+BvHjDW0S/Ci8wMiVoid7sbR9J79JnNnujzLzjpW1wkTx/
|
||||
XBUukd8Ncc7FTfXIpf2l+XJiRU/1+zRkfU8gT/T5h7kDVU5YqanbluJgEokQ4g==
|
||||
-----END CERTIFICATE-----
|
@ -0,0 +1,27 @@
|
||||
-----BEGIN RSA PRIVATE KEY-----
|
||||
MIIEpQIBAAKCAQEAwKlofgVj8ayX20VxeXwvu0Ac41e6HzfPy8XzBjo67uMFCpXZ
|
||||
NhnDIt5VZGilsqAiHfN/VzuQfDkGkwdw28RTwmcfJflgaNNjGIHvOBcVpsRMmMrq
|
||||
nYWIqJ4yTdaKdWeGEH8imotTarrXJufliAyNPyZQpOSv0i0huAXl41qN9196o7Mq
|
||||
bhQlBLAzf8Jhc9JCbplyVAfxCjIb2zyjr7h5SbppJitbJTK8T5kD98ZHop6AJWNd
|
||||
6ow4iBULH0ByMEWVa6/nYlxmxNjPwAXf55luz+DFFsAOz0eMR7xxF7U5ueWrfsvH
|
||||
vAA0BMrixQqiOZq1Z1CYVlc4LwQJDtFdhy1GUwIDAQABAoIBAQC4O8euat0t58u3
|
||||
ZOqkL3s9Zou5YtSasbZFuF8zH0/nzLOvcagqsewGVfH2eJOrArJdTdIByvXZtHZy
|
||||
9vSXU2B9UDtbBuOImkvyzZ3CV2De/mv42GIOi/kotU6JXJU+u+ZZtBmVC5KTR2Qi
|
||||
0jKOLOKM9si7RexT4dCStyEkjh2f5MTQh79xOncmxG9YPWR3RzXfMNzfkYaMtdxZ
|
||||
Bsf2iKnO6zJmsPlqlyZi1/9csNI1XLNhcWyVpR67i3WTfH3Q7kNQ0a15OfB15Lox
|
||||
jmayuEW+AqHjbMYJR7d5ExdxMFWquXwYm5kZl4H13ws4hBGaCpQ5xRLhTHiK98SV
|
||||
7/GJ/y9hAoGBAPZB3X8b4maYqK6Cfuvr+IkYIzBZEODPfhpleeeKt5XoitGkcbKS
|
||||
Xx8og2h3fwcs7OO/VOowffH1SVoTFJhdFRGBa9y0kBXTuPQ59knQMmT3EeI2L5lx
|
||||
AtJHZ5LHUtfYXM0gFLZOWhkxFZyoNu4IDtbIuDop0/xDlAPMBUd8Yiz7AoGBAMhI
|
||||
t+xVCatl0Fk4luToETmJSHtx3c1NMI7NPPFO3vtzEthb4JACQH0P0s97igL095DS
|
||||
TX+FArbCEsnhOwytD5LgseZHYljmYm7ENLmeAPi2ttGIU/alhrolJoC4SdhSdfXd
|
||||
qqKG4f/P44KnB6OAkmeCycJ7G8n6YxLCM+bQG1yJAoGBAIwCZLmZE/66+uTFIv5l
|
||||
mlfv1kntya/XqN2/JjEj6D8eCJcrBM2/dL+VXCkwD5P30fOm29OOoHzJtdu1j3cV
|
||||
LR5X1AiWzHjseHK65bGP4qcO5icUIbn+y9jcaiHEm/BGfnTNsZj5MTazdpMr/JcX
|
||||
E8DAPCYtk+4QSf5ip/m92V+zAoGBAKEe7ucumfLKm0vLXIiVsJWqvSahuZ9ZQ4D9
|
||||
1tMBchyyvCxV7VesmBiDzEGhzqsGSsq0hCfb5w0DH35MtOZDqs2r+TGZp6KA5Brb
|
||||
uNbCJ2HuCzCRDYrUKohBLrJKjw15eO/r/UN2YwUaRppqqJh97EldS9Yql3Zq+Zyz
|
||||
onFCZWCRAoGAYP3BaT2pgtEIHsRCzv7XKpC37aIw/Wqc/XKkw50OT3+Atgbryp5s
|
||||
JgIaD6mop/BZG5PPvRJeH75X2BOOhWENeR3q+I8dW9sCq68sy8gDVHlmCCUctsz0
|
||||
7FNihJKloin0e11hzYVZYbOjD+96lyF03y2t3kzf6oOnSMmOXhXKWxI=
|
||||
-----END RSA PRIVATE KEY-----
|
@ -0,0 +1,51 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIEGjCCAgKgAwIBAgIUfNbd10WD9F5RGiWEGJ4MMEgYtWMwDQYJKoZIhvcNAQEL
|
||||
BQAwOzEZMBcGA1UECgwQU3ByaW5nIEJvb3QgVGVzdDEeMBwGA1UEAwwVQ2VydGlm
|
||||
aWNhdGUgQXV0aG9yaXR5MB4XDTIzMDUwMjE5MTY0M1oXDTI0MDUwMTE5MTY0M1ow
|
||||
LzEZMBcGA1UECgwQU3ByaW5nIEJvb3QgVGVzdDESMBAGA1UEAwwJbG9jYWxob3N0
|
||||
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA+Tc0YVQluRdSzPDnfkcF
|
||||
IZ/Gl58wFJz//4S0hPsQ/yGmV2DxDGR6nMEPOvPSRAxufnejossQxHT/td48A9rq
|
||||
WT7ijTOWdzjAHDe9UKMWlsdBeOQgHfr6X+gINxiPDKGgA+Ih94ku0pxluO8vyIy8
|
||||
vhDchIAveQNa/U7olja9IGp2Lmy+Kk566pAguT/V5I6V1/jX4VBhi+YFUKLs3fAh
|
||||
0d0QNiVdypLe+s1cXBocanBg6iMQWQN9vL8ZM5dDP/w2Fl2FYCOwjicLUb+Dxeoc
|
||||
h8SYn/BBrQRePn5A483w49B5pgRUyOFwgr0bchw1B6P2bGdPzwYfpUw1sJGVocSB
|
||||
cwIDAQABoyIwIDALBgNVHQ8EBAMCBaAwEQYJYIZIAYb4QgEBBAQDAgZAMA0GCSqG
|
||||
SIb3DQEBCwUAA4ICAQCHWmclf0/GHHNdhb9cw2CaeXWxy7u8U5MYdTq7MdRIK+Nn
|
||||
xO9I9TWVIt+un3C0Bs2IKkg1l72wnoLL1Gy5EsK0hO3p+UD2/FRgVI2HBlda/TKW
|
||||
7ZlFd1i7u67Cf++7mHnaSQYokkTrEMZacj6PSoNv2pmkSzb5VYT9q3hVtVhtliOq
|
||||
U30hkUy9FU3VJNpGAOUkasIRB/KAG6TTJ+/L3N0jcTfAlXPwuJcj2XsMoAibAfEE
|
||||
HXTHmW+6cK358Mb8HDx9wdT5yPfly5KTVbqYhwX6XeL2an/BVdwoUY0dqyWgaoDr
|
||||
dxBaYew0O2rDy748OWnYR4ARTO+I8XfT+aEjMqQownpG6WDaubmN2o9MVweYx7CT
|
||||
qWkxmx8Nb+w1i9PIY73uJTjx6CBDHMgbPovMttvxsVg+VDaTNGFGDey0q5R6U6rA
|
||||
VwxEkeZwwV1ZZGlw9cGhxYxKQnrC/BGcV/w/4+g9fYFW5+M2hyy7YpHAuiw9kwmV
|
||||
uYp/Njd8AtXRw3LLPpxsdJkyOJrnczF+MAaaswYQFFHhbi3n7tlchCq1T1Tj+Xae
|
||||
WdyHAkQSy/smlezB2I6gFVU6pFQNmasO4ZhAItbSzvjxk5GlfzdBbhgXsxSA52oa
|
||||
xpLEY1NPLSbHun50WSOzhJ+rpbgRKoPGixMzVteDoZHGVQyM/an8pgW4opLWhA==
|
||||
-----END CERTIFICATE-----
|
||||
-----BEGIN RSA PRIVATE KEY-----
|
||||
MIIEpQIBAAKCAQEA+Tc0YVQluRdSzPDnfkcFIZ/Gl58wFJz//4S0hPsQ/yGmV2Dx
|
||||
DGR6nMEPOvPSRAxufnejossQxHT/td48A9rqWT7ijTOWdzjAHDe9UKMWlsdBeOQg
|
||||
Hfr6X+gINxiPDKGgA+Ih94ku0pxluO8vyIy8vhDchIAveQNa/U7olja9IGp2Lmy+
|
||||
Kk566pAguT/V5I6V1/jX4VBhi+YFUKLs3fAh0d0QNiVdypLe+s1cXBocanBg6iMQ
|
||||
WQN9vL8ZM5dDP/w2Fl2FYCOwjicLUb+Dxeoch8SYn/BBrQRePn5A483w49B5pgRU
|
||||
yOFwgr0bchw1B6P2bGdPzwYfpUw1sJGVocSBcwIDAQABAoIBAQCkUi4Lbrxgymwi
|
||||
DUXWEWXkwcDkAGZncQ2qoQmWFSUj1EAlpRnLHgVqjjFIobOmgrvoT2Jp2JL5tltU
|
||||
w2+26wVSSxB+IeG4QocJFAeTv7UJPeCBoYk7u1yTGB8ylNLddURYyyWyXZWt8Mlx
|
||||
ouRSy9k3SU7dXtfuZrP8Cad6RCV31O102IgT53kSaCVdIcJ9Owos8Vvk3iu+bedL
|
||||
EmW3Z6V7qg5ASDVLHaaMFjpiQsLvV7ljg+HP7y4sKxEovKqc6G7lF4CnMMlN0zwm
|
||||
4QRE6tHzNV93QoUAgPBxel7GaAVZTO9AJ2zZxkKzqr5InqTL/IDCAvru08jIuuTW
|
||||
DyhyHCrBAoGBAP717gmCSEbvrnRlQi71AAZHx6FkNXmxbL8yfLyX5vwDwuHleo5i
|
||||
JCxWKW+kcP1WcU997wpV5jGUUjjNeyoUA7HVBHgU9fumAyaMyb5LJmM+6nVdTlWI
|
||||
1UvGHTQHsAJ/XC0KxQjYJfA+uLmSHkJzEAUm8zptkgTQ9N325/7qyyjpAoGBAPo7
|
||||
R4iHm/aLwi5YvEYjljHdbIWTlNjxwhvQCI//0CadaEyJ7bi1yTwTfamy9jmJC1zO
|
||||
xpUSoVNLaymZthYIz1UKpATvsvnx2lN4ROzCBvWO238PJo284GpxfYJMVHWx9Dya
|
||||
u9e/C3nbJhd+VKWeyJ3j0qczucbR8x5HHFC6yR37AoGBAMD72a9s49R9u2jy9EOi
|
||||
wt/+GQb6WNfCCnQ2fOArgnUjS7G9ByUa+BJvLXIJ4FSBx8bJpdQG7PR+NjY0opNZ
|
||||
DureOEHEa+SM5jmZu2LEc0wP5VvswkxQBFMUpCor33gketrFGhr1sNHGSAB+r1TQ
|
||||
z0F3GAgTw8DNgWs5ZqU3h4txAoGBAKHPcXtlDcKJL4Ee2miUnIwUPhfGjksXUkj/
|
||||
5nmPl39Q7GAKFRILY1yY0frJghVEfHeAMsO1L2MYcuyMvEVVXxUD83pJsjeUYHT3
|
||||
YcKj2TIzNdbc6jZfe9L5HosCZt9Qurnx6SQjIv2ia+hnRb9vhRUsfEyo0yoxG4Bp
|
||||
xXKixmi/AoGAJ+fLUO/ThUGPAkx7N6wTvlV44gu+UN4V1/b4NTVez3G6l4xLnbBC
|
||||
tiSHWpSY2FJaCEBQNCjw7xoVG/XI1AZiQOhb/RC/MFGaB1+Gl4gH/kzAwxKILyLT
|
||||
qCrP9vW4wwPulRgLkJUDH4xtzuu2C9/1JWe5h+Bk5YgCwIjz5qVwPC0=
|
||||
-----END RSA PRIVATE KEY-----
|
Loading…
Reference in New Issue