Giter Site home page Giter Site logo

exemplo-clinica-spring-security's Introduction

API REST com Spring Boot e Spring Security usando JWT

Este é um projeto de API REST em Java usando Spring Boot para demonstrar como implementar autenticação e autorização stateless usando Spring Security com JSON Web Tokens (JWT). Além disso, o projeto inclui classes para representar usuários do tipo Médico e Paciente, ambos capazes de fazer login e acessar funcionalidades específicas de acordo com o seu perfil.

Funcionalidades

  • Implementação de autenticação/autorização stateless usando Spring Security com JWT;
  • Utilização de classes Medico e Paciente para representar diferentes tipos de usuários.

Pré-requisitos

  • Java 17 ou superior
  • Maven
  • MySQL (configurável no arquivo application.properties)
  • Postman ou ferramenta similar para testar os endpoints

Como executar

  1. Clone o repositório:

    git clone https://github.com/rcaneppele/exemplo-clinica-spring-security.git
    
  2. Navegue até o diretório do projeto:

    cd exemplo-clinica-spring-security
    
  3. Execute o aplicativo usando Maven:

    mvn spring-boot:run
    
  4. O aplicativo estará disponível em http://localhost:8080.

Endpoints

Login

  • POST /login
    • Corpo da requisição:
      {
        "login": "cpf do paciente ou crm do medico",
        "senha": "senha"
      }
    • Retorna um token JWT válido para autenticação futura.

Acesso restrito para Médicos

  • GET /medicos
    • Retorna informações específicas para usuários do tipo Médico.

Acesso restrito para Pacientes

  • GET /pacientes
    • Retorna informações específicas para usuários do tipo Paciente.

Banco de dados

A estrutura do banco de dados será criada automaticamente pelo Flyway, de acordo com as migrations localizadas em src/main/resources/db/migration.

Para fins de testes, acessa o banco de dados e execute os seguintes comandos SQL:

insert into usuarios(id, login, senha) values(1, '00011122233', '$2a$10$1g.8vUZgxS10V0FcORrGyOUTFroyioIPHyGSZWSQSNfe.DNQdU19C');
insert into pacientes(id, nome, email, cpf) values(1, 'Paciente beltrana', '[email protected]', '00011122233');

insert into usuarios(id, login, senha) values(2, '112233', '$2a$10$1g.8vUZgxS10V0FcORrGyOUTFroyioIPHyGSZWSQSNfe.DNQdU19C');
insert into medicos(id, nome, email, crm) values(2, 'Medico fulano', '[email protected]', '112233');

Será inserido um médico com CRM (login): 112233 e senha 123456. Também será inserido um paciente com CPF (login): 00011122233 e senha 123456

exemplo-clinica-spring-security's People

Contributors

rcaneppele avatar

Stargazers

Thiago Bianeck avatar Palloma Gualter avatar Kauê Matos avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.