You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by sm...@apache.org on 2022/04/08 16:41:47 UTC

[directory-fortress-commander] branch wicket9 created (now 13a8fed)

This is an automated email from the ASF dual-hosted git repository.

smckinney pushed a change to branch wicket9
in repository https://gitbox.apache.org/repos/asf/directory-fortress-commander.git


      at 13a8fed  FC-310 - Wicket 9 Upgrade

This branch includes the following new commits:

     new 13a8fed  FC-310 - Wicket 9 Upgrade

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



[directory-fortress-commander] 01/01: FC-310 - Wicket 9 Upgrade

Posted by sm...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

smckinney pushed a commit to branch wicket9
in repository https://gitbox.apache.org/repos/asf/directory-fortress-commander.git

commit 13a8fed7fdb42d784595ee0af927661a8a47a2d6
Author: Shawn McKinney <sm...@symas.com>
AuthorDate: Fri Apr 8 11:41:41 2022 -0500

    FC-310 - Wicket 9 Upgrade
---
 README.md                                          | 12 +----------
 pom.xml                                            |  6 +++---
 .../directory/fortress/web/ApplicationContext.java | 23 ++++++----------------
 .../fortress/web/HomePageApplication.java          | 11 ++++++++++-
 .../fortress/web/panel/AuditModDetailPanel.java    |  8 ++++----
 .../fortress/web/panel/GroupDetailPanel.java       |  8 ++++----
 6 files changed, 28 insertions(+), 40 deletions(-)

diff --git a/README.md b/README.md
index 640dd5c..ae5ef6b 100644
--- a/README.md
+++ b/README.md
@@ -78,7 +78,7 @@ ________________________________________________________________________________
 ## SECTION 1. Prerequisites
 
 Minimum software requirements:
- * Java SDK 8++
+ * Java SDK 11++
  * git
  * Apache Maven3++
  * Apache Tomcat8++
@@ -107,19 +107,9 @@ Everything else covered in the steps that follow.  Tested on Debian & Centos sys
 
 2. Build the source.
 
-a. Java 8 target
-
  ```
  mvn clean install
  ```
-
--- OR --
-
-b. Java 11 target
-
- ```
- mvn clean install -Djava.version=11
- ```
 ___________________________________________________________________________________
 ## SECTION 3. Configure the Apache Fortress Web deployment
 
diff --git a/pom.xml b/pom.xml
index 29cd181..3f43a11 100644
--- a/pom.xml
+++ b/pom.xml
@@ -78,10 +78,10 @@
 
   <properties>
     <title>${project.name} ${project.version}</title>
-    <java.version>1.8</java.version>
+    <java.version>11</java.version>
     <fortress.realm.version>2.0.7</fortress.realm.version>
-    <wicket.version>8.14.0</wicket.version>
-    <wicket.googlecode.version>8.13.0</wicket.googlecode.version>
+    <wicket.version>9.9.0</wicket.version>
+    <wicket.googlecode.version>9.8.0</wicket.googlecode.version>
     <version.ant>1.10.12</version.ant>
     <spring.security.version>5.6.2</spring.security.version>
     <javadoc.version>2.9.1</javadoc.version>
diff --git a/src/main/java/org/apache/directory/fortress/web/ApplicationContext.java b/src/main/java/org/apache/directory/fortress/web/ApplicationContext.java
index 1746c11..8b57bd2 100644
--- a/src/main/java/org/apache/directory/fortress/web/ApplicationContext.java
+++ b/src/main/java/org/apache/directory/fortress/web/ApplicationContext.java
@@ -19,18 +19,13 @@
  */
 package org.apache.directory.fortress.web;
 
-
 import org.apache.directory.fortress.web.control.WicketSession;
 import org.apache.wicket.Page;
 import org.apache.wicket.Session;
-import org.apache.wicket.core.request.handler.PageProvider;
-import org.apache.wicket.core.request.handler.RenderPageRequestHandler;
 import org.apache.wicket.protocol.http.WebApplication;
-import org.apache.wicket.request.IRequestHandler;
 import org.apache.wicket.request.Request;
 import org.apache.wicket.request.Response;
