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 2011/11/29 09:00:55 UTC

svn commit: r1207775 [4/4] - in /incubator/isis/trunk/framework: core/commons/src/main/java/org/apache/isis/core/commons/matchers/ core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/ignore/javalang/ core/runtime/src/main/java/org...

Modified: incubator/isis/trunk/framework/security/ldap/src/main/java/org/apache/isis/security/ldap/authentication/LdapAuthenticationManagerInstaller.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/security/ldap/src/main/java/org/apache/isis/security/ldap/authentication/LdapAuthenticationManagerInstaller.java?rev=1207775&r1=1207774&r2=1207775&view=diff
==============================================================================
--- incubator/isis/trunk/framework/security/ldap/src/main/java/org/apache/isis/security/ldap/authentication/LdapAuthenticationManagerInstaller.java (original)
+++ incubator/isis/trunk/framework/security/ldap/src/main/java/org/apache/isis/security/ldap/authentication/LdapAuthenticationManagerInstaller.java Tue Nov 29 08:00:38 2011
@@ -19,10 +19,14 @@
 
 package org.apache.isis.security.ldap.authentication;
 
+import java.util.List;
+
 import org.apache.isis.core.commons.config.IsisConfiguration;
 import org.apache.isis.core.runtime.authentication.standard.Authenticator;
 import org.apache.isis.runtimes.dflt.runtime.authentication.AuthenticationManagerStandardInstallerAbstractForDfltRuntime;
 
+import com.google.common.collect.Lists;
+
 public class LdapAuthenticationManagerInstaller extends AuthenticationManagerStandardInstallerAbstractForDfltRuntime {
 
     public static String NAME = "ldap";
@@ -32,7 +36,7 @@ public class LdapAuthenticationManagerIn
     }
 
     @Override
-    protected Authenticator createAuthenticator(final IsisConfiguration configuration) {
-        return new LdapAuthenticator(configuration);
+    protected List<Authenticator> createAuthenticators(final IsisConfiguration configuration) {
+        return Lists.<Authenticator>newArrayList(new LdapAuthenticator(configuration));
     }
 }

Modified: incubator/isis/trunk/framework/security/ldap/src/main/java/org/apache/isis/security/ldap/authentication/LdapAuthenticator.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/security/ldap/src/main/java/org/apache/isis/security/ldap/authentication/LdapAuthenticator.java?rev=1207775&r1=1207774&r2=1207775&view=diff
==============================================================================
--- incubator/isis/trunk/framework/security/ldap/src/main/java/org/apache/isis/security/ldap/authentication/LdapAuthenticator.java (original)
+++ incubator/isis/trunk/framework/security/ldap/src/main/java/org/apache/isis/security/ldap/authentication/LdapAuthenticator.java Tue Nov 29 08:00:38 2011
@@ -54,8 +54,8 @@ public class LdapAuthenticator extends A
     }
 
     @Override
