#java #spring #spring-boot #spring-mvc
Вопрос:
Я вызываю метод из Ajax и отвечаю
@ResponseBody Map<String, String>
Моя функциональность в порядке! Но моя проблема заключается в том, что пользователь не вошел в систему и вызывает этот метод непосредственно по URL-адресу. В этом случае я не хочу, чтобы мой контроллер отвечал
@ResponseBody Map<String, String>
Я хочу, чтобы мой контроллер ответил перенаправлением на страницу входа в систему.
Я использую
public ModelAndView
чтобы достичь этого состояния в других случаях, но я не знаю, как справиться с этой ситуацией.
Комментарии:
1. Вы используете систему безопасности или используете свои собственные обработчики?
2. Поскольку все мои контроллеры были простыми, я не использовал фреймворк безопасности. Но теперь я думаю, что мне нужно его использовать.
3. Использование spring security сделает большую часть работы автоматически.
4. Я могу перенаправлять клиентов, если они не вошли в систему до обработки моего
@ResponseBody Map<String, String>
метода с помощью Spring Security?5. Взгляните на это: spring.io/guides/gs/securing-web
Ответ №1:
Как все уже упоминали , Spring security is essential for this functionality
. Но если это быстрое решение, вы можете проверить Spring boot AOP
Вы перехватываете вызов контроллера до того , как он обработает запрос, выполняете аутентификацию и соответствующим образом изменяете выходные данные