Giter Site home page Giter Site logo

vkinternships2024spring's Introduction

Прокси сервер на Spring

(author: Качмар Евгений Миронович)

В данном тестовом задании необходимо было написать прокси сервер, который транслирует запросы пришедшие к нему на https://jsonplaceholder.typicode.com/guide/.

При этом:

  • запросы кэшируются при помощи LoadingCache из небезызвестной библиотеки Guava.
  • ведется логирование обращений к прокси серверу на h2 database.
  • имеются необходимые роли (ROLE_ADMIN, ROLE_POST, ROLE_USER, ROLE_ALBUMS)

Написаны тесты проверяющие как

  • работает авторизация пользователей с какой-то ролью.
  • логируются действия пользователя.
  • работают другие запросы, кроме get

Аудиты записываются, только в том случае, если они идут в сеть и берут json.

Можно записывать их и тогда, когда они тыкаются в LoadingCache, но я решил, что лучше трекать наличие редиректа на https://jsonplaceholder.typicode.com/guide/. Чем просто смотреть сколько обращений было к нашему прокси серверу.

При этом с url'ов /audits/** не записываются в бд, это можно сделать, добавив функцию RedirectionService#auditTracking в соответствующие обработчики, если это необходимо.

Про тесты.

Чтобы корректно работал DBTest нужно запустить CreateTable, для инициализации таблички audits в h2 database.

Так же создан DestructTable, который удалит таблицу audits, если это необходимо.

vkinternships2024spring's People

Watchers

Eugene Kachmar 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.