Главная страница
Навигация по странице:

  • набор фильтров сервлетов Что

  • Чем

  • Как мы можем добавить

  • Связи

  • Как работают каскады для

  • Rest- сервисы . Их преимущества и

  • он завязан на HTTP.

  • Форматы данных использующиеся в REST

  • Что такое responseBody, requestBody, ResponseEntity

  • Что такое AJAX/fetch

  • RestTemplate и его методы (печатать)

  • методы

  • Опишите процесс получения доступа

  • компоненты .

  • RestTemplate и его методы

  • Документ Microsoft Word (8). Spring security


    Скачать 28.3 Kb.
    НазваниеSpring security
    Дата03.10.2022
    Размер28.3 Kb.
    Формат файлаdocx
    Имя файлаДокумент Microsoft Word (8).docx
    ТипДокументы
    #712185

    • Spring security

    Это фреймворк, который позволят добавить аутентификацию и авторизацию в ваше веб-приложение., а так же обеспечивает защиту от распространенных атак в веб-приложение.

    Базируется на двух интерфейсах, которые определяют связь сущностей с секьюрностью: UserDetails и GrantedAuthority.

    UserDetails(Юзер детаилс) - то, что будет интерпретироваться системой как пользователь. loadUserByUsername(String username)

    GrantedAuthority(ГрантедАвторити) - сущность, описывающая права юзера.

    Аутентификация и авторизация должны на уровне фильтров до выполнения любой иной логики приложения.

    Сервлет — это класс, который умеет получать запросы от клиента и возвращать ему ответы

    набор фильтров сервлетов


    • Что такое авторизация, аутентификация.

    Аутентификацияпроверка подлинности пользователя путем сравнения введённого им пароля с паролем, сохраненным в базе данных

    Авторизацияпредоставление пользователю прав на выполнение определенных действий.

    • Чем отличается In Memory Authentication от basic Authentication?

    In-Memory Authentication хранение данных пользователей в оперативной памяти приложения.

    Basic Authentication представляет собой процедуру обмена конфиденциальной информацией (имя пользователя и пароль) для аутентификации пользователя.

    • Как мы можем добавить секьюрность к контроллеру?

    1. @Secured(секьюред) и @RolesAllowed(роллес алауд) – просто прописываем название ролей

    2. @PreAuthorize(пре ауторайз) и @PostAuthorize –(Spring Expression Language)



    • Связи таблиц many-to-many one-to-one.

    Один к одному (@OneToOne)

    Объект одной сущности можно сопоставить с одним объектом другой сущности

    (Одна строка из таблицы А может быть связана тольс одной строкой из таблицы б)

    Многие ко многим (@ManyToMany)

    одна строка из таблицы А может быть связана с множеством строк из таблицы В. В свою очередь одна строка из таблицы В может быть связана с множеством строк из таблицы А.


    • Как работают каскады для таблиц и какие они бывают?

    Каскадные типы используются для того, чтобы показать, как должны себя вести связанные сущности при использовании специфических методов(создание изи удаления сущности).

    Стандарт JPA подразумевает использование шести видов каскадности:

    1. PERSIST — операции сохранения будут происходить каскадно (для методов save() и persist()). То есть, если мы сохраняем сущность, связанную с другими сущностями, они также сохраняются в БД (если их ещё там нет)

    2. MERGE — операции обновления будут происходить каскадно (для метода merge())

    3. REMOVE — операции удаления происходят каскадно (метод remove())

    4. ALL — содержит сразу три каскадные операции PERSIST - MERGE - REMOVE

    5. Bootstrap.

    Bootstrap – это ФРЕИМВОРК ДЛЯ создания дизайна сайта. Включает набор готовых css(СИЭСЕС) + несколько часто используемых js решений.


    • Rest-сервисы. Их преимущества и недостатки.

    REST — набор правил описывающий то как как должен формироваться  клиен-серверный запрос с использованием HTTP протокола

    Пример ресурсного роутинга:

    1. GET /articles/ — возвращает все статьи

    2. GET /articles/new — форма для создания новой статьи

    3. POST /articles/ — создаёт новую статью

    4. GET /articles/1 — возвращает статью с идентификатором «1»

    5. GET /articles/1/edit — форма редактирования статьи

    6. PATCH или PUT /articles/1 обновляет статью с идентификатором «1»

    7. DELETE /articles/1 — удаляет статью с идентификатором «1»


    Недостатки

    Не существует стандарта реализации RESTful API.

    он завязан на HTTP. Спецификация HTML имеет ограничения и формы, отправляющие данные могут быть реализованы только через GET или POST.
    Достоинства

    Как видно, в архитектура REST очень проста в плане использования



    • Форматы данных использующиеся в REST-сервисах.

    Архитектура REST позволяет поставщикам API доставлять данные в различных форматах, таких как: простой текст, HTML, XML, JSON.


    • Что такое responseBody, requestBody, ResponseEntity

    ResponseEntity класс который позволяет сформировать http ответ.

    Он содержит тело ответа, код состояния, заголовки.

    @RequestBody – c его помощью можно получить тело запроса , как параметр с методе контроллера.

    Spring автоматически десериализует HttpRequest в тип Java, если указан соответствующий тип.

    @ResponseBody - В этот момент происходит обратная сериализация сущности в HttpResponse
    Что такое AJAX/fetch?

    С их помощью на javascript можно получать и отправлять сетевые запросы
    @RestController – это просто сокращенная запись для @Controller + @ResponseBody.
    RestTemplate и его методы

    (печатать)


    • Что такое HTTP, основные его методы?

    HTTP (англ. - Hyper Text Transfer Protocol) протокол передачи данных между клиентом и сервером

    Из чего состоит

    • стартовой строки, которая задает параметры запроса или ответа,

    • заголовка, который описывает сведения о передаче и другую служебную информацию.

    • тело (его не всегда можно встретить в структуре). Обычно в нем как раз лежат передаваемые данные. От заголовка тело отделяется пустой строкой.



    • Опишите процесс получения доступа, перечислите ключевые интерфейсы и компоненты


    Прежде чем попасть в контроллер, запрос проходит через цепочку фильтров.

      1. UsernamePasswordAuthenticationFilter получает имя и пароль и формирует объект Authentication.

      2. затем AuthenticationManager при помощи метода authenticate(аунтификейт) выполняет аутентификацию

      3. Если аутентификация не прошла то выбрасывается исключение BadCredentials.(бэд криденшиналс)

      4. Если аутентификация прошла возвращается объект Authentication

    ------------------------------

    В случае же успеха возвращается тоже объект Authentication,  но заполненный по-другому: в поле Principal объекта Authentication будет реальный пользователь в виде UserDetails (сюда перемещаются имя и пароль), поле Credentials обнуляется, а isAuthenticated() меняется с false на true.


    • RestTemplate и его методы


    RestTemplate это специальный клиент для отправки запросов в Spring. Он предоставляет удобные API для легкого вызова конечных точек RESTа в одну строку.




    Основные методы:

    • getForEntity -  +выполняет запрос GET и возвращает объект ResponseEntity;

    • getForObject -  аналогично getForEntity, но возвращает ресурс напрямую;

    • exchange -  выполняет указанный метод HTTP, такой как GET, POST, PUT и т. д., и возвращает объект ResponseEntity;

    • execute - аналогичен exchange методу, но требует дополнительных параметров: RequestCallback и ResultSetExtractor;

    • headForHeaders -  выполняет запрос HEAD и возвращает все заголовки;

    • optionsForAllow -  выполняет запрос OPTIONS и использует заголовок Allow;

    • delete -  удаляет ресурсы по указанному URL-адресу с помощью метода HTTP DELETE;

    • put -  обновляет ресурс для заданного URL-адреса с помощью метода HTTP PUT;

    • postForObject -  создает новый запрос с использованием метода HTTP POST и возвращает сущность;

    • postForLocation -  создает новый запрос с использованием метода HTTP POST и возвращает его расположение;


    написать администратору сайта