Spring Framework를 사용하여 Java에서 JWT 인증을 구현하는 방법
우선, 몇 가지 종속성을 가져오겠습니다.
실제 구현을 시작하기 전에 프로젝트에서 다음 종속성을 가져오십시오.
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'
Spring Starter Web과 같은 API를 빌드하기 위한 기본 패키지가 있을 수 있습니다. Java 및 Spring Boot를 사용하여 API를 빌드하는 방법을 모르는 경우 다음 문서를 참조하세요. Building a Simple API with Java and Spring Boot
그리고 UserRepository가 이미 구현되어 있는지 확인하십시오. 그러나 H2를 사용하여 Java와 SQL 데이터베이스 간의 간단한 연결을 구현하는 방법을 모르는 경우 다음 문서를 읽으십시오. Implementing a Simple Database with Java, JPA, Hibernate and SQL
PasswordEncoder에 대한 빈 생성
Bean이 무엇인지 모르는 경우 다음 문서를 읽으십시오. What is a Java @Bean?
주 수업에 다음 코드를 붙여넣으십시오.
@Bean public BCryptPasswordEncoder bCryptPasswordEncoder() {
return new BCryptPasswordEncoder();
}
BCryptPasswordEncoder 인스턴스를 제공합니다.
자체 UserDetailsService 구현
따라서 사용자 이름과 암호로 인증한다고 가정하고 데이터베이스에서 검색할 기본 클래스와 메서드를 구현해야 합니다. 맞죠?
아래 코드를 따르십시오. 주석을 읽으려면 경계하십시오.
JWTAuthenticationFilter를 구현하자
우선, 우리의 인증은 기본 인증이 될 것입니다. 여기서 사용자 이름과 비밀번호를 제공하면 시스템에서 귀하가 누구인지 확인합니다.
이 클래스는 인증에 대한 답변과 같은 것을 제공하는 UsernameAndPasswordAuthenticationFilter를 구현하기 위해 개인적인 방식으로 일부 메서드를 다시 작성합니다.
댓글에 주의하십시오.
아래 코드를 따르세요:
<스크립트 아이디="gist-ltag"src="https://gist.github.com/EddieSCJ/cd0a4ab286bc3cea2c5d515690dc78b1.js"/>
이것은 사용자 이름과 비밀번호 데이터를 확인하는 역할을 하는 우리의 AuthenticationFilter입니다("로그인"을 실행하는 클래스라고 말할 수 있습니다).
JWTAuthorizationFilter를 구현하자
인증 필터가 데이터를 확인하고 확인하면 토큰을 확인하고 권한을 표시하는 것처럼 인증 필터가 요청을 담당합니다.
댓글에 주의하십시오.
파일 아래 팔로우:
<스크립트 아이디="gist-ltag"src="https://gist.github.com/EddieSCJ/7e129fb35177ea94fb52c484151ea46c.js"/>
마지막으로 WebSecurity 클래스
이것은 웹 계층과 상호 작용하는 클래스입니다. 여기에 cors 구성, 허용, 가입 리디렉션, 로그인 끝점 등을 정의하는 등이 있습니다.
댓글에 주의하십시오.
파일 아래를 따르십시오:
<스크립트 아이디="gist-ltag"src="https://gist.github.com/EddieSCJ/da4546ac9e54a3cad552427931e7697e.js"/>
여기서 끝낼 수 있지만 보너스로 로그인 기능을 테스트하는 테스트 클래스가 있습니다.
#보너스 - 테스트 임프
<스크립트 아이디="gist-ltag"src="https://gist.github.com/EddieSCJ/601f3989ac5cd6281966ce854e8d4bad.js"/>
감사합니다!!! <3, 여기에 좋아요를 남겨주세요!!
Reference
이 문제에 관하여(Spring Framework를 사용하여 Java에서 JWT 인증을 구현하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/eddiescj/how-to-implement-basic-authentication-in-java-with-spring-framework-2lh8텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)