Я пытаюсь перенаправить на более глубокую структуру папок после успешного входа в систему.Spring Boot redirect после успешного входа
Это в моем WebSecurityConfig:
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers("/user/**").hasRole("USER").anyRequest().permitAll()
.and()
.formLogin()
.loginPage("/logon")
.usernameParameter("personContactEmail").passwordParameter("personRegPwd")
.defaultSuccessUrl("/successauth", true)
.and()
.logout()
.logoutSuccessUrl("/")
.and()
.exceptionHandling().accessDeniedPage("/403")
.and()
.csrf();
}
И это внутри successauth отображения в/Запрос:
@RequestMapping("/successauth")
public void afterLogon(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Authentication authentication) throws IOException, ServletException
{
authentication = authenticationFacade.getAuthentication();
if (authentication.isAuthenticated()) {
RedirectStrategy redirectStrategy = new DefaultRedirectStrategy();
redirectStrategy.sendRedirect(httpServletRequest, httpServletResponse, "/user/home");
}
}
Он не хочет, чтобы перенаправить в/пользователя/дома. Это отображение запрос/пользователя/дома:
@RequestMapping(value = "/user/home", method = RequestMethod.GET)
public String userHome(HttpServletRequest request)
{
return "/user/home";
}
В соответствии с '.antMatchers («/user/** »). HasRole (« USER »). AnyRequest(). AllowAll()' у вас должен быть доступ к '/ user/home' как * USER *. После входа в систему какую роль вы получаете в _authentication_? –
Я получаю роль USER. Это не проблема. В моем WebSecurityConfig я изменил на это: .defaultSuccessUrl ("/ user/home", true) Он по-прежнему не работает. Но когда я перехожу на .defaultSuccessUrl («/ users/home», true) и меняю RequestMapping моего контроллера на «/ users/home», а в возвращаемом значении RequestMapping «/ user/home» он переходит в правильная страница. Но при этом он обходит всю безопасность, поскольку/пользователи не являются частью WebSecurityConfig. – Quentinb