1. 모듈 설정

 

1-1) 메이븐 레포지토리 -> spring security 검색

-Spring Security Core 

-Spring Security Config

두 가지를 사용하며 pom.xml에 추가

 

=====properties : 메이븐이 적용된 프로젝트에서 공통적으로 
사용할 버전 또는 설정값 정보를 작성하는 태그=========
<properties>
<java-version>1.8</java-version>
<org.springframework-version>5.2.10.RELEASE</org.springframework-version>
<org.aspectj-version>1.9.4</org.aspectj-version>
<org.slf4j-version>1.7.25</org.slf4j-version>
</properties>

 

별 이슈없으면 properties로 적용해놓은것과 일치하도록  모듈 버젼에도 ${org.springframework-version} 입력한다.

 

----메이븐에서 설정 문제가 자주 나므로 혹시 모르니 추가----

         <!-- 메이븐 구성 문제로 인한 pom.xml 문제 해결 -->
         <plugin>
            <artifactId>maven-war-plugin</artifactId>
            <version>3.2.2</version>
         </plugin>

 

 

1-2) pom.xml 추가 후 설정 관련 resource 폴더에 spring-security.xml 생성

 

---생성 후 namespace 탭에서 security 체크한다

---beans 내부에 작성한다

<bean id="bCryptPasswordEncoder"
class="org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder" />

(BCrypt클래스의 경로이다)

 

1-3) web.xml로 이동해서 구문을 추가한다

<context-param> 에 <param-value>안에 classpath:spring/appServlet/spring-security.xml

 

서버가 시작하면 web.xml 제일먼저 -> 그중 param-value 읽어들임

-> spring-security를 등록했으므로 그 안의 bean 읽어 스프링이 객체 관리 -> DI 사용 가능해짐

 

 

2. 사용

2-1 객체 DI

@Autowired
private BCryptPasswordEncoder encoder;
//Bean으로 등록된 BCryptPasswordEncoder 객체를 의존성 주입(DI)

 

2-2 암호화 진행

encoder.encode(문자열) => 암호화 문자열 반환

encoder.matches(원본 문자열 , 암호화 된 문자열 ) => 원본과 암호화문자가 일치하는지 true / false

 

 

SHA-512는 매번 같은 암호화 문자열이 반환되는 문자가 생성되는 문제가 있는데 반해

Bcrypt 암호화는 매번 다른 문자열이 반환되고 확인해낼 수 있다

 

+ Recent posts