Olá Rafael, segue meus arquivos:
@Override
public void configure(WebSecurity web) throws Exception {
web.ignoring()
.antMatchers("/assets/**", "/fonts/**", "/global/**", "/imagens/**", "/usuario/**");
}
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.antMatchers("/", "/**", "/fotos/**").hasAnyAuthority("VISITANTE", "ADMIN", "ASSINANTE")
.anyRequest().authenticated()
.and()
.formLogin()
.loginPage("/login")
.permitAll()
.and()
.logout()
.logoutSuccessUrl("/login")
.logoutRequestMatcher(new AntPathRequestMatcher("/logout"))
.invalidateHttpSession(true)
.deleteCookies("JSESSIONID")
.and()
.exceptionHandling().accessDeniedPage("/denied");
}
o controller para o login:
@RequestMapping(value = "/login", method = RequestMethod.GET)
public ModelAndView login(Model model, String error, String logout) {
if (error != null)
model.addAttribute("error", "Login inválido, senha ou nome do usuário não confere.");
if (logout != null)
model.addAttribute("message", "Você foi deslogado com sucesso");
return new ModelAndView("/login", "usuarioVar", model);
}
@RequestMapping(value = "/logout", method = RequestMethod.POST)
public String logout(){
return "redirect:/login";
}
@RequestMapping(value = "/denied", method = RequestMethod.GET)
public ModelAndView acessoNegado(Model model){
model.addAttribute("erro", "403");
model.addAttribute("erroAdvise", "ACESSO NEGADO!");
model.addAttribute("mensagem", "Você não tem permissão para acessar essa área.");
return new ModelAndView("error", "mensage", model);
}
usuarioLogado que extende user:
public class UsuarioLogado extends User{
private Usuario usuario;
public UsuarioLogado(Usuario usuario) {
super(
usuario.getEmail(),
usuario.getSenha(),
AuthorityUtils.createAuthorityList(usuario.getPerfil().toString()));
this.usuario = usuario;
}
public Perfil getPerfil(){
return usuario.getPerfil();
}
public Long getId(){
return usuario.getId();
}
public String getNome(){
return usuario.getNome();
}
}
usuarioDetailsService:
@Service
public class UsuarioLogadoDetailService implements UserDetailsService {
private static final Logger LOG = Logger.getLogger(UsuarioLogadoDetailService.class);
@Autowired
private UsuarioService service;
public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
Usuario usuario;
try {
usuario = service.findByEmail(username);
LOG.info("Usuário encontrado (" + username + ").");
} catch (Exception ex){
LOG.error("Usuário não encontrado (" + username + ").");
throw new UsernameNotFoundException("Usuário " + username + " não encontrado!");
}
return new UsuarioLogado(usuario);
}
}
se precisar dos outros me fala, e obrigado por enquanto!