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:48 UTC

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

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;
                         }
                     } ));