Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 |
Tags
- 어노테이션
- Java #JDBC #Mybatis #동적SQL
- List데이터조회
- JavaScript #자바스크립트 #복습 #배열 #Array
- 페이징처리예제
- Java
- Java #Web #공부 #복습 #Servlet #서블릿 #포워드 #sendRedirect #dispatcher
- 스프링
- 데이터조회예제
- springframework
- fremework
- WEB
- 데이터베이스 #DataBase #Oracle #DB #DataBase개요
- 특징및기본구조
- 데이터매핑
- 정리
- mybatis
- 서블릿기초 #servlet #java #webprogramming
- 프레임워크
- 동적sql
- 예제
- mybatis자료형 #참고자료
- JavaScript #인라인 #인터널 #익스터널 #데이터입출력
- JavaScript #자바스크립트 #선택자 #HTML태그접근 #JS
- Spring
- Java #자바 #인터페이스 #implements #다형성 #interface #복습 #정리 #나만의공부
- 복습
- Java #자바 #초보개발자 #다형성 #동적바인딩 #instanceof #학습 #요약정리 #복습
- JavaScript #예제 #복습 #Web #웹 #개발자가되고파ㅜㅜ
- JavaScript #선언적함수 #익명함수 #화살표함수 #함수선언방법 #복습
Archives
- Today
- Total
개발군싹
[Spring]Spring Security 암호화 본문
Spring에서의 암호화 (SpringSecurity)
mvnrepository → Spring Security Core, Web, Config 설치
security-context.xml 생성 → web.xml → context-param에 등록
⇒ Web Load 시 security-context.xml 파일이 로드된다.
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:security="http://www.springframework.org/schema/security"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-5.8.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd">
<!-- 패스워드 암호화를 제공하는 클래스를 빈으로 등록하기 -->
<bean id="bcryptPassword" class="org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder"/>
</beans>
➡️ 암호화
- BCryptPasswordEncoder클래스가 제공하는 메소드를 이용해서 단방향 암호화하기 - encode()메소드를 이용
MemberController.java
private final BCryptPasswordEncoder passwordEncoder; //bean으로 등록 객체
@RequestMapping("/enrollMemberEnd.do")
public String enrollMemberEnd(Member m, Model model) {
//BCryptPasswordEncoder클래스가 제공하는 메소드를 이용해서 단방향 암호화하기
//encode()메소드를 이용
String oriPw = m.getPassword();
String encPw = passwordEncoder.encode(oriPw);
System.out.println(oriPw);
System.out.println(encPw);
m.setPassword(encPw);
int result = service.insertMember(m);
if(result>0) {
model.addAttribute("msg","회원가입완료");
model.addAttribute("loc","/");
}else {
model.addAttribute("msg","회원가입실패");
model.addAttribute("loc","/");
}
return "common/msg";
}

➡️ 암호화된 비밀번호를 이용하여 로그인 기능 구현 시 패스워드 일치여부 확인
- 비밀번호 일치여부를 확인하기 위해서는 BCcryptPasswordEncoder클래스가 제공하는 matchs() 메소드 이용
- matchs("원본패스워드", "암호화패스워드") => true / false 반환
Member m = service.selectMemberById(userId);
if(m!=null && passwordEncoder.matches(password,m.getPassword())) {
//로그인 성공
model.addAttribute("loginMember", m);
}
'Spring' 카테고리의 다른 글
| [Spring]Hibernate? (Hibernate-validator document 참고) (0) | 2023.12.13 |
|---|---|
| [Spring]MyBatis 연결/등록하기 (0) | 2023.12.12 |
| [Spring] 요청 데이터 매개변수를 이용한 데이터 맵핑 예제 (0) | 2023.12.10 |
| [Spring]@RequestMapping() (1) | 2023.12.10 |
| [Spring]Spring Bean? (0) | 2023.12.07 |