반응형
테스트 환경: 전자정부프레임워크 3.7 / SPRING 4.2.4
1. pom.xml 에 spring security dependency 추가
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-web</artifactId>
<version>4.2.3.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-core</artifactId>
<version>4.2.3.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-config</artifactId>
<version>4.2.3.RELEASE</version>
</dependency>
2. 암호화를 위해 context.xml 에 bean 객체 생성
<bean id="encoder" class="org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder" />
3. @Autowired BCryptPasswordEncoder
@Autowired
BCryptPasswordEncoder passwordEncoder;
4. 테스트
* BCryptPasswordEncoder 사용 메소드
- encode
패스워드 암호화.
같은 비밀번호를 인코딩해도 매번 다르게 인코딩 된 문자열 반환(반환 타입은 String)
- matches
인코딩되지 않은 패스워드와 인코딩된 패스워드 일치 여부 확인
사용시 matches(인코딩되지 않은 패스워드, 인코딩된 패스워드) 입력하며 반환 타입은 boolean
String testPw = "a123123123!"; //인코딩 전 비밀번호
String encoderPw1 = passwordEncoder.encode(testPw); //인코딩 된 비밀번호
String encoderPw2 = passwordEncoder.encode(testPw); // 같은 인코딩 값이 나오는지 확인하기 위함
//인코딩된 비밀번호 출력
System.out.println("== Password Encoder1 : " + encoderPw1);
System.out.println("== Password Encoder2 : " + encoderPw2);
String truePw = "a123123123!";
String falsePw = "asdasd";
//인코딩된 비밀번호와 matches()
System.out.println("== True Password Encoder1: " + passwordEncoder.matches(truePw, encoderPw1));
System.out.println("== False Password Encoder1 : " + passwordEncoder.matches(falsePw, encoderPw1));
System.out.println("== True Password Encoder2: " + passwordEncoder.matches(truePw, encoderPw2));
System.out.println("== False Password Encoder2 : " + passwordEncoder.matches(falsePw, encoderPw2));
5. 결과 console
== Password Encoder1 : $2a$10$cj5pT/Umi0hCS1x/NLEPCedLyV/wMHB2x78rGVCNqIkOnzMXgv6Ee
== Password Encoder2 : $2a$10$FuMsn7TlOgBacuY.19x8yuRgWR48hPhNEqcGMUgdY97lDVifqtuBC
== True Password Encoder1: true
== False Password Encoder1 : false
== True Password Encoder2: true
== False Password Encoder2 : false
반응형
'SPRING' 카테고리의 다른 글
[SPRING] 엑셀 양식에 데이터 삽입 후 다운로드 (Apache POI) (0) | 2023.01.30 |
---|---|
[SPRING] Interceptor 개념 및 사용법 (0) | 2022.08.16 |
[SPRING] @Component 어노테이션 간단 사용법 (0) | 2022.05.11 |
[SPRIING] component-scan 사용법 (available: expected at least 1 bean which qualifies as autowire candidate. 에러) (0) | 2022.03.31 |
[SPRING] MyBatis mapper.xml 수정시 서버 재시작없이 반영하기 (0) | 2022.03.28 |
댓글