diff --git a/src/main/java/de/thm/arsnova/aop/UserSessionAspect.java b/src/main/java/de/thm/arsnova/aop/UserSessionAspect.java index 1cc0eea7ada5747ccd0d0894e44a1bfa0edf25be..bb4a5032901b9f3461b1df2b7a6d264f42d20765 100644 --- a/src/main/java/de/thm/arsnova/aop/UserSessionAspect.java +++ b/src/main/java/de/thm/arsnova/aop/UserSessionAspect.java @@ -51,8 +51,31 @@ public class UserSessionAspect { returning="session" ) public final void joinSessionAdviceWithWebsocket(final JoinPoint jp, final String keyword, final UUID socketId, final Session session) { - userSessionService.setUser(userService.getCurrentUser()); userSessionService.setSession(session); userSessionService.setSocketId(socketId); } + + /** Sets current user, ARSnova session and websocket session ID in session scoped UserSessionService + * + * @param jp + * @param keyword + * @param socketId + * @param session + */ + @AfterReturning( + pointcut="execution(public * de.thm.arsnova.controller.LoginController.doLogin(..)) " + + "&& args(type, guestName, forcedReferer, successUrl, failureUrl, role, ..)" + ) + public final void doLogin( + final JoinPoint jp, + final String type, + final String guestName, + final String forcedReferer, + final String successUrl, + final String failureUrl, + final UserSessionService.Role role) { + + userSessionService.setRole(role); + userSessionService.setUser(userService.getCurrentUser()); + } } diff --git a/src/main/java/de/thm/arsnova/controller/LoginController.java b/src/main/java/de/thm/arsnova/controller/LoginController.java index 4d1aded6d4ee0a735bbee0dec48888dc2c5a57f3..ff743fb035a978ac2ae4080883ed4b62937c0cbc 100644 --- a/src/main/java/de/thm/arsnova/controller/LoginController.java +++ b/src/main/java/de/thm/arsnova/controller/LoginController.java @@ -53,7 +53,6 @@ import org.springframework.web.servlet.view.RedirectView; import de.thm.arsnova.entities.Session; import de.thm.arsnova.entities.User; -import de.thm.arsnova.exceptions.NoContentException; import de.thm.arsnova.exceptions.UnauthorizedException; import de.thm.arsnova.services.IUserService; import de.thm.arsnova.services.UserSessionService; @@ -95,8 +94,6 @@ public class LoginController extends AbstractController { final HttpServletRequest request, final HttpServletResponse response ) throws IOException, ServletException { - userSessionService.setRole(role); - String referer = request.getHeader("referer"); if (null != forcedReferer && null != referer && !UrlUtils.isAbsoluteUrl(referer)) { /* Use a url from a request parameter as referer as long as the url is not absolute (to prevent