diff --git a/src/main/java/org/olat/core/commons/controllers/resume/ResumeController.java b/src/main/java/org/olat/core/commons/controllers/resume/ResumeController.java index 1020ab6b3886db7863119d3d0fd34d1a493434af..872bcdb4aae173e482290da6ddd58b567f7effbd 100644 --- a/src/main/java/org/olat/core/commons/controllers/resume/ResumeController.java +++ b/src/main/java/org/olat/core/commons/controllers/resume/ResumeController.java @@ -103,7 +103,8 @@ public class ResumeController extends FormBasicController implements SupportsAft boolean interception = false; if(isREST(ureq)) { - //do nothing + String url = getRESTRedirectURL(ureq); + redirect(ureq, url); } else if(!historyModule.isResumeEnabled()) { String url = toUrl(getLandingBC(ureq)); redirect(ureq, url); @@ -170,6 +171,18 @@ public class ResumeController extends FormBasicController implements SupportsAft if(usess.getEntry("AuthDispatcher:entryUrl") != null) return true; return false; } + + private String getRESTRedirectURL(UserRequest ureq) { + UserSession usess = ureq.getUserSession(); + + String url = (String)usess.getEntry("AuthDispatcher:businessPath"); + if(url == null) { + url = (String)usess.getEntry("AuthDispatcher:entryUrl"); + } + + List<ContextEntry> ces = BusinessControlFactory.getInstance().createCEListFromString(url); + return BusinessControlFactory.getInstance().getAsRestPart(ces, true); + } @Override protected void doDispose() { diff --git a/src/main/java/org/olat/core/commons/fullWebApp/BaseFullWebappController.java b/src/main/java/org/olat/core/commons/fullWebApp/BaseFullWebappController.java index ebd18bc3f69dbe0744daca6a1755495fc2b5aa1d..8fbfd8b0acab3175204547e79c9a95bdc09bbd1e 100644 --- a/src/main/java/org/olat/core/commons/fullWebApp/BaseFullWebappController.java +++ b/src/main/java/org/olat/core/commons/fullWebApp/BaseFullWebappController.java @@ -250,7 +250,8 @@ public class BaseFullWebappController extends BasicController implements DTabs, } if(assessmentGuardCtrl == null && (aftLHookCtr == null || aftLHookCtr.isDisposed()) - && usess.getEntry("AuthDispatcher:entryUrl") == null) { + && usess.getEntry("AuthDispatcher:entryUrl") == null + && usess.getEntry("AuthDispatcher:businessPath") == null) { String bc = initializeDefaultSite(ureq); if(StringHelper.containsNonWhitespace(bc) && usess.getEntry("redirect-bc") == null) { usess.putEntry("redirect-bc", bc);