Olá, Pessoal!
Estou com um problema e gostaria de contar com a valiosa ajuda de vocês para resolvê-lo:
Ao fazer login na minha aplicação preciso ser encaminhando para uma página de listagem de catálogos. O processo de login em si está ok, porém, esse encaminhamento não acontece automaticamente: a página de listagem só está sendo exibida se for informada a sua url diretamente no browser e pressionada a tecla ENTER.
Seguem alguns códigos desenvolvidos até aqui:
SegurancaController.java
//package e imports omitidos
@Controller
public class SegurancaController {
@GetMapping("/entrar")
public String realizarLogin(@AuthenticationPrincipal Usuario usuario) {
if (usuario != null) {
int usuarioId = (int) usuario.getId();
return "redirect:/usuarios/" + usuarioId + "/catalogos/listar";
} else
return "entrar";
}
}
CatalogoController.java
//package e imports omitidos
@Controller
@RequestMapping("usuarios/{usuarioId}/catalogos")
public class CatalogoController {
//...
@GetMapping("/listar")
public ModelAndView listar(@PathVariable("usuarioId") long usuarioId, ModelMap model) {
model.addAttribute("catalogos", catalogoService.recuperarPorUsuario(usuarioId));
model.addAttribute("usuarioId", usuarioId);
return new ModelAndView("/catalogo/list", model);
}
}
SecurityConfig.java
//package e imports omitidos
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Autowired
private UserService userDetailsService;
@Autowired
private PasswordEncoder passwordEncoder;
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.authenticationProvider(authenticationProvider());
}
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers("/usuarios/cadastro", "/usuarios/salvar").permitAll()
.anyRequest().authenticated()
.and()
.formLogin()
.loginPage("/entrar")
.permitAll();
}
@Bean
public DaoAuthenticationProvider authenticationProvider() {
DaoAuthenticationProvider provider = new DaoAuthenticationProvider();
provider.setPasswordEncoder(passwordEncoder);
provider.setUserDetailsService(userDetailsService);
return provider;
}
@Override
public void configure(WebSecurity web) throws Exception {
web.ignoring().antMatchers("/css/**", "/webjars/**");
}
}
Desde já agradeço a todos que estiverem dispostos a ajudar.
Obrigado!
