Bom dia, seguindo a aula 03- Proteção com Spring Security ... não consigo permissão ao se logar : segue a codificação: SecurityConfigurations
package br.com.alura.forum.config.security;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.HttpMethod;
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.builders.WebSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
@EnableWebSecurity
@Configuration
public class SecurityConfigurations extends WebSecurityConfigurerAdapter {
@Autowired
private AutenticacaoService autenticacaoService;
//Configuração de autenticação (login, acesso)
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.userDetailsService(autenticacaoService).passwordEncoder(new BCryptPasswordEncoder());
}
//configurações de autorização parte de url, perfil e o que acessar
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.antMatchers(HttpMethod.GET, "/topicos").permitAll()
.antMatchers(HttpMethod.GET, "/topicos/*").permitAll()
.anyRequest().authenticated()
.and().formLogin();
}
//configurações de recursos estaticos, requisiçãoes de arquivos ( js, css, imagens, etc.)
@Override
public void configure(WebSecurity web) throws Exception {
}
// public static void main(String[] args) {
// System.out.println(new BCryptPasswordEncoder().encode("123456"));
// }
}
AutenticacaoService:
package br.com.alura.forum.config.security;
import java.util.Optional;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.security.core.userdetails.UsernameNotFoundException;
import org.springframework.stereotype.Service;
import br.com.alura.forum.modelo.Usuario;
import br.com.alura.forum.repository.UsuarioRepository;
@Service
public class AutenticacaoService implements UserDetailsService{
@Autowired
private UsuarioRepository repository;
@Override
public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
Optional<Usuario> usuario = repository.findByEmail(username);
if(usuario.isPresent()) {
return usuario.get();
}
throw new UsernameNotFoundException("Dados inválidos");
}
}
UsuarioRepository:
package br.com.alura.forum.repository;
import java.util.Optional;
import org.springframework.data.jpa.repository.JpaRepository;
import br.com.alura.forum.modelo.Usuario;
public interface UsuarioRepository extends JpaRepository<Usuario, Long>{
Optional<Usuario> findByEmail(String email);
}