You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2014/10/09 15:12:40 UTC
git commit: ISIS-920: new
"isis.viewer.wicket.clearOriginalDestination" flag.
Repository: isis
Updated Branches:
refs/heads/master 08d2a053c -> 6d3332f52
ISIS-920: new "isis.viewer.wicket.clearOriginalDestination" flag.
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/6d3332f5
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/6d3332f5
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/6d3332f5
Branch: refs/heads/master
Commit: 6d3332f522723c725bcde54558da5bb16aa20cd5
Parents: 08d2a05
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Thu Oct 9 14:05:50 2014 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Thu Oct 9 14:05:50 2014 +0100
----------------------------------------------------------------------
.../wicket/ui/pages/login/IsisSignInPanel.java | 52 ++++++++++++++++++++
.../wicket/ui/pages/login/WicketSignInPage.java | 20 ++++----
.../webapp/WEB-INF/viewer_wicket.properties | 8 +++
.../webapp/WEB-INF/viewer_wicket.properties | 8 +++
4 files changed, 78 insertions(+), 10 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/6d3332f5/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/login/IsisSignInPanel.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/login/IsisSignInPanel.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/login/IsisSignInPanel.java
new file mode 100644
index 0000000..172e7f3
--- /dev/null
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/login/IsisSignInPanel.java
@@ -0,0 +1,52 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.isis.viewer.wicket.ui.pages.login;
+
+import org.apache.wicket.authroles.authentication.panel.SignInPanel;
+
+public class IsisSignInPanel extends SignInPanel {
+
+ private final boolean clearOriginalDestination;
+
+ public IsisSignInPanel(
+ final String id,
+ final boolean rememberMe,
+ final boolean continueToOriginalDestination) {
+ super(id, rememberMe);
+ this.clearOriginalDestination = !continueToOriginalDestination;
+ }
+
+ @Override
+ protected void onSignInSucceeded() {
+
+ if(clearOriginalDestination) {
+ clearOriginalDestination();
+ }
+ super.onSignInSucceeded();
+ }
+
+ @Override
+ protected void onSignInRemembered() {
+ if(clearOriginalDestination) {
+ clearOriginalDestination();
+ }
+ super.onSignInRemembered();
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/isis/blob/6d3332f5/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/login/WicketSignInPage.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/login/WicketSignInPage.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/login/WicketSignInPage.java
index e71714a..ce67826 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/login/WicketSignInPage.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/login/WicketSignInPage.java
@@ -21,20 +21,14 @@ package org.apache.isis.viewer.wicket.ui.pages.login;
import com.google.inject.Inject;
import com.google.inject.name.Named;
-
import org.apache.wicket.Application;
import org.apache.wicket.MarkupContainer;
import org.apache.wicket.authroles.authentication.panel.SignInPanel;
-import org.apache.wicket.markup.head.CssReferenceHeaderItem;
-import org.apache.wicket.markup.head.IHeaderResponse;
-import org.apache.wicket.markup.head.JavaScriptHeaderItem;
-import org.apache.wicket.markup.head.JavaScriptReferenceHeaderItem;
-import org.apache.wicket.markup.head.PriorityHeaderItem;
+import org.apache.wicket.markup.head.*;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.WebPage;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.request.mapper.parameter.PageParameters;
-
import org.apache.isis.core.commons.config.IsisConfiguration;
import org.apache.isis.core.runtime.system.context.IsisContext;
import org.apache.isis.viewer.wicket.ui.errors.ExceptionModel;
@@ -113,12 +107,17 @@ public class WicketSignInPage extends WebPage {
protected SignInPanel addSignInPanel() {
final boolean suppressRememberMe = getConfiguration().getBoolean("isis.viewer.wicket.suppressRememberMe", false);
+ final boolean clearOriginalDestination = getConfiguration().getBoolean("isis.viewer.wicket.clearOriginalDestination", false);
final boolean rememberMe = !suppressRememberMe;
- return addSignInPanel(rememberMe);
+ final boolean continueToOriginalDestination = !clearOriginalDestination;
+ return addSignInPanel(rememberMe, continueToOriginalDestination);
}
- private SignInPanel addSignInPanel(boolean rememberMe) {
- final SignInPanel signInPanel = new SignInPanel("signInPanel", rememberMe);
+
+ private SignInPanel addSignInPanel(
+ final boolean rememberMe,
+ final boolean continueToOriginalDestination) {
+ final SignInPanel signInPanel = new IsisSignInPanel("signInPanel", rememberMe, continueToOriginalDestination);
add(signInPanel);
return signInPanel;
}
@@ -136,6 +135,7 @@ public class WicketSignInPage extends WebPage {
}
}
+
// ///////////////////////////////////////////////////
// System components
http://git-wip-us.apache.org/repos/asf/isis/blob/6d3332f5/example/application/simpleapp/webapp/src/main/webapp/WEB-INF/viewer_wicket.properties
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/webapp/src/main/webapp/WEB-INF/viewer_wicket.properties b/example/application/simpleapp/webapp/src/main/webapp/WEB-INF/viewer_wicket.properties
index d27bd91..30bf255 100644
--- a/example/application/simpleapp/webapp/src/main/webapp/WEB-INF/viewer_wicket.properties
+++ b/example/application/simpleapp/webapp/src/main/webapp/WEB-INF/viewer_wicket.properties
@@ -42,6 +42,14 @@ isis.viewer.wicket.datePickerPattern=dd-mm-yy
#isis.viewer.wicket.suppressRememberMe=true
+
+#
+# if user attempts to access a protected URL before signing in, then as a convenience the viewer will continue
+# through to that destination after successful login. If you consider this to be a security risk then this flag
+# disables that behaviour.
+#
+#isis.viewer.wicket.clearOriginalDestination=true
+
#isis.viewer.wicket.disableModalDialogs=true
http://git-wip-us.apache.org/repos/asf/isis/blob/6d3332f5/example/application/todoapp/webapp/src/main/webapp/WEB-INF/viewer_wicket.properties
----------------------------------------------------------------------
diff --git a/example/application/todoapp/webapp/src/main/webapp/WEB-INF/viewer_wicket.properties b/example/application/todoapp/webapp/src/main/webapp/WEB-INF/viewer_wicket.properties
index 236dcff..19a7380 100644
--- a/example/application/todoapp/webapp/src/main/webapp/WEB-INF/viewer_wicket.properties
+++ b/example/application/todoapp/webapp/src/main/webapp/WEB-INF/viewer_wicket.properties
@@ -47,6 +47,14 @@ isis.viewer.wicket.datePickerPattern=dd-mm-yy
# isis.viewer.wicket.stripWicketTags=false
#isis.viewer.wicket.suppressRememberMe=true
+
+#
+# if user attempts to access a protected URL before signing in, then as a convenience the viewer will continue
+# through to that destination after successful login. If you consider this to be a security risk then this flag
+# disables that behaviour.
+#
+#isis.viewer.wicket.clearOriginalDestination=true
+
#isis.viewer.wicket.disableModalDialogs=true
#isis.viewer.wicket.bookmarkedPages.maxSize=15