У меня есть /home
конечная точка:
@RequestMapping(value = "/home", method = RequestMethod.GET)
public ModelAndView getLoginPage(
HttpServletResponse response,
@RequestParam(value = "msg", required = false) String message{
modelView.setViewName("landingpage/home");
return modelView;
}
возвращает html, который также содержит логин и панель инструментов для зарегистрированных пользователей. Итак, для аутентифицированных пользователей он открыт:
http
.authorizeRequests()
.antMatchers("/", "/home", "/book/**").authenticated()
, но также и после неудачного входа в систему, он должен быть открыт, потому что он отправляет сообщение в конечную точку / home:
public void onAuthenticationFailure(HttpServletRequest request, HttpServletResponse response, AuthenticationException exception)
....
String exceptionMessage = exception.getMessage();
String msgParam = "?msg=" + EncryptionUtil.encode(exceptionMessage);
response.sendRedirect(/home + msgParam);
Так что я хочу, для
localhost:8080/home -> should be open to onlyauthenticated
localhost:8080/home?msg=asdsada -> should be open to all users
Я пытался добавить это
.antMatchers("/reset-password", "/login", "/home/**").anonymous()
Итак, весь класс стал таким:
.antMatchers("/", "/home", "/deposit/**").authenticated()
.antMatchers("/reset-password", "/login", "/home/**").anonymous()
но когда я иду к
http://localhost:8080/home?msg=BAcQreS-4_K54e3jWSksds
не может быть, потому что не разрешено для неаутентифицированных.
Что я могу сделать?