Skip to content

Commit 53ce34a

Browse files
authored
Create own Jackson module for Spring Boot Admin Server (codecentric#1404)
* Fix code style issue * Create own Jackson module for Spring Boot Admin Server preparation for codecentric#1348
1 parent 31537a4 commit 53ce34a

File tree

4 files changed

+47
-14
lines changed

4 files changed

+47
-14
lines changed

spring-boot-admin-server-ui/src/main/java/de/codecentric/boot/admin/server/ui/web/servlet/HomepageForwardingFilter.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@
4343
* history mode</a>
4444
*/
4545
public class HomepageForwardingFilter implements Filter {
46+
4647
private static final Logger log = LoggerFactory.getLogger(HomepageForwardingFilter.class);
4748

4849
private final String homepage;
@@ -79,4 +80,5 @@ public void init(FilterConfig filterConfig) {
7980
@Override
8081
public void destroy() {
8182
}
83+
8284
}

spring-boot-admin-server/src/main/java/de/codecentric/boot/admin/server/config/AdminServerWebConfiguration.java

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -26,13 +26,10 @@
2626
import org.springframework.web.accept.ContentNegotiationManager;
2727
import org.springframework.web.reactive.accept.RequestedContentTypeResolver;
2828

29-
import de.codecentric.boot.admin.server.domain.values.Registration;
3029
import de.codecentric.boot.admin.server.eventstore.InstanceEventStore;
3130
import de.codecentric.boot.admin.server.services.ApplicationRegistry;
3231
import de.codecentric.boot.admin.server.services.InstanceRegistry;
33-
import de.codecentric.boot.admin.server.utils.jackson.RegistrationBeanSerializerModifier;
34-
import de.codecentric.boot.admin.server.utils.jackson.RegistrationDeserializer;
35-
import de.codecentric.boot.admin.server.utils.jackson.SanitizingMapSerializer;
32+
import de.codecentric.boot.admin.server.utils.jackson.AdminServerModule;
3633
import de.codecentric.boot.admin.server.web.ApplicationsController;
3734
import de.codecentric.boot.admin.server.web.InstancesController;
3835
import de.codecentric.boot.admin.server.web.client.InstanceWebClient;
@@ -48,11 +45,7 @@ public AdminServerWebConfiguration(AdminServerProperties adminServerProperties)
4845

4946
@Bean
5047
public SimpleModule adminJacksonModule() {
51-
SimpleModule module = new SimpleModule();
52-
module.addDeserializer(Registration.class, new RegistrationDeserializer());
53-
module.setSerializerModifier(new RegistrationBeanSerializerModifier(
54-
new SanitizingMapSerializer(this.adminServerProperties.getMetadataKeysToSanitize())));
55-
return module;
48+
return new AdminServerModule(this.adminServerProperties.getMetadataKeysToSanitize());
5649
}
5750

5851
@Bean
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
/*
2+
* Copyright 2014-2020 the original author or authors.
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License");
5+
* you may not use this file except in compliance with the License.
6+
* You may obtain a copy of the License at
7+
*
8+
* http://www.apache.org/licenses/LICENSE-2.0
9+
*
10+
* Unless required by applicable law or agreed to in writing, software
11+
* distributed under the License is distributed on an "AS IS" BASIS,
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
* See the License for the specific language governing permissions and
14+
* limitations under the License.
15+
*/
16+
17+
package de.codecentric.boot.admin.server.utils.jackson;
18+
19+
import com.fasterxml.jackson.databind.module.SimpleModule;
20+
21+
import de.codecentric.boot.admin.server.domain.values.Registration;
22+
23+
/**
24+
* Jackson module for Spring Boot Admin Server.
25+
*
26+
* @author Stefan Rempfer
27+
*/
28+
public class AdminServerModule extends SimpleModule {
29+
30+
/**
31+
* Construct the module with a pattern for registration metadata keys. The values of
32+
* the matched metadata keys will be sanitized before serializing to json.
33+
* @param metadataKeyPatterns pattern for metadata keys which should be sanitized
34+
*/
35+
public AdminServerModule(String[] metadataKeyPatterns) {
36+
super(AdminServerModule.class.getName());
37+
38+
addDeserializer(Registration.class, new RegistrationDeserializer());
39+
setSerializerModifier(new RegistrationBeanSerializerModifier(new SanitizingMapSerializer(metadataKeyPatterns)));
40+
}
41+
42+
}

spring-boot-admin-server/src/test/java/de/codecentric/boot/admin/server/utils/jackson/RegistrationDeserializerTest.java

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818

1919
import com.fasterxml.jackson.core.JsonProcessingException;
2020
import com.fasterxml.jackson.databind.ObjectMapper;
21-
import com.fasterxml.jackson.databind.module.SimpleModule;
2221
import org.json.JSONObject;
2322
import org.junit.Test;
2423
import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder;
@@ -33,10 +32,7 @@ public class RegistrationDeserializerTest {
3332
private final ObjectMapper objectMapper;
3433

3534
public RegistrationDeserializerTest() {
36-
SimpleModule module = new SimpleModule();
37-
module.addDeserializer(Registration.class, new RegistrationDeserializer());
38-
module.setSerializerModifier(
39-
new RegistrationBeanSerializerModifier(new SanitizingMapSerializer(new String[] { ".*password$" })));
35+
AdminServerModule module = new AdminServerModule(new String[] { ".*password$" });
4036
objectMapper = Jackson2ObjectMapperBuilder.json().modules(module).build();
4137
}
4238

0 commit comments

Comments
 (0)