diff --git a/web/src/main/java/org/jboss/metadata/merge/web/jboss/JBossWebMetaDataMerger.java b/web/src/main/java/org/jboss/metadata/merge/web/jboss/JBossWebMetaDataMerger.java index 107a6aa21..067ce4029 100644 --- a/web/src/main/java/org/jboss/metadata/merge/web/jboss/JBossWebMetaDataMerger.java +++ b/web/src/main/java/org/jboss/metadata/merge/web/jboss/JBossWebMetaDataMerger.java @@ -37,6 +37,7 @@ import org.jboss.metadata.web.spec.ServletsMetaData; import org.jboss.metadata.web.spec.Web25MetaData; import org.jboss.metadata.web.spec.Web30MetaData; +import org.jboss.metadata.web.spec.Web31MetaData; import org.jboss.metadata.web.spec.WebMetaData; /** @@ -270,5 +271,13 @@ else if (original != null && original.getVersion() != null) if (override != null && override.isSymbolicLinkingEnabled()) dest.setSymbolicLinkingEnabled(override.isSymbolicLinkingEnabled()); + + if(override != null && override.getDenyUncoveredHttpMethods() != null) { + dest.setDenyUncoveredHttpMethods(override.getDenyUncoveredHttpMethods()); + } else if(original != null && original instanceof Web31MetaData) { + if(((Web31MetaData) original).getDenyUncoveredHttpMethods() != null) { + dest.setDenyUncoveredHttpMethods(((Web31MetaData) original).getDenyUncoveredHttpMethods()); + } + } } } diff --git a/web/src/main/java/org/jboss/metadata/parser/jbossweb/Element.java b/web/src/main/java/org/jboss/metadata/parser/jbossweb/Element.java index cc8ce23e3..1c259bb1b 100644 --- a/web/src/main/java/org/jboss/metadata/parser/jbossweb/Element.java +++ b/web/src/main/java/org/jboss/metadata/parser/jbossweb/Element.java @@ -47,6 +47,7 @@ public enum Element { CONTEXT_ROOT("context-root"), DEPENDS("depends"), + DENY_UNCOVERED_HTTP_METHODS("deny-uncovered-http-methods"), DISABLE_AUDIT("disable-audit"), DISABLE_CROSS_CONTEXT("disable-cross-context"), DISTINCT_NAME("distinct-name"), diff --git a/web/src/main/java/org/jboss/metadata/parser/jbossweb/JBossWebMetaDataParser.java b/web/src/main/java/org/jboss/metadata/parser/jbossweb/JBossWebMetaDataParser.java index eb7ac8080..363f59ab5 100644 --- a/web/src/main/java/org/jboss/metadata/parser/jbossweb/JBossWebMetaDataParser.java +++ b/web/src/main/java/org/jboss/metadata/parser/jbossweb/JBossWebMetaDataParser.java @@ -242,6 +242,9 @@ public static JBossWebMetaData parse(XMLStreamReader reader, PropertyReplacer pr case SERVER_INSTANCE: wmd.setServerInstanceName(getElementText(reader, propertyReplacer)); break; + case DENY_UNCOVERED_HTTP_METHODS: + wmd.setDenyUncoveredHttpMethods(Boolean.parseBoolean(getElementText(reader, propertyReplacer))); + break; default: throw unexpectedElement(reader); } diff --git a/web/src/main/java/org/jboss/metadata/parser/servlet/Element.java b/web/src/main/java/org/jboss/metadata/parser/servlet/Element.java index 0d27cd645..73174f471 100644 --- a/web/src/main/java/org/jboss/metadata/parser/servlet/Element.java +++ b/web/src/main/java/org/jboss/metadata/parser/servlet/Element.java @@ -50,6 +50,7 @@ public enum Element { DEFAULT_CONTENT_TYPE("default-content-type"), DEFERRED_SYNTAX_ALLOWED_AS_LITERAL("deferred-syntax-allowed-as-literal"), + DENY_UNCOVERED_HTTP_METHODS("deny-uncovered-http-methods"), DISPATCHER("dispatcher"), DISPLAY_NAME("display-name"), DISTRIBUTABLE("distributable"), diff --git a/web/src/main/java/org/jboss/metadata/parser/servlet/WebMetaDataParser.java b/web/src/main/java/org/jboss/metadata/parser/servlet/WebMetaDataParser.java index 07c4827eb..2218bc513 100644 --- a/web/src/main/java/org/jboss/metadata/parser/servlet/WebMetaDataParser.java +++ b/web/src/main/java/org/jboss/metadata/parser/servlet/WebMetaDataParser.java @@ -229,6 +229,13 @@ public static WebMetaData parse(XMLStreamReader reader, DTDInfo info, boolean va throw unexpectedElement(reader); } break; + case DENY_UNCOVERED_HTTP_METHODS: + if (wmd instanceof Web31MetaData) { + ((Web31MetaData) wmd).setDenyUncoveredHttpMethods(Boolean.parseBoolean(getElementText(reader, propertyReplacer))); + } else { + throw unexpectedElement(reader); + } + break; default: throw unexpectedElement(reader); } diff --git a/web/src/main/java/org/jboss/metadata/web/jboss/JBossWebMetaData.java b/web/src/main/java/org/jboss/metadata/web/jboss/JBossWebMetaData.java index 9d069f59a..6034376a3 100644 --- a/web/src/main/java/org/jboss/metadata/web/jboss/JBossWebMetaData.java +++ b/web/src/main/java/org/jboss/metadata/web/jboss/JBossWebMetaData.java @@ -202,6 +202,9 @@ public class JBossWebMetaData extends NamedModuleImpl { */ private int sessionCookies = SESSION_COOKIES_DEFAULT; + + private Boolean denyUncoveredHttpMethods; + public static final int SESSION_COOKIES_DEFAULT = 0; public static final int SESSION_COOKIES_ENABLED = 1; public static final int SESSION_COOKIES_DISABLED = 2; @@ -1007,4 +1010,12 @@ public boolean isSymbolicLinkingEnabled() { public void setSymbolicLinkingEnabled(boolean symbolicLinkingEnabled) { this.symbolicLinkingEnabled = symbolicLinkingEnabled; } + + public Boolean getDenyUncoveredHttpMethods() { + return denyUncoveredHttpMethods; + } + + public void setDenyUncoveredHttpMethods(final Boolean denyUncoveredHttpMethods) { + this.denyUncoveredHttpMethods = denyUncoveredHttpMethods; + } } diff --git a/web/src/main/java/org/jboss/metadata/web/spec/Web31MetaData.java b/web/src/main/java/org/jboss/metadata/web/spec/Web31MetaData.java index 623c95fa6..841ede76d 100644 --- a/web/src/main/java/org/jboss/metadata/web/spec/Web31MetaData.java +++ b/web/src/main/java/org/jboss/metadata/web/spec/Web31MetaData.java @@ -32,4 +32,13 @@ public class Web31MetaData extends Web30MetaData { private static final long serialVersionUID = 1; + private Boolean denyUncoveredHttpMethods; + + public Boolean getDenyUncoveredHttpMethods() { + return denyUncoveredHttpMethods; + } + + public void setDenyUncoveredHttpMethods(final Boolean denyUncoveredHttpMethods) { + this.denyUncoveredHttpMethods = denyUncoveredHttpMethods; + } } diff --git a/web/src/main/resources/schema/jboss-web_8_0.xsd b/web/src/main/resources/schema/jboss-web_8_0.xsd index 95f0d9c73..2f8cc7a14 100644 --- a/web/src/main/resources/schema/jboss-web_8_0.xsd +++ b/web/src/main/resources/schema/jboss-web_8_0.xsd @@ -97,6 +97,7 @@ +