API Usuários

Status:

Aguardando requisição...

Body:

Aguardando requisição...

Controller - UserController.java


package com.exemplo.apiusuarios.controller;

import com.exemplo.apiusuarios.model.User;
import com.exemplo.apiusuarios.repository.UserRepository;

import jakarta.annotation.security.PermitAll;
import jakarta.annotation.security.RolesAllowed;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@RequestMapping("/api/usuarios")
public class UserController {

    private final UserRepository repository;

    public UserController(UserRepository repository) {
        this.repository = repository;
    }

    @PermitAll
    @GetMapping
    public List<User> listar() {
        return repository.findAll();
    }

    @RolesAllowed("ADMIN")
    @PostMapping
    public User criar(@RequestBody User user) {
        return repository.save(user);
    }
}
  

Configuração de Segurança - SecurityConfig.java


package com.exemplo.apiusuarios.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.method.configuration.EnableMethodSecurity;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.web.SecurityFilterChain;

@Configuration
@EnableMethodSecurity(jsr250Enabled = true)
public class SecurityConfig {

    @Bean
    public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
        http
            .csrf().disable()
            .authorizeHttpRequests(auth -> auth
                .anyRequest().authenticated()
            )
            .httpBasic();

        return http.build();
    }
}