Package org.olat.core.gui

Examples of org.olat.core.gui.UserRequest


   * @see org.olat.core.dispatcher.Dispatcher#execute(javax.servlet.http.HttpServletRequest,
   *      javax.servlet.http.HttpServletResponse, java.lang.String)
   */
  public void execute(HttpServletRequest request,
      HttpServletResponse response, String uriPrefix) {
    UserRequest ureq = null;
   
    try {
      ureq = new UserRequest(uriPrefix, request, response);
      if (!ContextHelpModule.isContextHelpEnabled()) {
        // disabled context help - redirect immediately
        DispatcherAction.sendNotFound(ureq.getNonParsedUri(), response);
        return;
      }

      ChiefController cc = (ChiefController) Windows.getWindows(ureq.getUserSession()).getAttribute(CONTEXTHELPCHIEFCONTROLLER)
      // reuse existing chief controller for this user
      if (cc != null) {       
        Window currentWindow = cc.getWindow();
        // Check if this is a start URL or a framework URL
        if (ureq.isValidDispatchURI()) {
          // A standard framework request, dispatch by component
          currentWindow.dispatchRequest(ureq, false);
          return;
        } else {         
          // If path contains complete URL, dispose and start from scratch
          Windows.getWindows(ureq).deregisterWindow(currentWindow);
          cc.dispose();         
        }
      }
     
      // Creator code to create
      // 1) the chief controller
      // 2) the layout controller
      // 3) the context help main controller
      ControllerCreator cHelpPopupWindowControllerCreator = new ControllerCreator() {
        public Controller createController(UserRequest lureq, WindowControl lwControl) {
          ControllerCreator cHelpMainControllerCreator = new ControllerCreator() {
            public Controller createController(UserRequest lureq, WindowControl lwControl) {
              // create the context help controller and wrapp it using the layout controller
              ContextHelpMainController helpCtr =  new ContextHelpMainController(lureq, lwControl);
              LayoutMain3ColsController layoutCtr =  new LayoutMain3ColsController(lureq, lwControl, null, null, helpCtr.getInitialComponent(), null);
              layoutCtr.addDisposableChildController(helpCtr);
              return layoutCtr;
            }
          };
          ContextHelpLayoutControllerCreator cHelpPopupLayoutCreator = new ContextHelpLayoutControllerCreator(cHelpMainControllerCreator);
          return new BaseFullWebappPopupBrowserWindow(lureq, lwControl, cHelpPopupLayoutCreator.getFullWebappParts());
        }
      };

      BaseChiefControllerCreator bbc = new BaseChiefControllerCreator();
      bbc.setContentControllerCreator(cHelpPopupWindowControllerCreator);     
      cc = bbc.createChiefController(ureq);   
      // add to user session for cleanup on user logout
      Windows.getWindows(ureq.getUserSession()).setAttribute(CONTEXTHELPCHIEFCONTROLLER, cc);     
      Window currentWindow = cc.getWindow();
      currentWindow.setUriPrefix(WebappHelper.getServletContextPath() + PATH_CHELP);
      Windows.getWindows(ureq).registerWindow(currentWindow);
      // finally dispatch the initial request
      currentWindow.dispatchRequest(ureq, true);
View Full Code Here


   * @param response
   * @param uriPrefix
   */
  public void execute(HttpServletRequest request, HttpServletResponse response, String uriPrefix) {
    UserSession usess = UserSession.getUserSession(request);
    UserRequest ureq = null;
    try{
      //upon creation URL is checked for
      ureq = new UserRequest(uriPrefix, request, response);
    } catch(NumberFormatException nfe) {
      //MODE could not be decoded
      //typically if robots with wrong urls hit the system
      //or user have bookmarks
      //or authors copy-pasted links to the content.
      //showing redscreens for non valid URL is wrong instead
      //a 404 message must be shown -> e.g. robots correct their links.
      if(Tracing.isDebugEnabled(AuthenticatedDispatcher.class)){
        Tracing.logDebug("Bad Request "+request.getPathInfo(), this.getClass());
      }
      DispatcherAction.sendBadRequest(request.getPathInfo(), response);
      return;
    }
    GUIInterna.setLoadPerformanceMode(ureq);   
   
    boolean auth = usess.isAuthenticated();

    if (!auth) {
      if (!ureq.isValidDispatchURI()) {
        // might be a direct jump request -> remember it if not logged in yet
        String reqUri = request.getRequestURI();
        String query = request.getQueryString();
        String allGet = reqUri + QUESTIONMARK + query;
        usess.putEntryInNonClearedStore(AUTHDISPATCHER_ENTRYURL, allGet);
      }
      String guestAccess = ureq.getParameter(GUEST);
      if (guestAccess == null || !LoginModule.isGuestLoginLinksEnabled()) {
        DispatcherAction.redirectToDefaultDispatcher(response);
        return;
      } else if (guestAccess.equals(TRUE)) {
        // try to log in as anonymous
        // use the language from the lang paramter if available, otherwhise use the system default locale
        String guestLang = ureq.getParameter("lang");
        Locale guestLoc;
        if (guestLang == null) {
          guestLoc = I18nModule.getDefaultLocale();
        } else {
          guestLoc = I18nManager.getInstance().getLocaleOrDefault(guestLang);
        }
        int loginStatus = AuthHelper.doAnonymousLogin(ureq, guestLoc);
        if ( loginStatus != AuthHelper.LOGIN_OK) {
          if (loginStatus == AuthHelper.LOGIN_NOTAVAILABLE) {
            DispatcherAction.redirectToServiceNotAvailable(response);
          }
          DispatcherAction.redirectToDefaultDispatcher(response); // error, redirect to login screen
          return;
        }
        // else now logged in as anonymous user, continue
      }
    }

    // authenticated!
    try {
     
      //kill session if not secured via SSL
      if (forceSecureAccessOnly && !request.isSecure()) {
        SessionInfo sessionInfo = usess.getSessionInfo();
        if (sessionInfo!=null) {
          HttpSession session = sessionInfo.getSession();
          if (session!=null) {
            try{
              session.invalidate();
            } catch(IllegalStateException ise) {
              // thrown when session already invalidated. fine. ignore.
            }
          }
        }
        DispatcherAction.redirectToDefaultDispatcher(response);
        return;
      }
     
      SessionInfo sessionInfo = usess.getSessionInfo();
      if (sessionInfo==null) {
        DispatcherAction.redirectToDefaultDispatcher(response);
        return;
      }
     
      UserBasedLogLevelManager.activateUsernameBasedLogLevel(sessionInfo.getLogin());
     
      sessionInfo.setLastClickTime();
      String origUrl = (String) usess.removeEntryFromNonClearedStore(AUTHDISPATCHER_ENTRYURL);
      if (origUrl != null) {
        // we had a direct jump request
        // to avoid a endless redirect, remove the guest parameter if any
        // this can happen if a guest has cookies disabled
        String url = new URIHelper(origUrl).removeParameter(GUEST).toString();
        DispatcherAction.redirectTo(response, url);
        return;
      }
      String businessPath = (String) usess.removeEntryFromNonClearedStore(AUTHDISPATCHER_BUSINESSPATH);
      if (businessPath != null) {
        BusinessControl bc = BusinessControlFactory.getInstance().createFromString(businessPath);
        ChiefController cc = (ChiefController) Windows.getWindows(usess).getAttribute("AUTHCHIEFCONTROLLER");

        WindowControl wControl = cc.getWindowControl();
        WindowControl bwControl = BusinessControlFactory.getInstance().createBusinessWindowControl(bc, wControl);
        NewControllerFactory.getInstance().launch(ureq, bwControl)
        // render the window
        Window w = cc.getWindow();
        w.dispatchRequest(ureq, true); // renderOnly
        return;
      }
     
      // 1. check for direct launch urls, see org.olat.core.dispatcher.jumpin.JumpinConfig
      if (!ureq.isValidDispatchURI()) {
        JumpInReceptionist jh = JumpInManager.getInstance().getJumpInReceptionist(ureq);
        if (jh == null) {
          // found no JumpInManager => try with new 5.1 JumpIn-Resource URL
          String uri = ureq.getNonParsedUri();
          if (uri.startsWith(JumpInManager.CONST_EXTLINK)) {
            String resourceUrl = ureq.getParameter(JumpInManager.CONST_RESOURCE_URL);
            if (resourceUrl != null) {
              // attach the launcher data
              BusinessControl bc = BusinessControlFactory.getInstance().createFromString(resourceUrl);
              try {
                // get main window and dynamic tabs
View Full Code Here

   
    //
    // create the olat ureq and get an associated main window to spawn the "tab"
    //
    UserSession usess = UserSession.getUserSession(request);
    UserRequest ureq = null;
    try {
      //upon creation URL is checked for
      ureq = new UserRequest(uriPrefix, request, response);
    } catch(NumberFormatException nfe) {
      //MODE could not be decoded
      //typically if robots with wrong urls hit the system
      //or user have bookmarks
      //or authors copy-pasted links to the content.
      //showing redscreens for non valid URL is wrong instead
      //a 404 message must be shown -> e.g. robots correct their links.
      if(log.isDebug()){
        log.debug("Bad Request "+request.getPathInfo());
      }
      DispatcherAction.sendBadRequest(request.getPathInfo(), response);
      return;
    }
    GUIInterna.setLoadPerformanceMode(ureq);   
   
    boolean auth = usess.isAuthenticated();
    if (auth) {
      usess.putEntryInNonClearedStore(AuthenticatedDispatcher.AUTHDISPATCHER_BUSINESSPATH, businessPath);
     
      String url = getRedirectToURL(usess);
      DispatcherAction.redirectTo(response, url);
    } else {
      //prepare for redirect
      usess.putEntryInNonClearedStore(AuthenticatedDispatcher.AUTHDISPATCHER_BUSINESSPATH, businessPath);

      String guestAccess = ureq.getParameter(AuthenticatedDispatcher.GUEST);
      if (guestAccess == null || !LoginModule.isGuestLoginLinksEnabled()) {
        DispatcherAction.redirectToDefaultDispatcher(response);
        return;
      } else if (guestAccess.equals(AuthenticatedDispatcher.TRUE)) {
        // try to log in as anonymous
        // use the language from the lang paramter if available, otherwhise use the system default locale
        String guestLang = ureq.getParameter("lang");
        Locale guestLoc;
        if (guestLang == null) {
          guestLoc = I18nModule.getDefaultLocale();
        } else {
          guestLoc = I18nManager.getInstance().getLocaleOrDefault(guestLang);
View Full Code Here

   * @param response
   * @param uriPrefix
   */
  public void execute(HttpServletRequest request, HttpServletResponse response, String uriPrefix) {
    UserSession usess = UserSession.getUserSession(request);
    UserRequest ureq = null;

    try {
      ureq = new UserRequest(uriPrefix, request, response);
      boolean auth = usess.isAuthenticated();

      if (!auth ||   !ureq.isValidDispatchURI()) {
        // String lang =
        // I18nManager.getInstance().getDefaultLocale().toString();
        Identity ident = ManagerFactory.getManager().findIdentityByName("administrator");

        usess.signOffAndClear();
View Full Code Here

  /**
   * @see org.olat.core.dispatcher.Dispatcher#execute(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, java.lang.String)
   */
  public void execute(HttpServletRequest request, HttpServletResponse response, String uriPrefix) {
    UserSession usess = UserSession.getUserSession(request);
    UserRequest ureq = null;
    try{
      //upon creation URL is checked for
      ureq = new UserRequest(uriPrefix, request, response);
    }catch(NumberFormatException nfe){
      //MODE could not be decoded
      //typically if robots with wrong urls hit the system
      //or user have bookmarks
      //or authors copy-pasted links to the content.
      //showing redscreens for non valid URL is wrong instead
      //a 404 message must be shown -> e.g. robots correct their links.
      if(Tracing.isDebugEnabled(RedirectToAutoGuestLoginDispatcher.class)){
        Tracing.logDebug("Bad Request "+request.getPathInfo(), this.getClass());
      }
      DispatcherAction.sendBadRequest(request.getPathInfo(), response);
      return;
    }
    int loginStatus = AuthHelper.doAnonymousLogin(ureq,I18nManager.getInstance().getLocaleOrDefault(ureq.getParameter("lang")) );
    if ( loginStatus != AuthHelper.LOGIN_OK) {
      if (loginStatus == AuthHelper.LOGIN_NOTAVAILABLE) {
        DispatcherAction.redirectToServiceNotAvailable(response);
      }
      DispatcherAction.redirectToDefaultDispatcher(response); // error, redirect to login screen
View Full Code Here

  public void execute(HttpServletRequest request, HttpServletResponse response, String uriPrefix) {
    if (preDispatcher != null) {
      preDispatcher.execute(request, response, uriPrefix);
    }
   
    UserRequest ureq = new UserRequest(uriPrefix, request, response);
    //String sessionId = request.getRequestedSessionId();
    try {
      UserSession usess = ureq.getUserSession();
      Windows ws = Windows.getWindows(usess);
      synchronized (ws) {  //o_clusterOK by:fj

        Window window;
        boolean windowHere = ws.isExisting(ureq.getWindowID());
        boolean validDispatchUri = ureq.isValidDispatchURI();
        if (validDispatchUri && !windowHere) {
          // probably valid framework link from previous user && new Session(no window):
          // when a previous user logged off, and 30min later (when the httpsession is invalidated), the next user clicks e.g. on
          // the log-in link in the -same- browser window ->
          // -> there is no window -> create a new one
View Full Code Here

   * @param response
   * @param uriPrefix
   */
  public void execute(HttpServletRequest request, HttpServletResponse response, String uriPrefix) {
    UserSession usess = UserSession.getUserSession(request);
    UserRequest ureq = null;
    try {
      //upon creation URL is checked for
      ureq = new UserRequest(uriPrefix, request, response);
    } catch(NumberFormatException nfe) {
      //MODE could not be decoded
      //typically if robots with wrong urls hit the system
      //or user have bookmarks
      //or authors copy-pasted links to the content.
      //showing redscreens for non valid URL is wrong instead
      //a 404 message must be shown -> e.g. robots correct their links.
      if(Tracing.isDebugEnabled(UzhAuthenticatedDispatcher.class)){
        Tracing.logDebug("Bad Request "+request.getPathInfo(), this.getClass());
      }
      DispatcherAction.sendBadRequest(request.getPathInfo(), response);
      return;
    }
    GUIInterna.setLoadPerformanceMode(ureq);   
   
    boolean auth = usess.isAuthenticated();
   
    if (!auth) {
      //check for legacy unizh url's and redirect
      if (checkForRedirect(request, response) ) return;
     
     
      if (!ureq.isValidDispatchURI()) {
        // might be a direct jump request -> remember it if not logged in yet
        String reqUri = request.getRequestURI();
        String query = request.getQueryString();
        String allGet = reqUri + QUESTIONMARK + query;
        usess.putEntryInNonClearedStore(AUTHDISPATCHER_ENTRYURL, allGet);
      }
      String guestAccess = ureq.getParameter(GUEST);
      if (guestAccess == null) {
        DispatcherAction.redirectToDefaultDispatcher(response);
        return;
      } else if (guestAccess.equals(TRUE)) {
        // try to log in as anonymous
        int loginStatus = AuthHelper.doAnonymousLogin(ureq,I18nManager.getInstance().getLocaleOrDefault(ureq.getParameter(LANG)) );
        if ( loginStatus != AuthHelper.LOGIN_OK ) {
          if (loginStatus == AuthHelper.LOGIN_NOTAVAILABLE) {
            DispatcherAction.redirectToServiceNotAvailable(response);
          }
          return;
        }
        // else now logged in as anonymous user, continue
      }
    }

    // authenticated!
    try {
     
      //kill session if not secured via SSL
      if (forceSecureAccessOnly && !request.isSecure()) {
        SessionInfo sessionInfo = usess.getSessionInfo();
        if (sessionInfo!=null) {
          HttpSession session = sessionInfo.getSession();
          if (session!=null) {
            try{
              session.invalidate();
            } catch(IllegalStateException ise) {
              // thrown when session already invalidated. fine. ignore.
            }
          }
        }
        DispatcherAction.redirectToDefaultDispatcher(response);
        return;
      }
    //check for legacy unizh url's and redirect
      if (checkForRedirect(request, response)) return ;
     
      usess.getSessionInfo().setLastClickTime();
      String origUrl = (String) usess.removeEntryFromNonClearedStore(AUTHDISPATCHER_ENTRYURL);
      if (origUrl != null) {
        // we had a direct jump request
        // to avoid a endless redirect, remove the guest parameter if any
        // this can happen if a guest has cookies disabled
        String url = new URIHelper(origUrl).removeParameter(GUEST).toString();
        DispatcherAction.redirectTo(response, url);
        return;
      }
      // 1. check for direct launch urls
      if (!ureq.isValidDispatchURI()) {
        JumpInReceptionist jh = JumpInManager.getInstance().getJumpInReceptionist(ureq);
        if (jh == null) {
          // found no JumpInManager => try with new 5.1 JumpIn-Resource URL
          String uri = ureq.getNonParsedUri();
          if (uri.startsWith(JumpInManager.CONST_EXTLINK)) {
            String resourceUrl = ureq.getParameter(JumpInManager.CONST_RESOURCE_URL);
            if (resourceUrl != null) {
              // attach the launcher data
              BusinessControl bc = BusinessControlFactory.getInstance().createFromString(resourceUrl);
              try {
                // get main window and dynamic tabs
View Full Code Here

        handleException(new ShibbolethException(ShibbolethException.INSUFFICIENT_ATTRIBUTES,"Insufficient shibboleth attributes!"),
            req, resp, translator);
        return;
      }
           
      UserRequest ureq = null;
      try{
        //upon creation URL is checked for
        ureq = new UserRequest(uriPrefix, req, resp);
      }catch(NumberFormatException nfe){
        //MODE could not be decoded
        //typically if robots with wrong urls hit the system
        //or user have bookmarks
        //or authors copy-pasted links to the content.
        //showing redscreens for non valid URL is wrong instead
        //a 404 message must be shown -> e.g. robots correct their links.
        if(Tracing.isDebugEnabled(ShibbolethDispatcher.class)){
          Tracing.logDebug("Bad Request "+req.getPathInfo(), this.getClass());
        }
        DispatcherAction.sendBadRequest(req.getPathInfo(), resp);
        return;
      }
     
      Authentication auth = ManagerFactory.getManager().findAuthenticationByAuthusername(uniqueID, PROVIDER_SHIB);
      if (auth == null) { // no matching authentication...
        ShibbolethRegistrationController.putShibAttributes(req, attributesMap);
        ShibbolethRegistrationController.putShibUniqueID(req, uniqueID);
        redirectToShibbolethRegistration(resp);
        return;
      }
      int loginStatus = AuthHelper.doLogin(auth.getIdentity(), ShibbolethDispatcher.PROVIDER_SHIB, ureq);
      if (loginStatus != AuthHelper.LOGIN_OK) {
        if (loginStatus == AuthHelper.LOGIN_NOTAVAILABLE) {
          DispatcherAction.redirectToServiceNotAvailable(resp);
        }
        DispatcherAction.redirectToDefaultDispatcher(resp); // error, redirect to login screen
        return;
      }
     
      // successfull login
      UserDeletionManager.getInstance().setIdentityAsActiv(ureq.getIdentity());
      ureq.getUserSession().getIdentityEnvironment().addAttributes(
          ShibbolethModule.getAttributeTranslator().translateAttributesMap(attributesMap));
      MediaResource mr = ureq.getDispatchResult().getResultingMediaResource();
      if (!(mr instanceof RedirectMediaResource)) {
        DispatcherAction.redirectToDefaultDispatcher(resp); // error, redirect to login screen
        return;
      }
     
View Full Code Here

   * @param e
   * @param req
   * @param resp
   */
  private void handleException(Throwable e, HttpServletRequest req, HttpServletResponse resp, Translator translator) {
    UserRequest ureq = new UserRequest(ShibbolethDispatcher.PATH_SHIBBOLETH, req, resp);
    if(e instanceof ShibbolethException) {     
      String userMsg = "";
      int errorCode = ((ShibbolethException)e).getErrorCode();
      switch (errorCode) {
        case ShibbolethException.GENERAL_SAML_ERROR: userMsg = translator.translate("error.shibboleth.generic"); break
View Full Code Here

  public void execute(HttpServletRequest request, HttpServletResponse response, String uriPrefix) {
    if (rejectRequest(request, response)) {
      return;
    }
   
    UserRequest ureq = null;
    String referer = request.getHeader("referer");
    if(referer != null && referer.indexOf(DispatcherAction.PATH_MAPPED) > -1) {
      //TODO:gs may no longer needed as bad rel links are catched in dispatcherAction
      //OLAT-3334
      //ignore /dmz/ requests issued from "content" delivered by
      // /m/98129834/folder0/folder1/folder3/bla.hmtl
      // this can happen if for example a CP contains a relative link pointing back like
      // ../../../../../../presentation/cool.js where the "up navigation" exceeds the
      // the /folder0/folder1/folder3 path and even jumps over /m/98129834.
      //The DMZ is reached, the session invalidated and next click shows login screen.
      //
      //Because /g/ mapped content is considered to be save against such errors, there
      // is no check for PATH_GLOBAL_MAPPED. Typically /g/ mapped paths are
      // application wide defined and not brought in by users. Hence it should
      // be discovered during developing or testing.
      //
      String msg = "BAD LINK IN [["+referer+"]]";
      Tracing.logWarn(msg, DMZDispatcher.class);
      DispatcherAction.sendNotFound(msg, response);
      return;
    }

    try {
      // upon creation URL is checked for

      ureq = new UserRequest(uriPrefix, request, response);
    } catch (NumberFormatException nfe) {
      // MODE could not be decoded
      // typically if robots with wrong urls hit the system
      // or user have bookmarks
      // or authors copy-pasted links to the content.
      // showing redscreens for non valid URL is wrong instead
      // a 404 message must be shown -> e.g. robots correct their links.
      if (Tracing.isDebugEnabled(DMZDispatcher.class)) {
        Tracing.logDebug("Bad Request " + request.getPathInfo(), this.getClass());
      }
      DispatcherAction.sendBadRequest(request.getPathInfo(), response);
      return;
    }
    //set load performance mode depending on logged in user or global parameter
    //here in the DMZ only the global parameter plays a role.
    GUIInterna.setLoadPerformanceMode(ureq);
   
    try {
      // find out about which subdispatcher is meant
      // e.g. got here because of /dmz/...
      // maybe something like /dmz/registration/
      //
      // add the context path to align with uriPrefix e.g. /olat/dmz/
      String pathInfo = request.getContextPath() + request.getPathInfo();
      ChiefControllerCreator subPathccc = null;
      boolean dmzOnly = pathInfo.equals(uriPrefix);// if /olat/dmz/
      if (!dmzOnly) {
        int sl = pathInfo.indexOf('/', uriPrefix.length());
        String sub;
        if (sl > 1) {
          // e.g. something like /registration/ or /pwchange/
          sub = pathInfo.substring(uriPrefix.length() - 1, sl + 1);
        } else {
          // e.g. something like /info.html from (/dmz/info.html)
          sub = pathInfo;
        }
        // chief controller creator for sub path, e.g.
        subPathccc = dmzServicesByPath.get(sub);
       
        UserSession usess = ureq.getUserSession();
        Windows ws = Windows.getWindows(usess);
        synchronized (ws) { //o_clusterOK by:fj per user session
          ChiefController occ;
          if(subPathccc != null){
            occ = subPathccc.createChiefController(ureq);
            Window window = occ.getWindow();
            window.setUriPrefix(uriPrefix);
            ws.registerWindow(window);
           
            window.dispatchRequest(ureq, true);
            return;
          }         
        }
      }//else a /olat/dmz/ request
      /*
       * create content as it is defined in config.xml in he dmzbean
       */

      /*
       * solve this with a predispatcher action
       */
     
//      // convenience method to jump immediatly to AAI (Shibboleth) home
//      // organisation for login without selecting home organisation manually
//      if (ShibbolethModule.isEnableShibbolethLogins()) {
//        String preSelIdp = request.getParameter("preselection");
//        String redirect = request.getParameter("redirect");
//        if (preSelIdp != null && redirect != null && redirect.equalsIgnoreCase("true")) {
//          preSelIdp = preSelIdp.toLowerCase();
//          Collection sites = IdPSite.getIdPSites(ShibbolethModule.getMetadata());
//          for (Iterator iter = sites.iterator(); iter.hasNext();) {
//            IdPSite site = (IdPSite) iter.next();
//            if (site.getName().toLowerCase().indexOf(preSelIdp) > -1) {
//              response.sendRedirect(AssertionConsumerService.buildRequest(request.getLocale(), site));
//              break;
//            }
//          }
//        }
//      }

      UserSession usess = ureq.getUserSession();
      Windows ws = Windows.getWindows(usess);
      synchronized (ws) { //o_clusterOK by:fj per user session

        Window window;
        boolean windowHere = ws.isExisting(ureq.getWindowID());
        boolean validDispatchUri = ureq.isValidDispatchURI();
        if (validDispatchUri && !windowHere) {
          // probably valid framework link from previous user && new Session(no window):
          // when a previous user logged off, and 30min later (when the httpsession is invalidated), the next user clicks e.g. on
          // the log-in link in the -same- browser window ->
          // -> there is no window -> create a new one
View Full Code Here

TOP

Related Classes of org.olat.core.gui.UserRequest

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.