... | @@ -28,25 +28,7 @@ |
... | @@ -28,25 +28,7 @@ |
|
<img src="http://www.tools.ages.pucrs.br/EasyWork/Wiki/raw/master/7.%20arquitetura/Microservices%20Diagram%20Easywork.png" alt="MICROSERVICES_DIAGRAM"/>
|
|
<img src="http://www.tools.ages.pucrs.br/EasyWork/Wiki/raw/master/7.%20arquitetura/Microservices%20Diagram%20Easywork.png" alt="MICROSERVICES_DIAGRAM"/>
|
|
<br><br>
|
|
<br><br>
|
|
|
|
|
|
## 7.5 Arquitetura Não Funcional
|
|
## 7.5 Segurança
|
|
|
|
|
|
***TODO***
|
|
|
|
<br><br>
|
|
|
|
|
|
|
|
## 7.6 Análise dos princípios SOLID
|
|
|
|
|
|
|
|
#### Single Responsibility Principle:
|
|
|
|
O projeto possui três microsserviços separados em características macro: autenticação, pesquisas e respostas.
|
|
|
|
Cada microsserviço possui pacotes específicos para segurança, modelo de dados, comunicação com o banco de dados, modelo de saída, controladores e serviços.
|
|
|
|
Os controladores estão definidos conforme as rotas disponibilizadas, implementam um método para cada rota específica e delegam o processamento para os métodos de serviço.
|
|
|
|
|
|
|
|
#### Open Closed Principle, Liskov Substitution Principle, Interface Segregation Principle, Dependency Inversion Principle:
|
|
|
|
O projeto possui uma lógica concisa, direta e enxuta, logo suas classes não precisam de adptações, porém podem ser estendidas quando necessário.
|
|
|
|
Novas rotas e serviços podem ser facilmente criados com base nos já disponibilizados, sendo necessário apenas definição dos endpoints e da regra de negócio.
|
|
|
|
O projeto se vale de diversas abstrações, interfaces e anotações providas pelo framework Spring e outros terceiros, assim trata-se de uma implementação que segue boas práticas consolidadas no mercado, que possui fácil manutenção e extensão, e que pratica grande reúso.
|
|
|
|
<br><br>
|
|
|
|
|
|
|
|
## 7.7 Segurança
|
|
|
|
A segurança do projeto foi implementada utilizando a dependência <a href="https://spring.io/projects/spring-security">Spring Security</a> e a autenticação utilizando <a href="https://jwt.io/>jsonwebtoken </a>. Funcionalmente a segurança é implementada da seguinte forma:
|
|
A segurança do projeto foi implementada utilizando a dependência <a href="https://spring.io/projects/spring-security">Spring Security</a> e a autenticação utilizando <a href="https://jwt.io/>jsonwebtoken </a>. Funcionalmente a segurança é implementada da seguinte forma:
|
|
|
|
|
|
- A rota de cadastro da api de autenticação permite registrar usuários com no mínimo cinco informações nome completo, usuário, e-mail, senha e papel (name, username, email, password e role).
|
|
- A rota de cadastro da api de autenticação permite registrar usuários com no mínimo cinco informações nome completo, usuário, e-mail, senha e papel (name, username, email, password e role).
|
... | | ... | |