This is an automated email from the ASF dual-hosted git repository. ahuber pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/isis.git
The following commit(s) were added to refs/heads/master by this push: new a7367e0 ISIS-2223: more mitigations a7367e0 is described below commit a7367e0d443a6d01d9c948f58dd0285b16e9bd23 Author: Andi Huber <ahu...@apache.org> AuthorDate: Fri Feb 14 17:46:03 2020 +0100 ISIS-2223: more mitigations --- .../viewer/restfulobjects/applib/RestfulRequest.java | 16 ++++++++-------- .../actionmenu/serviceactions/CssMenuItem.java | 4 ++-- .../actionmenu/serviceactions/ServiceActionUtil.java | 9 +++------ .../actionmenu/serviceactions/ServiceAndAction.java | 8 +++++--- .../apache/isis/viewer/wicket/ui/pages/PageAbstract.java | 2 +- 5 files changed, 19 insertions(+), 20 deletions(-) diff --git a/viewers/restfulobjects/applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/RestfulRequest.java b/viewers/restfulobjects/applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/RestfulRequest.java index e4a3187..b9b34f7 100644 --- a/viewers/restfulobjects/applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/RestfulRequest.java +++ b/viewers/restfulobjects/applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/RestfulRequest.java @@ -57,12 +57,12 @@ public final class RestfulRequest { public static class RequestParameter<Q> { - public static RequestParameter<List<List<String>>> FOLLOW_LINKS = new RequestParameter<List<List<String>>>("x-ro-follow-links", Parser.forListOfListOfStrings(), Collections.<List<String>> emptyList()); - public static RequestParameter<Integer> PAGE = new RequestParameter<Integer>("x-ro-page", Parser.forInteger(), 1); - public static RequestParameter<Integer> PAGE_SIZE = new RequestParameter<Integer>("x-ro-page-size", Parser.forInteger(), 25); - public static RequestParameter<List<String>> SORT_BY = new RequestParameter<List<String>>("x-ro-sort-by", Parser.forListOfStrings(), Collections.<String> emptyList()); - public static RequestParameter<DomainModel> DOMAIN_MODEL = new RequestParameter<DomainModel>("x-ro-domain-model", DomainModel.parser(), DomainModel.FORMAL); - public static RequestParameter<Boolean> VALIDATE_ONLY = new RequestParameter<Boolean>("x-ro-validate-only", Parser.forBoolean(), false); + public static final RequestParameter<List<List<String>>> FOLLOW_LINKS = new RequestParameter<List<List<String>>>("x-ro-follow-links", Parser.forListOfListOfStrings(), Collections.<List<String>> emptyList()); + public static final RequestParameter<Integer> PAGE = new RequestParameter<Integer>("x-ro-page", Parser.forInteger(), 1); + public static final RequestParameter<Integer> PAGE_SIZE = new RequestParameter<Integer>("x-ro-page-size", Parser.forInteger(), 25); + public static final RequestParameter<List<String>> SORT_BY = new RequestParameter<List<String>>("x-ro-sort-by", Parser.forListOfStrings(), Collections.<String> emptyList()); + public static final RequestParameter<DomainModel> DOMAIN_MODEL = new RequestParameter<DomainModel>("x-ro-domain-model", DomainModel.parser(), DomainModel.FORMAL); + public static final RequestParameter<Boolean> VALIDATE_ONLY = new RequestParameter<Boolean>("x-ro-validate-only", Parser.forBoolean(), false); private final String name; private final Parser<Q> parser; @@ -104,8 +104,8 @@ public final class RestfulRequest { } public static class Header<X> { - public static Header<String> IF_MATCH = new Header<String>("If-Match", Parser.forString()); - public static Header<List<MediaType>> ACCEPT = new Header<List<MediaType>>("Accept", Parser.forListOfJaxRsMediaTypes()); + public static final Header<String> IF_MATCH = new Header<String>("If-Match", Parser.forString()); + public static final Header<List<MediaType>> ACCEPT = new Header<List<MediaType>>("Accept", Parser.forListOfJaxRsMediaTypes()); private final String name; private final Parser<X> parser; diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/CssMenuItem.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/CssMenuItem.java index e3880f6..ca1b982 100644 --- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/CssMenuItem.java +++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/CssMenuItem.java @@ -348,7 +348,7 @@ class CssMenuItem implements Serializable { final EntityModel targetEntityModel = serviceAndAction.serviceEntityModel; final ObjectAction objectAction = serviceAndAction.objectAction; - final boolean separator = serviceAndAction.separator; + final boolean requiresSeparator = serviceAndAction.isFirstSection; final ServiceActionLinkFactory actionLinkFactory = serviceAndAction.linkAndLabelFactory; val serviceAdapter = targetEntityModel.load(); @@ -396,7 +396,7 @@ class CssMenuItem implements Serializable { ObjectAction.Util.isNoParameters(objectAction)) .returnsBlobOrClob(ObjectAction.Util.returnsBlobOrClob(objectAction)) .prototyping(objectAction.isPrototype()) - .requiresSeparator(separator) + .requiresSeparator(requiresSeparator) .withActionIdentifier(ObjectAction.Util.actionIdentifierFor(objectAction)) .withCssClass(ObjectAction.Util.cssClassFor(objectAction, serviceAdapter)) .withCssClassFa(ObjectAction.Util.cssClassFaFor(objectAction)) diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/ServiceActionUtil.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/ServiceActionUtil.java index c78a6c0..de13ad8 100644 --- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/ServiceActionUtil.java +++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/ServiceActionUtil.java @@ -212,7 +212,7 @@ public final class ServiceActionUtil { for (final MenuSection menuSection : menu.getSections()) { - boolean firstSection = true; + boolean isFirstSection = true; for (final ServiceActionLayoutData actionLayoutData : menuSection.getServiceActions()) { val serviceSpecId = actionLayoutData.getObjectType(); @@ -230,12 +230,9 @@ public final class ServiceActionUtil { continue; } final ServiceAndAction serviceAndAction = - new ServiceAndAction(actionLayoutData.getNamed(), entityModel, objectAction); + new ServiceAndAction(actionLayoutData.getNamed(), entityModel, objectAction, isFirstSection); - if(firstSection) { - serviceAndAction.separator = true; - firstSection = false; - } + isFirstSection = false; final CssMenuItem.Builder subMenuItemBuilder = serviceMenu.newSubMenuItem(serviceAndAction); if (subMenuItemBuilder == null) { diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/ServiceAndAction.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/ServiceAndAction.java index 56940c5..d10eab8 100644 --- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/ServiceAndAction.java +++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/ServiceAndAction.java @@ -26,17 +26,19 @@ class ServiceAndAction { final EntityModel serviceEntityModel; final ObjectAction objectAction; final ServiceActionLinkFactory linkAndLabelFactory; - - public boolean separator; + final boolean isFirstSection; ServiceAndAction( final String serviceName, final EntityModel serviceEntityModel, - final ObjectAction objectAction) { + final ObjectAction objectAction, + final boolean isFirstSection) { + this.serviceName = serviceName; this.serviceEntityModel = serviceEntityModel; this.objectAction = objectAction; this.linkAndLabelFactory = new ServiceActionLinkFactory(serviceEntityModel); + this.isFirstSection = isFirstSection; } @Override diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.java index e87b6b3..735ebaa 100644 --- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.java +++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.java @@ -122,7 +122,7 @@ public abstract class PageAbstract extends WebPageBase implements ActionPromptPr * This is a bit hacky, but best way I've found to pass an exception over to the WicketSignInPage * if there is a problem rendering this page. */ - public static ThreadLocal<ExceptionModel> EXCEPTION = new ThreadLocal<>(); + public static final ThreadLocal<ExceptionModel> EXCEPTION = new ThreadLocal<>(); private final List<ComponentType> childComponentIds;