[jboss-cvs] jboss-seam/src/main/org/jboss/seam/core ...

Gavin King gavin.king at jboss.com
Thu Feb 22 15:21:22 EST 2007


  User: gavin   
  Date: 07/02/22 15:21:22

  Modified:    src/main/org/jboss/seam/core  Pages.java
  Log:
  don't redirect if you are already on the login page
  
  Revision  Changes    Path
  1.100     +26 -7     jboss-seam/src/main/org/jboss/seam/core/Pages.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: Pages.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/core/Pages.java,v
  retrieving revision 1.99
  retrieving revision 1.100
  diff -u -b -r1.99 -r1.100
  --- Pages.java	22 Feb 2007 18:08:54 -0000	1.99
  +++ Pages.java	22 Feb 2007 20:21:22 -0000	1.100
  @@ -1,6 +1,7 @@
   package org.jboss.seam.core;
   import static org.jboss.seam.InterceptionType.NEVER;
   import static org.jboss.seam.annotations.Install.BUILT_IN;
  +
   import java.io.InputStream;
   import java.net.MalformedURLException;
   import java.net.URL;
  @@ -37,18 +38,19 @@
   import org.jboss.seam.log.LogProvider;
   import org.jboss.seam.log.Logging;
   import org.jboss.seam.pages.Action;
  -import org.jboss.seam.pages.Navigation;
   import org.jboss.seam.pages.ConversationControl;
   import org.jboss.seam.pages.Input;
  -import org.jboss.seam.pages.ProcessControl;
  -import org.jboss.seam.pages.Rule;
  +import org.jboss.seam.pages.Navigation;
  +import org.jboss.seam.pages.Output;
   import org.jboss.seam.pages.Page;
   import org.jboss.seam.pages.Param;
  +import org.jboss.seam.pages.ProcessControl;
   import org.jboss.seam.pages.RedirectNavigationHandler;
   import org.jboss.seam.pages.RenderNavigationHandler;
  -import org.jboss.seam.pages.Output;
  +import org.jboss.seam.pages.Rule;
   import org.jboss.seam.pages.TaskControl;
   import org.jboss.seam.security.Identity;
  +import org.jboss.seam.security.NotLoggedInException;
   import org.jboss.seam.util.Parameters;
   import org.jboss.seam.util.Resources;
   import org.jboss.seam.util.Strings;
  @@ -252,12 +254,12 @@
         
         for ( Page page: getPageStack(viewId) )
         {         
  -         if ( page.isConversationRequired() && !Manager.instance().isLongRunningConversation() )
  +         if ( isNoConversationRedirectRequired(page) )
            {
               redirectToNoConversationView();
               return result;
            }
  -         else if ( page.isLoginRequired() && !Identity.instance().isLoggedIn() )
  +         else if ( isLoginRedirectRequired(viewId, page) )
            {
               redirectToLoginView();
               return result;
  @@ -274,6 +276,19 @@
         return result;
      }
      
  +   private boolean isNoConversationRedirectRequired(Page page)
  +   {
  +      return page.isConversationRequired() && 
  +            !Manager.instance().isLongRunningConversation();
  +   }
  +   
  +   private boolean isLoginRedirectRequired(String viewId, Page page)
  +   {
  +      return page.isLoginRequired() && 
  +            !viewId.equals( getLoginViewId() ) && 
  +            !Identity.instance().isLoggedIn();
  +   }
  +   
      private static String getRequestScheme(FacesContext facesContext)
      {
         String requestUrl = getRequestUrl(facesContext);
  @@ -328,7 +343,11 @@
         notLoggedIn();
         
         String loginViewId = getLoginViewId();
  -      if (loginViewId!=null)
  +      if (loginViewId==null)
  +      {
  +         throw new NotLoggedInException();
  +      }
  +      else
         {
            Manager.instance().redirect(loginViewId);
         }
  
  
  



More information about the jboss-cvs-commits mailing list