-    public boolean canAuthenticate(final AuthenticationRequest request) {
-        return request instanceof AuthenticationRequestPassword;
+    public final boolean canAuthenticate(final Class<? extends AuthenticationRequest> authenticationRequestClass) {
+        return AuthenticationRequestPassword.class.isAssignableFrom(authenticationRequestClass);
     }
 
     private void setRoles(final DirContext authContext, final AuthenticationRequest request, final String username)

Modified: incubator/isis/trunk/framework/security/sql/src/main/java/org/apache/isis/security/sql/authentication/SqlAuthenticationManagerInstaller.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/security/sql/src/main/java/org/apache/isis/security/sql/authentication/SqlAuthenticationManagerInstaller.java?rev=1207775&r1=1207774&r2=1207775&view=diff
==============================================================================
--- incubator/isis/trunk/framework/security/sql/src/main/java/org/apache/isis/security/sql/authentication/SqlAuthenticationManagerInstaller.java (original)
+++ incubator/isis/trunk/framework/security/sql/src/main/java/org/apache/isis/security/sql/authentication/SqlAuthenticationManagerInstaller.java Tue Nov 29 08:00:38 2011
@@ -20,12 +20,16 @@
 package org.apache.isis.security.sql.authentication;
 
 import java.lang.reflect.InvocationTargetException;
+import java.util.List;
 
 import org.apache.isis.applib.ApplicationException;
 import org.apache.isis.core.commons.config.IsisConfiguration;
+import org.apache.isis.core.commons.factory.InstanceUtil;
 import org.apache.isis.core.runtime.authentication.standard.Authenticator;
 import org.apache.isis.runtimes.dflt.runtime.authentication.AuthenticationManagerStandardInstallerAbstractForDfltRuntime;
 
+import com.google.common.collect.Lists;
+
 public class SqlAuthenticationManagerInstaller extends AuthenticationManagerStandardInstallerAbstractForDfltRuntime {
 
     public static final String NAME = "sql";
@@ -35,30 +39,33 @@ public class SqlAuthenticationManagerIns
     }
 
     @Override
+    protected List<Authenticator> createAuthenticators(final IsisConfiguration configuration) {
+        return Lists.<Authenticator>newArrayList(createAuthenticator(configuration));
+    }
+
     protected Authenticator createAuthenticator(final IsisConfiguration configuration) {
         String className = configuration.getString("isis.authentication.authenticator");
         if (className == null) {
             return new SqlAuthenticator(configuration);
-        } else {
-            try {
-                Class<?> authenticatorClass = Class.forName(className);
-                return (Authenticator) authenticatorClass.getConstructor(IsisConfiguration.class).newInstance(
-                    configuration);
-            } catch (ClassNotFoundException e) {
-                throw new ApplicationException("Unable to find authenticator class", e);
-            } catch (IllegalArgumentException e) {
-                throw new ApplicationException("IllegalArgumentException creating authenticator class", e);
-            } catch (SecurityException e) {
-                throw new ApplicationException("SecurityException creating authenticator class", e);
-            } catch (InstantiationException e) {
-                throw new ApplicationException("InstantiationException creating authenticator class", e);
-            } catch (IllegalAccessException e) {
-                throw new ApplicationException("IllegalAccessException creating authenticator class", e);
-            } catch (InvocationTargetException e) {
-                throw new ApplicationException("InvocationTargetException creating authenticator class", e);
-            } catch (NoSuchMethodException e) {
-                throw new ApplicationException("NoSuchMethodException creating authenticator class", e);
-            }
+        } 
+        try {
+            Class<?> authenticatorClass = Class.forName(className);
+            return (Authenticator) authenticatorClass.getConstructor(IsisConfiguration.class).newInstance(
+                configuration);
+        } catch (ClassNotFoundException e) {
+            throw new ApplicationException("Unable to find authenticator class", e);
+        } catch (IllegalArgumentException e) {
+            throw new ApplicationException("IllegalArgumentException creating authenticator class", e);
+        } catch (SecurityException e) {
+            throw new ApplicationException("SecurityException creating authenticator class", e);
+        } catch (InstantiationException e) {
+            throw new ApplicationException("InstantiationException creating authenticator class", e);
+        } catch (IllegalAccessException e) {
+            throw new ApplicationException("IllegalAccessException creating authenticator class", e);
+        } catch (InvocationTargetException e) {
+            throw new ApplicationException("InvocationTargetException creating authenticator class", e);
+        } catch (NoSuchMethodException e) {
+            throw new ApplicationException("NoSuchMethodException creating authenticator class", e);
         }
     }
 

Modified: incubator/isis/trunk/framework/viewer/bdd/common/src/main/java/org/apache/isis/viewer/bdd/common/components/BddAuthenticationManagerInstaller.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/viewer/bdd/common/src/main/java/org/apache/isis/viewer/bdd/common/components/BddAuthenticationManagerInstaller.java?rev=1207775&r1=1207774&r2=1207775&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/bdd/common/src/main/java/org/apache/isis/viewer/bdd/common/components/BddAuthenticationManagerInstaller.java (original)
+++ incubator/isis/trunk/framework/viewer/bdd/common/src/main/java/org/apache/isis/viewer/bdd/common/components/BddAuthenticationManagerInstaller.java Tue Nov 29 08:00:38 2011
@@ -18,11 +18,15 @@
  */
 package org.apache.isis.viewer.bdd.common.components;
 
+import java.util.List;
+
 import org.apache.isis.core.commons.config.IsisConfiguration;
 import org.apache.isis.core.runtime.authentication.standard.Authenticator;
 import org.apache.isis.runtimes.dflt.runtime.authentication.AuthenticationManagerStandardInstallerAbstractForDfltRuntime;
 import org.apache.isis.security.dflt.authentication.AuthenticatorNoop;
 
+import com.google.common.collect.Lists;
+
 public class BddAuthenticationManagerInstaller extends AuthenticationManagerStandardInstallerAbstractForDfltRuntime {
 
     public BddAuthenticationManagerInstaller() {
@@ -30,7 +34,7 @@ public class BddAuthenticationManagerIns
     }
 
     @Override
-    protected Authenticator createAuthenticator(final IsisConfiguration configuration) {
-        return new AuthenticatorNoop(configuration);
+    protected List<Authenticator> createAuthenticators(final IsisConfiguration configuration) {
+        return Lists.<Authenticator>newArrayList(new AuthenticatorNoop(configuration));
     }
 }
\ No newline at end of file

Modified: incubator/isis/trunk/framework/viewer/html/src/docbkx/guide/isis-html-viewer.xml
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/viewer/html/src/docbkx/guide/isis-html-viewer.xml?rev=1207775&r1=1207774&r2=1207775&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/html/src/docbkx/guide/isis-html-viewer.xml (original)
+++ incubator/isis/trunk/framework/viewer/html/src/docbkx/guide/isis-html-viewer.xml Tue Nov 29 08:00:38 2011
@@ -151,6 +151,8 @@
 
         <para></para>
 
+        <para></para>
+
         <para>By default the htmlviewer uses ".app" as the suffix for its .
         this can be changed using the viewer-html.suffix init-param in
         web.xml:</para>
@@ -161,6 +163,10 @@
 
         <para></para>
 
+        <para></para>
+
+        <para></para>
+
         <programlisting>&lt;web.xml&gt;
     ...
     &lt;context-param&gt;

Modified: incubator/isis/trunk/framework/viewer/html/src/main/java/org/apache/isis/viewer/html/action/view/ObjectView.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/viewer/html/src/main/java/org/apache/isis/viewer/html/action/view/ObjectView.java?rev=1207775&r1=1207774&r2=1207775&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/html/src/main/java/org/apache/isis/viewer/html/action/view/ObjectView.java (original)
+++ incubator/isis/trunk/framework/viewer/html/src/main/java/org/apache/isis/viewer/html/action/view/ObjectView.java Tue Nov 29 08:00:38 2011
@@ -27,7 +27,6 @@ import org.apache.isis.core.metamodel.fa
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.spec.feature.ObjectAssociation;
 import org.apache.isis.core.metamodel.spec.feature.ObjectAssociationFilters;
-import org.apache.isis.runtimes.dflt.runtime.system.context.IsisContext;
 import org.apache.isis.viewer.html.component.Block;
 import org.apache.isis.viewer.html.component.Component;
 import org.apache.isis.viewer.html.component.ComponentFactory;
@@ -36,6 +35,7 @@ import org.apache.isis.viewer.html.conte
 import org.apache.isis.viewer.html.request.Request;
 
 public class ObjectView extends ObjectViewAbstract {
+    
     @Override
     protected boolean addObjectToHistory() {
         return true;
@@ -57,7 +57,7 @@ public class ObjectView extends ObjectVi
         boolean allFieldUneditable = true;
         final List<ObjectAssociation> flds = specification.getAssociations();
         for (int i = 0; i < flds.size(); i++) {
-            if (flds.get(i).isUsable(IsisContext.getAuthenticationSession(), adapter).isAllowed()) {
+            if (flds.get(i).isUsable(getAuthenticationSession(), adapter).isAllowed()) {
                 allFieldUneditable = false;
                 break;
             }
@@ -73,7 +73,7 @@ public class ObjectView extends ObjectVi
         final ObjectSpecification specification = object.getSpecification();
         final List<ObjectAssociation> visibleFields =
             specification.getAssociations(ObjectAssociationFilters.dynamicallyVisible(
-                IsisContext.getAuthenticationSession(), object));
+                getAuthenticationSession(), object));
         for (int i = 0; i < visibleFields.size(); i++) {
             final ObjectAssociation field = visibleFields.get(i);
 
@@ -82,7 +82,7 @@ public class ObjectView extends ObjectVi
             fieldBlock.add(factory.createInlineBlock("label", field.getName(), null));
             fieldBlock.add(factory.createInlineBlock("separator", ":  ", null));
 
-            IsisContext.getPersistenceSession().resolveField(object, field);
+            getPersistenceSession().resolveField(object, field);
 
             // ordering is important here;
             // look at parseable fields before objects

Modified: incubator/isis/trunk/framework/viewer/html/src/main/java/org/apache/isis/viewer/html/action/view/ObjectViewAbstract.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/viewer/html/src/main/java/org/apache/isis/viewer/html/action/view/ObjectViewAbstract.java?rev=1207775&r1=1207774&r2=1207775&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/html/src/main/java/org/apache/isis/viewer/html/action/view/ObjectViewAbstract.java (original)
+++ incubator/isis/trunk/framework/viewer/html/src/main/java/org/apache/isis/viewer/html/action/view/ObjectViewAbstract.java Tue Nov 29 08:00:38 2011
@@ -19,8 +19,10 @@
 
 package org.apache.isis.viewer.html.action.view;
 
+import org.apache.isis.core.commons.authentication.AuthenticationSession;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.runtimes.dflt.runtime.system.context.IsisContext;
+import org.apache.isis.runtimes.dflt.runtime.system.persistence.PersistenceSession;
 import org.apache.isis.viewer.html.action.Action;
 import org.apache.isis.viewer.html.action.ActionException;
 import org.apache.isis.viewer.html.action.view.util.MenuUtil;
@@ -39,7 +41,7 @@ public abstract class ObjectViewAbstract
             throw new ActionException("No such object: " + idString);
         }
 
-        IsisContext.getPersistenceSession().resolveImmediately(adapter);
+        getPersistenceSession().resolveImmediately(adapter);
 
         page.setTitle(adapter.titleString());
 
@@ -76,4 +78,14 @@ public abstract class ObjectViewAbstract
     protected boolean addObjectToHistory() {
         return false;
     }
+    
+    protected AuthenticationSession getAuthenticationSession() {
+        return IsisContext.getAuthenticationSession();
+    }
+
+    protected PersistenceSession getPersistenceSession() {
+        return IsisContext.getPersistenceSession();
+    }
+
+
 }

Modified: incubator/isis/trunk/framework/viewer/html/src/main/java/org/apache/isis/viewer/html/component/html/AbstractHtmlPage.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/viewer/html/src/main/java/org/apache/isis/viewer/html/component/html/AbstractHtmlPage.java?rev=1207775&r1=1207774&r2=1207775&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/html/src/main/java/org/apache/isis/viewer/html/component/html/AbstractHtmlPage.java (original)
+++ incubator/isis/trunk/framework/viewer/html/src/main/java/org/apache/isis/viewer/html/component/html/AbstractHtmlPage.java Tue Nov 29 08:00:38 2011
@@ -88,7 +88,6 @@ public abstract class AbstractHtmlPage i
         int i = 0;
         while (st.hasMoreTokens()) {
             final String style = st.nextToken().trim();
-
             writer.print("  <link rel=\"");
             if (i++ > 0) {
                 writer.print("alternate ");
@@ -97,6 +96,8 @@ public abstract class AbstractHtmlPage i
             writer.print(style);
             writer.println("\" type=\"text/css\" media=\"all\"/>");
         }
+        writer.println("  <script src=\"jquery-1.7.1.js\" type=\"text/javascript\"></script>");
+        writer.println("  <script src=\"htmlviewer.js\" type=\"text/javascript\"></script>");
         writer.println("  </head>");
         writer.println("  <body onLoad=\"window.document.form.fld0.focus()\">");
         writer.println("  <div id=\"wrapper\">");

Modified: incubator/isis/trunk/framework/viewer/html/src/main/java/org/apache/isis/viewer/html/component/html/HtmlComponentFactory.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/viewer/html/src/main/java/org/apache/isis/viewer/html/component/html/HtmlComponentFactory.java?rev=1207775&r1=1207774&r2=1207775&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/html/src/main/java/org/apache/isis/viewer/html/component/html/HtmlComponentFactory.java (original)
+++ incubator/isis/trunk/framework/viewer/html/src/main/java/org/apache/isis/viewer/html/component/html/HtmlComponentFactory.java Tue Nov 29 08:00:38 2011
@@ -162,12 +162,12 @@ public class HtmlComponentFactory implem
         return new DynamicHtmlPage(this, styleSheet, header, footer);
     }
 
-    public LogonFormPage createLogonPage(final String user, final String password) {
-        return new LogonFormPage(this, styleSheet, header, footer, user, password);
+    public LogonFormPage createLogonPage(final String user, final String password, boolean registerLink, String error) {
+        return new LogonFormPage(this, styleSheet, header, footer, user, password, registerLink, error);
     }
 
-    public RegisterFormPage createRegisterPage(final String user, final String password) {
-        return new RegisterFormPage(this, styleSheet, header, footer, user, password);
+    public RegisterFormPage createRegisterPage(final String user, final String password, String error) {
+        return new RegisterFormPage(this, styleSheet, header, footer, user, password, error);
     }
 
     @Override

Modified: incubator/isis/trunk/framework/viewer/html/src/main/java/org/apache/isis/viewer/html/component/html/LogonFormPage.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/viewer/html/src/main/java/org/apache/isis/viewer/html/component/html/LogonFormPage.java?rev=1207775&r1=1207774&r2=1207775&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/html/src/main/java/org/apache/isis/viewer/html/component/html/LogonFormPage.java (original)
+++ incubator/isis/trunk/framework/viewer/html/src/main/java/org/apache/isis/viewer/html/component/html/LogonFormPage.java Tue Nov 29 08:00:38 2011
@@ -30,33 +30,40 @@ import org.apache.isis.viewer.html.compo
 public class LogonFormPage extends AbstractHtmlPage {
     private final String user;
     private final String password;
+    private final boolean registerLink;
+    private final String error;
 
     public LogonFormPage(final PathBuilder pathBuilder, final String styleSheet, final String header, final String footer,
-        final String user, final String password) {
+        final String user, final String password, final boolean registerLink, final String error) {
         super(pathBuilder, styleSheet, header, footer);
         this.user = user;
         this.password = password;
+        this.registerLink = registerLink;
+        this.error = error;
     }
 
     @Override
     protected void writeContent(final PrintWriter writer) {
         writer.println("<div id=\"view\">");
         writer.println("<div class=\"header\">");
-        if (user.equals("")) {
-            writer.println("<span class=\"header-text\">Please enter a user name and password.</span>");
-        } else {
-            writer.println("<span class=\"header-text\">Please enter a valid user name and password.</span>");
-        }
+        writer.println("<span class=\"header-text\">Please enter a user name and password.</span>");
         writer.println("</div>");
         writer.println("<FORM ACTION=\"" + pathTo("logon") + "\" METHOD=\"post\">");
         writer.println("<div id=\"content\">");
+        if(error != null) {
+            writer.println("<div class=\"error\">");
+            writer.println(error);
+            writer.println("</div>");
+        }
         writer.println("<div class=\"field\"><span class=\"label\">User name</span>"
             + "<span class=\"separator\">: </span><INPUT NAME=\"username\" value=\"" + user + "\"></DIV>");
         writer.println("<div class=\"field\"><span class=\"label\">Password</span>"
             + "<span class=\"separator\">: </span><INPUT TYPE=\"password\" NAME=\"password\" value=\"" + password
             + "\"></DIV>");
         writer.println("<div class=\"action-button\"><INPUT TYPE=\"submit\" VALUE=\"Log in\" NAME=\"Log in\"></div>");
-        new Link(pathBuilder, "register", "register", "Register").write(writer);
+        if(registerLink) {
+            writer.print("<a class=\"link nav-link\" title=\"Register new user name and password\" href=\"" + pathTo("register") + "\">register</a>");
+        }
         writer.println("</div>");
         writer.println("</FORM>");
         writer.println("</div>");

Modified: incubator/isis/trunk/framework/viewer/html/src/main/java/org/apache/isis/viewer/html/component/html/RegisterFormPage.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/viewer/html/src/main/java/org/apache/isis/viewer/html/component/html/RegisterFormPage.java?rev=1207775&r1=1207774&r2=1207775&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/html/src/main/java/org/apache/isis/viewer/html/component/html/RegisterFormPage.java (original)
+++ incubator/isis/trunk/framework/viewer/html/src/main/java/org/apache/isis/viewer/html/component/html/RegisterFormPage.java Tue Nov 29 08:00:38 2011
@@ -30,12 +30,14 @@ import org.apache.isis.viewer.html.compo
 public class RegisterFormPage extends AbstractHtmlPage {
     private final String user;
     private final String password;
+    private final String error;
 
     public RegisterFormPage(final PathBuilder pathBuilder, final String styleSheet, final String header, final String footer,
-        final String user, final String password) {
+        final String user, final String password, final String error) {
         super(pathBuilder, styleSheet, header, footer);
         this.user = user;
         this.password = password;
+        this.error = error;
     }
 
     @Override
@@ -46,15 +48,21 @@ public class RegisterFormPage extends Ab
         writer.println("</div>");
         writer.println("<FORM ACTION=\"" + pathTo("register") + "\" METHOD=\"post\">");
         writer.println("<div id=\"content\">");
+        if(error != null) {
+            writer.println("<div class=\"error\">");
+            writer.println(error);
+            writer.println("</div>");
+        }
         writer.println("<div class=\"field\"><span class=\"label\">User name</span>"
             + "<span class=\"separator\">: </span><INPUT NAME=\"username\" value=\"" + user + "\"></DIV>");
         writer.println("<div class=\"field\"><span class=\"label\">Password</span>"
             + "<span class=\"separator\">: </span><INPUT TYPE=\"password\" NAME=\"password\" value=\"" + password
             + "\"></DIV>");
         writer.println("<div class=\"field\"><span class=\"label\">Password (again)</span>"
-                + "<span class=\"separator\">: </span><INPUT TYPE=\"password2\" NAME=\"password2\" value=\"" + password
+                + "<span class=\"separator\">: </span><INPUT TYPE=\"password\" NAME=\"password2\" value=\"" + password
                 + "\"></DIV>");
         writer.println("<div class=\"action-button\"><INPUT TYPE=\"submit\" VALUE=\"Register\" NAME=\"Register\"></div>");
+        writer.print("<a class=\"link nav-link\" title=\"Back to the login page\" href=\"" + pathTo("login") + "\">back to login</a>");
         writer.println("</div>");
         writer.println("</FORM>");
         writer.println("</div>");

Modified: incubator/isis/trunk/framework/viewer/html/src/main/java/org/apache/isis/viewer/html/component/html/ViewDiv.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/viewer/html/src/main/java/org/apache/isis/viewer/html/component/html/ViewDiv.java?rev=1207775&r1=1207774&r2=1207775&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/html/src/main/java/org/apache/isis/viewer/html/component/html/ViewDiv.java (original)
+++ incubator/isis/trunk/framework/viewer/html/src/main/java/org/apache/isis/viewer/html/component/html/ViewDiv.java Tue Nov 29 08:00:38 2011
@@ -72,7 +72,6 @@ public class ViewDiv extends ComponentCo
     @Override
     protected void writeBefore(final PrintWriter writer) {
         writer.println("<div id=\"view\">");
-        writeMessages(writer);
         writeHeader(writer);
         writeMenu(writer);
         writer.println("<div id=\"content\">");
@@ -82,6 +81,7 @@ public class ViewDiv extends ComponentCo
     protected void writeAfter(final PrintWriter writer) {
         writer.println("</div>");
         writer.println("</div>");
+        writeMessages(writer);
     }
 
     private void writeMessages(final PrintWriter writer) {

Modified: incubator/isis/trunk/framework/viewer/html/src/main/java/org/apache/isis/viewer/html/servlet/LogonServlet.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/viewer/html/src/main/java/org/apache/isis/viewer/html/servlet/LogonServlet.java?rev=1207775&r1=1207774&r2=1207775&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/html/src/main/java/org/apache/isis/viewer/html/servlet/LogonServlet.java (original)
+++ incubator/isis/trunk/framework/viewer/html/src/main/java/org/apache/isis/viewer/html/servlet/LogonServlet.java Tue Nov 29 08:00:38 2011
@@ -29,6 +29,7 @@ import javax.servlet.http.HttpSession;
 import org.apache.isis.core.commons.authentication.AuthenticationSession;
 import org.apache.isis.core.runtime.authentication.AuthenticationRequest;
 import org.apache.isis.core.runtime.authentication.AuthenticationRequestPassword;
+import org.apache.isis.core.runtime.authentication.standard.RegistrationDetailsPassword;
 import org.apache.isis.runtimes.dflt.monitoring.servermonitor.Monitor;
 import org.apache.isis.runtimes.dflt.runtime.authentication.exploration.AuthenticationRequestExploration;
 import org.apache.isis.runtimes.dflt.runtime.system.DeploymentType;
@@ -75,14 +76,14 @@ public class LogonServlet extends Abstra
         final String user = request.getParameter("username");
         final String password = request.getParameter("password");
         if (user == null && !getDeploymentType().isExploring()) {
-            renderPrompt(response, "", "", "");
+            renderPrompt(response, "", "", null);
             return;
         }
 
         // authenticate; re-prompt if required
         final AuthenticationSession authSession = authenticate(user, password);
         if (authSession == null) {
-            renderPrompt(response, user, password, "error");
+            renderPrompt(response, user, password, "user/password invalid");
             return;
         }
 
@@ -105,10 +106,11 @@ public class LogonServlet extends Abstra
     private void renderPrompt(
             final HttpServletResponse response, 
             final String user, final String password,
-            final String message) throws IOException {
+            final String error) throws IOException {
         response.setContentType("text/html");
         final HtmlComponentFactory factory = new HtmlComponentFactory(getPathBuilder());
-        final LogonFormPage page = factory.createLogonPage(user, password);
+        boolean registerLink = getAuthenticationManager().supportsRegistration(RegistrationDetailsPassword.class);
+        final LogonFormPage page = factory.createLogonPage(user, password, registerLink, error);
         page.write(response.getWriter());
     }
 

Modified: incubator/isis/trunk/framework/viewer/html/src/main/java/org/apache/isis/viewer/html/servlet/RegisterServlet.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/viewer/html/src/main/java/org/apache/isis/viewer/html/servlet/RegisterServlet.java?rev=1207775&r1=1207774&r2=1207775&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/html/src/main/java/org/apache/isis/viewer/html/servlet/RegisterServlet.java (original)
+++ incubator/isis/trunk/framework/viewer/html/src/main/java/org/apache/isis/viewer/html/servlet/RegisterServlet.java Tue Nov 29 08:00:38 2011
@@ -34,6 +34,8 @@ import org.apache.isis.viewer.html.compo
 import org.apache.isis.viewer.html.component.html.RegisterFormPage;
 import org.apache.log4j.Logger;
 
+import com.google.common.base.Objects;
+
 public class RegisterServlet extends AbstractHtmlViewerServlet {
     
     private static final long serialVersionUID = 1L;
@@ -67,9 +69,15 @@ public class RegisterServlet extends Abs
         }
 
         // register; re-prompt if required
+        if (!Objects.equal(password, password2)) {
+            renderPrompt(response, user, "", "", "passwords don't match");
+            return;
+        }
+
+        // register; re-prompt if required
         final boolean registered = register(user, password, password2);
         if (!registered) {
-            renderPrompt(response, user, password, password2, "error");
+            renderPrompt(response, user, "", "", "user name already taken");
             return;
         }
 
@@ -88,7 +96,7 @@ public class RegisterServlet extends Abs
             final String message) throws IOException {
         response.setContentType("text/html");
         final HtmlComponentFactory factory = new HtmlComponentFactory(getPathBuilder());
-        final RegisterFormPage page = factory.createRegisterPage(user, password);
+        final RegisterFormPage page = factory.createRegisterPage(user, password, message);
         page.write(response.getWriter());
     }
 

Modified: incubator/isis/trunk/framework/viewer/html/src/main/resources/default.css
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/viewer/html/src/main/resources/default.css?rev=1207775&r1=1207774&r2=1207775&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/html/src/main/resources/default.css (original)
+++ incubator/isis/trunk/framework/viewer/html/src/main/resources/default.css Tue Nov 29 08:00:38 2011
@@ -425,7 +425,7 @@ DIV#body DIV#view {
 /* Start of Message Header */
 DIV.message-header {
 	position: relative;
-	top: 10px;
+	top: 40px;
 	padding: 5px 25px 5px 25px;
 	margin: 0 50px 0 255px;
 	vertical-align: middle;
@@ -930,4 +930,10 @@ SPAN.about {
 SPAN.user {
 	display: block;
 	padding: 4px;
-}
+}
+
+.nav-link {
+    display: block;
+    padding: 10px;
+    font-size: 75%;
+}
\ No newline at end of file

Added: incubator/isis/trunk/framework/viewer/html/src/main/resources/htmlviewer.js
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/viewer/html/src/main/resources/htmlviewer.js?rev=1207775&view=auto
==============================================================================
--- incubator/isis/trunk/framework/viewer/html/src/main/resources/htmlviewer.js (added)
+++ incubator/isis/trunk/framework/viewer/html/src/main/resources/htmlviewer.js Tue Nov 29 08:00:38 2011
@@ -0,0 +1,22 @@
+/*
+ *  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.
+ */
+$(document).ready(function()
+{
+    $(".message-header").fadeOut(2000)
+});
\ No newline at end of file

Modified: incubator/isis/trunk/framework/viewer/wicket/wicket-viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketUnsecuredApplication.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/viewer/wicket/wicket-viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketUnsecuredApplication.java?rev=1207775&r1=1207774&r2=1207775&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/wicket/wicket-viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketUnsecuredApplication.java (original)
+++ incubator/isis/trunk/framework/viewer/wicket/wicket-viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketUnsecuredApplication.java Tue Nov 29 08:00:38 2011
@@ -200,12 +200,12 @@ public class IsisWicketUnsecuredApplicat
                 new AuthenticationManagerStandard(configuration);
             authenticationManager.addAuthenticator(new AuthenticatorAbstract(configuration) {
                 @Override
-                public boolean canAuthenticate(final AuthenticationRequest request) {
+                public boolean isValid(final AuthenticationRequest request) {
                     return true;
                 }
 
                 @Override
-                public boolean isValid(final AuthenticationRequest request) {
+                public boolean canAuthenticate(Class<? extends AuthenticationRequest> authenticationRequestClass) {
                     return true;
                 }
             });