ensure cxf BeanValidationProvider handles validation properly and doesnt mix returned entity and methods
Project: http://git-wip-us.apache.org/repos/asf/tomee/repo Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/a20c7a34 Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/a20c7a34 Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/a20c7a34 Branch: refs/heads/master Commit: a20c7a346321c83a1ab74c6aca7fc048a198f75c Parents: 76cd27f Author: Romain Manni-Bucau <rmannibu...@apache.org> Authored: Wed May 16 23:14:34 2018 +0200 Committer: Romain Manni-Bucau <rmannibu...@apache.org> Committed: Wed May 16 23:14:34 2018 +0200 ---------------------------------------------------------------------- .../org/apache/openejb/server/cxf/rs/CxfRsHttpListener.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/tomee/blob/a20c7a34/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/CxfRsHttpListener.java ---------------------------------------------------------------------- diff --git a/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/CxfRsHttpListener.java b/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/CxfRsHttpListener.java index e10172f..e155b9d 100644 --- a/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/CxfRsHttpListener.java +++ b/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/CxfRsHttpListener.java @@ -886,7 +886,7 @@ public class CxfRsHttpListener implements RsHttpListener { SystemInstance.get().getProperty("openejb.cxf.rs.bval.active", serviceConfiguration.getProperties().getProperty(CXF_JAXRS_PREFIX + "bval.active", "true"))); if (factory.getFeatures() == null && bvalActive) { - factory.setFeatures(new ArrayList<Feature>()); + factory.setFeatures(new ArrayList<>()); } else if (bvalActive) { // check we should activate it and user didn't configure it for (final Feature f : factory.getFeatures()) { if (BeanValidationFeature.class.isInstance(f)) { @@ -908,7 +908,7 @@ public class CxfRsHttpListener implements RsHttpListener { } } if (bvalActive) { // bval doesn't need the actual instance so faking it to avoid to lookup the bean - final BeanValidationProvider provider = new BeanValidationProvider(); + final BeanValidationProvider provider = new BeanValidationProvider(); // todo: close the factory final BeanValidationInInterceptor in = new JAXRSBeanValidationInInterceptor() { @Override @@ -926,6 +926,7 @@ public class CxfRsHttpListener implements RsHttpListener { return CxfRsHttpListener.this.getServiceObject(message); } }; + out.setEnforceOnlyBeanConstraints(true); out.setProvider(provider); out.setServiceObject(FAKE_SERVICE_OBJECT); factory.getOutInterceptors().add(out);