Прежде всего, давайте импортируем Прежде всего, давайте импортируем некоторые зависимости
Прежде всего, давайте импортируем некоторые зависимости Перед началом реальной реализации, пожалуйста, попробуйте получить эти зависимости в вашем проекте:
compile group: 'com.google.code.gson', name: 'gson', version: '2.8.6' compile group: 'com.auth0', name: 'java-jwt', version: '3.10.3' compile group: 'org.springframework.security', name: 'spring-security-core', version: '5.1.5.RELEASE' compile group: 'org.springframework.security', name: 'spring-security-web', version: '5.1.5.RELEASE' compile group: 'org.springframework.security', name: 'spring-security-config', version: '5.1.5.RELEASE'
Возможно, у вас есть базовые пакеты для создания API, такого как Spring Starter Web, если вы не знаете, как создать API с помощью Java и Spring Boot, пожалуйста, прочтите следующую статью: Создание простого API с помощью Java и Spring Boot
И убедитесь, что у вас уже реализован UserRepository, но если вы не знаете, как реализовать простое соединение между java и любой базой данных SQL с помощью H2, пожалуйста, прочтите следующую статью: Реализация простой базы данных с помощью Java, JPA, Hibernate и SQL
Создание компонента для нашего PasswordEncoder
Если вы не знаете, что такое Bean, пожалуйста, прочтите следующую статью: Что такое Java @Bean?
Пожалуйста, в свой основной класс вставьте следующий код:
@Bean public BCryptPasswordEncoder bCryptPasswordEncoder() { return new BCryptPasswordEncoder(); }
Он предоставит нам экземпляр BCryptPasswordEncoder.
Внедрение нашего собственного сервиса пользовательских данных
Итак, предполагая, что мы будем проходить аутентификацию с помощью имени пользователя и пароля, мы должны реализовать класс и метод по умолчанию для поиска в базе данных, верно?
Следуйте приведенному ниже коду, пожалуйста, будьте внимательны, чтобы прочитать комментарии.
Давайте внедрим JWTAuthenticationFilter
Прежде всего, наша аутентификация будет представлять собой базовую аутентификацию, где вы вводите имя пользователя и пароль, и система проверяет, являетесь ли вы тем, за кого себя выдаете.
Этот класс перепишет некоторые методы персональным образом, чтобы реализовать ваш UsernameAndPasswordAuthenticationFilter, который предоставляет что-то вроде ответа на наш auth.
Не забывайте быть внимательными к комментариям. Следуйте приведенному ниже коду:
Это наш AuthenticationFilter, отвечающий за проверку данных имени пользователя и пароля (мы можем сказать, что это класс, который выполняет “login”)
Давайте внедрим фильтр авторизации JWT
Если Фильтр аутентификации проверяет и подтверждает данные, наш Фильтр авторизации отвечает за запрос, точно так же, как проверяет наш токен и показывает властям.
Не забывайте быть внимательными к комментариям. Следуйте приведенному ниже файлу:
Окончательно, класс веб-безопасности
Это класс, который взаимодействует с веб-уровнем, здесь у нас также есть конфигурация cors, разрешения, перенаправление регистрации, мы определяем конечную точку входа и т.д. и т.д. и т.д.
Не забывайте быть внимательными к комментариям. Следуйте приведенным ниже инструкциям по файлу:
Мы можем просто закончить здесь, но, в качестве бонуса, есть тестовый класс для проверки вашей функциональности входа в систему.
# Бонус – Тестовый Импл
Спасибо!!! НАСЛАЖДАЙТЕСЬ СТАТЬЕЙ <3, ОСТАВЬТЕ СВОЙ ЛАЙК ЗДЕСЬ, МИЛАЯ!!
Оригинал: “https://dev.to/eddiescj/how-to-implement-basic-authentication-in-java-with-spring-framework-2lh8”