public static FilterProvider getFilterProvider(final String... fieldsToExclude) { if (null == fieldsToExclude || fieldsToExclude.length == 0) { // Use the 'serializeAllExcept' method so it is compatible with older versions of jackson return new SimpleFilterProvider() .addFilter(FILTER_FIELDS_BY_NAME, (BeanPropertyFilter) SimpleBeanPropertyFilter.serializeAllExcept()); } return new SimpleFilterProvider() .addFilter(FILTER_FIELDS_BY_NAME, (BeanPropertyFilter) SimpleBeanPropertyFilter.serializeAllExcept(fieldsToExclude)); }
private void bindAmazonInfoFilter(ObjectMapper mapper) { SimpleFilterProvider filters = new SimpleFilterProvider(); final String filterName = "exclude-amazon-info-entries"; mapper.setAnnotationIntrospector(new JacksonAnnotationIntrospector() { @Override public Object findFilterId(Annotated a) { if (Map.class.isAssignableFrom(a.getRawType())) { return filterName; } return super.findFilterId(a); } }); filters.addFilter(filterName, new SimpleBeanPropertyFilter() { @Override protected boolean include(BeanPropertyWriter writer) { return true; } @Override protected boolean include(PropertyWriter writer) { return MINI_AMAZON_INFO_INCLUDE_KEYS.contains(writer.getName()); } }); mapper.setFilters(filters); }
@Test public void renderSimpleBeanWithFilters() throws Exception { TestSimpleBeanFiltered bean = new TestSimpleBeanFiltered(); bean.setProperty1("value"); bean.setProperty2("value"); Map<String, Object> model = new HashMap<>(); model.put("bindingResult", mock(BindingResult.class, "binding_result")); model.put("foo", bean); FilterProvider filters = new SimpleFilterProvider().addFilter("myJacksonFilter", SimpleBeanPropertyFilter.serializeAllExcept("property2")); model.put(FilterProvider.class.getName(), filters); view.setUpdateContentLength(true); view.render(model, request, response); String content = response.getContentAsString(); assertTrue(content.length() > 0); assertEquals(content.length(), response.getContentLength()); assertThat(content, containsString("\"property1\":\"value\"")); assertThat(content, not(containsString("\"property2\":\"value\""))); assertFalse(content.contains(FilterProvider.class.getName())); }
private ObjectMapper createMapper(JsonFactory mapping, ClassLoader classLoader) { ObjectMapper mapper = new ObjectMapper(mapping); mapper.addMixIn(MasterSlaveServersConfig.class, MasterSlaveServersConfigMixIn.class); mapper.addMixIn(SingleServerConfig.class, SingleSeverConfigMixIn.class); mapper.addMixIn(Config.class, ConfigMixIn.class); mapper.addMixIn(ReferenceCodecProvider.class, ClassMixIn.class); mapper.addMixIn(AddressResolverGroupFactory.class, ClassMixIn.class); mapper.addMixIn(Codec.class, ClassMixIn.class); mapper.addMixIn(RedissonNodeInitializer.class, ClassMixIn.class); mapper.addMixIn(LoadBalancer.class, ClassMixIn.class); FilterProvider filterProvider = new SimpleFilterProvider() .addFilter("classFilter", SimpleBeanPropertyFilter.filterOutAllExcept()); mapper.setFilterProvider(filterProvider); mapper.setSerializationInclusion(Include.NON_NULL); if (classLoader != null) { TypeFactory tf = TypeFactory.defaultInstance() .withClassLoader(classLoader); mapper.setTypeFactory(tf); } return mapper; }
private ObjectMapper createMapper(JsonFactory mapping, ClassLoader classLoader) { ObjectMapper mapper = new ObjectMapper(mapping); mapper.addMixIn(MasterSlaveServersConfig.class, MasterSlaveServersConfigMixIn.class); mapper.addMixIn(SingleServerConfig.class, SingleSeverConfigMixIn.class); mapper.addMixIn(Config.class, ConfigMixIn.class); mapper.addMixIn(ReferenceCodecProvider.class, ClassMixIn.class); mapper.addMixIn(AddressResolverGroupFactory.class, ClassMixIn.class); mapper.addMixIn(Codec.class, ClassMixIn.class); mapper.addMixIn(RedissonNodeInitializer.class, ClassMixIn.class); mapper.addMixIn(LoadBalancer.class, ClassMixIn.class); FilterProvider filterProvider = new SimpleFilterProvider() .addFilter("classFilter", SimpleBeanPropertyFilter.filterOutAllExcept()); mapper.setFilterProvider(filterProvider); mapper.setSerializationInclusion(Include.NON_NULL); if (classLoader != null) { TypeFactory tf = TypeFactory.defaultInstance() .withClassLoader(classLoader); mapper.setTypeFactory(tf); } return mapper; }
@Test public void filters() throws Exception { MockHttpOutputMessage outputMessage = new MockHttpOutputMessage(); JacksonFilteredBean bean = new JacksonFilteredBean(); bean.setProperty1("value"); bean.setProperty2("value"); MappingJacksonValue jacksonValue = new MappingJacksonValue(bean); FilterProvider filters = new SimpleFilterProvider().addFilter("myJacksonFilter", SimpleBeanPropertyFilter.serializeAllExcept("property2")); jacksonValue.setFilters(filters); this.converter.writeInternal(jacksonValue, null, outputMessage); String result = outputMessage.getBodyAsString(StandardCharsets.UTF_8); assertThat(result, containsString("\"property1\":\"value\"")); assertThat(result, not(containsString("\"property2\":\"value\""))); }
private Optional<SimpleFilterProvider> buildOptionalHeadersFilteringFilterProvider(MessageProperties properties) { return properties.getOptionalHeadersProperties() .map(this::buildHeadersPropertyFilter) .map(propertyFilter -> new SimpleFilterProvider() .addFilter(HEADERS_FILTER, propertyFilter)); }
SimpleFilterProvider filterProvider = new SimpleFilterProvider(); filterProvider.addFilter("academicPersonalInfoFilter", SimpleBeanPropertyFilter.serializeAllExcept("motherName", "fatherName")); ObjectMapper mapper = new ObjectMapper(); mapper.setFilters(filterProvider); mapper.writeValueAsString(academicInfo);
public static FilterProvider getFilterProvider() { if (_filterProvider == null) { SimpleFilterProvider _provider = new SimpleFilterProvider(); _provider.addFilter(PropertyBeanFilterName, new BeanPropertyFilter()); _filterProvider = _provider; } return _filterProvider; }
/** * Build the FilterProvider for the given filters * * @param filters * The filters to be user * @return The configured FilterProvider */ public SimpleFilterProvider buildFilterProvider(final String... filters) { return new SimpleFilterProvider().addFilter("antPathFilter", new AntPathPropertyFilter(filters)); }
public static FilterProvider getFilterProvider(final String... fieldsToExclude) { if (null == fieldsToExclude || fieldsToExclude.length == 0) { // Use the 'serializeAllExcept' method so it is compatible with older versions of jackson return new SimpleFilterProvider() .addFilter(FILTER_FIELDS_BY_NAME, (BeanPropertyFilter) SimpleBeanPropertyFilter.serializeAllExcept()); } return new SimpleFilterProvider() .addFilter(FILTER_FIELDS_BY_NAME, (BeanPropertyFilter) SimpleBeanPropertyFilter.serializeAllExcept(fieldsToExclude)); }
/** * Configure ObjectMapper to filter out fields causing serialization problems */ public SyndEntryJsonTransformer() { mapper = new ObjectMapper(); mapper.addMixInAnnotations(SyndEntry.class,this.getClass()); FilterProvider filterProvider = new SimpleFilterProvider() .addFilter("foreignMarkup filter", SimpleBeanPropertyFilter.serializeAllExcept("foreignMarkup")); mapper.setFilters(filterProvider); }
protected void log(final String name, final PhysicalPlan plan, final Logger logger) { if (logger.isDebugEnabled()) { PropertyFilter filter = new SimpleBeanPropertyFilter.SerializeExceptFilter(Sets.newHashSet("password")); String planText = plan.unparse(context.getLpPersistence().getMapper() .writer(new SimpleFilterProvider().addFilter("passwordFilter", filter))); logger.debug(name + " : \n" + planText); } }
@GetMapping("/filtering-list") public MappingJacksonValue retrieveListOfSomeBeans() { List<SomeBean> list = Arrays.asList(new SomeBean("value1", "value2", "value3"), new SomeBean("value12", "value22", "value32")); SimpleBeanPropertyFilter filter = SimpleBeanPropertyFilter.filterOutAllExcept("field2", "field3"); FilterProvider filters = new SimpleFilterProvider().addFilter("SomeBeanFilter", filter); MappingJacksonValue mapping = new MappingJacksonValue(list); mapping.setFilters(filters); return mapping; }
@GetMapping("/filtering-list") public MappingJacksonValue retrieveListOfSomeBeans() { List<SomeBean> list = Arrays.asList(new SomeBean("value1", "value2", "value3"), new SomeBean("value12", "value22", "value32")); SimpleBeanPropertyFilter filter = SimpleBeanPropertyFilter.filterOutAllExcept("field2", "field3"); FilterProvider filters = new SimpleFilterProvider().addFilter("SomeBeanFilter", filter); MappingJacksonValue mapping = new MappingJacksonValue(list); mapping.setFilters(filters); return mapping; }
@GetMapping("/filtering") public MappingJacksonValue retrieveSomeBean() { SomeBean someBean = new SomeBean("value1", "value2", "value3"); SimpleBeanPropertyFilter filter = SimpleBeanPropertyFilter.filterOutAllExcept("field1", "field2"); FilterProvider filters = new SimpleFilterProvider().addFilter("SomeBeanFilter", filter); MappingJacksonValue mapping = new MappingJacksonValue(someBean); mapping.setFilters(filters); return mapping; }
@GetMapping("/filtering") public MappingJacksonValue retrieveSomeBean() { SomeBean someBean = new SomeBean("value1", "value2", "value3"); SimpleBeanPropertyFilter filter = SimpleBeanPropertyFilter.filterOutAllExcept("field1", "field2"); FilterProvider filters = new SimpleFilterProvider().addFilter("SomeBeanFilter", filter); MappingJacksonValue mapping = new MappingJacksonValue(someBean); mapping.setFilters(filters); return mapping; }
private String toJson(Object instance) throws JsonProcessingException { ObjectMapper objectMapper = new ObjectMapper(); objectMapper.addMixIn(Object.class, PropertyFilterMixIn.class); objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL); SimpleBeanPropertyFilter theFilter = SimpleBeanPropertyFilter .serializeAllExcept("lastUpdated"); FilterProvider filters = new SimpleFilterProvider() .addFilter("skipLastUpdated", theFilter); objectMapper.enable(SerializationFeature.INDENT_OUTPUT); return objectMapper.writer(filters).writeValueAsString(instance); } }
private ObjectMapper newConfiguredObjectMapper(JmapResponse jmapResponse) { ObjectMapper objectMapper = objectMapperFactory.forWriting(); FilterProvider filterProvider = jmapResponse .getFilterProvider() .orElseGet(SimpleFilterProvider::new) .setDefaultFilter(SimpleBeanPropertyFilter.serializeAll()) .addFilter(PROPERTIES_FILTER, getPropertiesFilter(jmapResponse.getProperties())); objectMapper.setFilterProvider(filterProvider); return objectMapper; }
protected void init() { mapper.addMixInAnnotations(Object.class, PropertyFilterMixIn.class); mapper.setVisibility(PropertyAccessor.FIELD, Visibility.NONE); mapper.setVisibility(PropertyAccessor.GETTER, Visibility.PROTECTED_AND_PUBLIC); mapper.setVisibility(PropertyAccessor.SETTER, Visibility.PROTECTED_AND_PUBLIC); registerModules(mapper); mapper.configure(MapperFeature.REQUIRE_SETTERS_FOR_GETTERS, true); mapper.setPropertyNamingStrategy(getPropertyNamingStrategy()); SimpleFilterProvider provider = new SimpleFilterProvider(); provider.addFilter("property_filter", SimpleBeanPropertyFilter.serializeAllExcept(Sets.<String>newHashSet())); mapper.setFilters(provider); }