Retornar registro de apenas um usuário SPRING BOOT

6 respostas
spring-bootmysqljava
V

Boa noite,

Tenho uma api que me retorna todos os resultado da base, porém gostaria de retornar apenas os registros que contém o id do usuário logado. Segue meu código:

Realiza uma busca geral (onde quero que busque apenas pelo login):

@GetMapping
    public ResponseEntity<?> listarPedidoPorProfessor() {
        List < Pedido > pedido = pedidoRepository.findAll();
        return ResponseEntity.ok(pedido);
    }

Minha classe repository:

public interface PedidoRepository extends JpaRepository<Pedido, Long> {
    @Query(value = "select * from alm_pedidos where id_professor = ?1", nativeQuery = true)
    List<Pedido> findByProfessor(String codigo);
}

Obrigado

6 Respostas

L

Você está utilizando spring security?

V

Ainda não fiz a implementação do security.

L

Então… se não tem segurança, quer dizer que ainda não tem usuário logado para ser usado.

V

@Lucas_Camara vou implementar o security. Me indicaria alguma vídeo aula para eu poder seguir? Encontrei apenas configuração mock:

@Override

    protected void configure(HttpSecurity http) throws Exception {

        http.csrf().disable().authorizeRequests()

        .antMatchers(AUTH_LIST).permitAll().anyRequest()

        .authenticated().and().formLogin().permitAll().and()

        .logout().logoutRequestMatcher(new AntPathRequestMatcher("/logout"));

    }

    @Override

    protected void configure(AuthenticationManagerBuilder auth) throws Exception{

        auth.inMemoryAuthentication()

                .withUser("andre").password("{noop}123").roles("ADMIN");

    }

Mas nesse caso meu projeto tem um front, e essa class retorna um html com uma tela pré definada…

L

Comece por esse link: https://spring.io/guides/gs/securing-web/

D

Boa noite!
Estou tendo esse mesmo problema. Já fiz a implantação do Spring security, mesmo assim está listado todos os objetos e eu queria somente que listasse os itens relacionados aquele usuário logado.

Criado 11 de abril de 2020
Ultima resposta 1 de jul. de 2022
Respostas 6
Participantes 3