Ich habe eine Web-Anwendung mit Spring-Boot und Freemarker und implementiert Interceptor (HandlerInterceptorAdapter) erstellt.Redirect mit Spring Boot Interceptor
Wenn der Benutzer im Interceptor nicht angemeldet ist, wird er zur Anmeldeseite umgeleitet. Das funktioniert gut. Das Problem ist jedoch, dass der Controller zuerst ausgeführt wird, bevor er auf die Anmeldeseite umgeleitet wird.
Mein Interceptor Code:
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object object) throws Exception {
User userSession = (User) request.getSession().getAttribute("user");
if (userSession == null) {
response.sendRedirect("/login");
}
}
Controller-Klasse (nach response.sendRedirect, diese Steuerung noch excuted wird). Warum? Ich staple mit diesem Problem zusammen.
@RequestMapping("/home")
public String home(Model model, HttpServletRequest httpServletRequest) {
String returnPage = "home-admin";
User user = (User) httpServletRequest.getSession().getAttribute("user");
if(user != null){
String accessType = accessTypeRepository.getAccessType(user.getAccessId());
if(StrUtil.isEqual(accessType, AccessTypeConst.MANAGER.getType())){
returnPage = "home-manager";
}
}
return returnPage;
}
Woahh !! Ich habe mit diesem Problem für ein paar Stunden gestapelt und die Lösung ist genauso einfach. Vielen Dank, du hast mir den Tag versüßt. – kevenlolo
Ich bin froh, dass es dein Problem löst. Würdest du das als Antwort akzeptieren? –