-import org.apache.wicket.request.cycle.AbstractRequestCycleListener;
-import org.apache.wicket.request.cycle.RequestCycle;
+import org.apache.wicket.settings.ExceptionSettings;
 import org.apache.wicket.spring.injection.annot.SpringComponentInjector;
 
 /**
@@ -50,16 +45,10 @@ public class ApplicationContext extends WebApplication
     {
         super.init();
         getComponentInstantiationListeners().add( new SpringComponentInjector( this ) );
-
-        // Catch runtime exceptions this way:
-        getRequestCycleListeners().add( new AbstractRequestCycleListener()
-        {
-            @Override
-            public IRequestHandler onException( RequestCycle cycle, Exception e )
-            {
-                return new RenderPageRequestHandler( new PageProvider( new ErrorPage( e ) ) );
-            }
-        } );
+        // Route runtime exceptions to fortress error page:
+        getApplicationSettings().setInternalErrorPage( ErrorPage.class );
+        // show internal error page rather than default developer page
+        getExceptionSettings().setUnexpectedExceptionDisplay(ExceptionSettings.SHOW_INTERNAL_ERROR_PAGE);
         getMarkupSettings().setStripWicketTags( true );
     }
 
@@ -67,4 +56,4 @@ public class ApplicationContext extends WebApplication
     {
         return LaunchPage.class;
     }
-}
\ No newline at end of file
+}
diff --git a/src/main/java/org/apache/directory/fortress/web/HomePageApplication.java b/src/main/java/org/apache/directory/fortress/web/HomePageApplication.java
index 7bd698e..0cbf936 100644
--- a/src/main/java/org/apache/directory/fortress/web/HomePageApplication.java
+++ b/src/main/java/org/apache/directory/fortress/web/HomePageApplication.java
@@ -20,6 +20,8 @@
 package org.apache.directory.fortress.web;
 
 import org.apache.wicket.Page;
+import org.apache.wicket.csp.CSPDirective;
+import org.apache.wicket.csp.CSPDirectiveSrcValue;
 
 /**
  * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
@@ -40,7 +42,14 @@ public class HomePageApplication extends ApplicationContext
 	public void init()
 	{
 		super.init();
-        //mountPage("index.html", LoginPage.class);
+		// TODO: refine content security policy:
+		getCspSettings().blocking().clear()
+			.add(CSPDirective.STYLE_SRC, CSPDirectiveSrcValue.SELF)
+			.add(CSPDirective.STYLE_SRC, CSPDirectiveSrcValue.UNSAFE_INLINE)
+			.add(CSPDirective.SCRIPT_SRC, CSPDirectiveSrcValue.SELF)
+			.add(CSPDirective.SCRIPT_SRC, CSPDirectiveSrcValue.UNSAFE_EVAL)
+			.add(CSPDirective.SCRIPT_SRC, CSPDirectiveSrcValue.UNSAFE_INLINE);
+
         mountPage("index.html", LaunchPage.class);
         mountPage("home.html", LaunchPage.class);
 	}
diff --git a/src/main/java/org/apache/directory/fortress/web/panel/AuditModDetailPanel.java b/src/main/java/org/apache/directory/fortress/web/panel/AuditModDetailPanel.java
index 2b3a188..71a4563 100644
--- a/src/main/java/org/apache/directory/fortress/web/panel/AuditModDetailPanel.java
+++ b/src/main/java/org/apache/directory/fortress/web/panel/AuditModDetailPanel.java
@@ -27,6 +27,7 @@ import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.lang.StringUtils;
 import org.apache.directory.fortress.core.*;
 import org.apache.directory.fortress.core.util.Config;
+import org.apache.wicket.model.AbstractPropertyModel;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.apache.wicket.AttributeModifier;
@@ -40,7 +41,6 @@ import org.apache.wicket.markup.repeater.Item;
 import org.apache.wicket.markup.repeater.data.DataView;
 import org.apache.wicket.markup.repeater.data.IDataProvider;
 import org.apache.wicket.markup.repeater.data.ListDataProvider;
-import org.apache.wicket.model.AbstractReadOnlyModel;
 import org.apache.wicket.model.CompoundPropertyModel;
 import org.apache.wicket.model.IModel;
 import org.apache.wicket.model.PropertyModel;
@@ -140,14 +140,14 @@ public class AuditModDetailPanel extends FormComponentPanel
                     item.add( new Label( "type", mod.getType() ) );
                     item.add( new Label( "name", mod.getName() ) );
                     item.add( new Label( "value", mod.getValue() ) );
-                    item.add( AttributeModifier.replace( "class", new AbstractReadOnlyModel<String>()
+                    item.add( AttributeModifier.replace( "class", new AbstractPropertyModel<String>(this)
                     {
                         private static final long serialVersionUID = 1L;
 
                         @Override
-                        public String getObject()
+                        protected String propertyExpression()
                         {
-                            return ( item.getIndex() % 2 == 1 ) ? "even" : "odd";
+                            return null;
                         }
                     } ));
                 }
diff --git a/src/main/java/org/apache/directory/fortress/web/panel/GroupDetailPanel.java b/src/main/java/org/apache/directory/fortress/web/panel/GroupDetailPanel.java
index 1dd8e9f..0fb5976 100644
--- a/src/main/java/org/apache/directory/fortress/web/panel/GroupDetailPanel.java
+++ b/src/main/java/org/apache/directory/fortress/web/panel/GroupDetailPanel.java
@@ -30,6 +30,7 @@ import org.apache.directory.fortress.core.*;
 import org.apache.directory.fortress.core.SecurityException;
 import org.apache.directory.fortress.core.util.Config;
 import org.apache.directory.fortress.core.util.PropUtil;
+import org.apache.wicket.model.AbstractPropertyModel;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.apache.wicket.AttributeModifier;
@@ -50,7 +51,6 @@ import org.apache.wicket.markup.repeater.Item;
 import org.apache.wicket.markup.repeater.data.DataView;
 import org.apache.wicket.markup.repeater.data.IDataProvider;
 import org.apache.wicket.markup.repeater.data.ListDataProvider;
-import org.apache.wicket.model.AbstractReadOnlyModel;
 import org.apache.wicket.model.CompoundPropertyModel;
 import org.apache.wicket.model.IModel;
 import org.apache.wicket.model.PropertyModel;
@@ -153,14 +153,14 @@ public class GroupDetailPanel extends FormComponentPanel
                     Member member = item.getModelObject();
                     item.add( new Label( "index", member.getIndex() ) );
                     item.add( new Label( "userDn", member.getUserDn() ) );
-                    item.add( AttributeModifier.replace( "class", new AbstractReadOnlyModel<String>()
+                    item.add( AttributeModifier.replace( "class", new AbstractPropertyModel<String>(this)
                     {
                         private static final long serialVersionUID = 1L;
 
                         @Override
-                        public String getObject()
+                        protected String propertyExpression()
                         {
-                            return ( item.getIndex() % 2 == 1 ) ? "even" : "odd";
+                            return null;
                         }
                     } ));