차근차근/Spring

db접속 정보 암호화 (1) | tomcat | JNDI | DataSource

예쁜꽃이피었으면 2022. 6. 8. 12:18
더보기

[참조]

https://go-coding.tistory.com/76

 

[JAVA] JNDI란?

JNDI란? 회사에서 개발환경을 세팅하다가 JNDI를 설정할 일이 있었다. 처음에는 JNDI가 뭐지? 생각하고 있다가 이것 저것 알아보니 매우 중요한 기술인것을 알고 내 나름대로 정리해본다. JNDI(Java Nam

go-coding.tistory.com

https://java117.tistory.com/14

 

Jsp&Servlet:: JNDI란? , 이클립스 톰캣 DataSource 설정방법

JNDI란? 실제 웹 어플리케이션에서 ConnectionPool 객체를 구현할 때는 Java SE에서 제공하는 javax.sql.DataSource 클래스를 이용한다. 그리고 웹 어플리케이션실행시 톰캣이 만들어 놓은 ConnectionPool 객체에.

java117.tistory.com

https://ynzu-dev.tistory.com/entry/Tomcat-JNDI-%EC%A0%95%EB%B3%B4-%EC%95%94%ED%98%B8%ED%99%94DB%EC%A0%95%EB%B3%B4-url-username-passowrd-KDF-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EC%9D%B4%EC%9A%A9

 

[Tomcat] JNDI 정보 암호화(DB정보 : url, username, passowrd) / KDF 알고리즘 이용

1. url, username, password를 encrypt 한다. KDFEncrypted.java import java.security.MessageDigest; import javax.crypto.Cipher; import javax.crypto.spec.IvParameterSpec; import javax.crypto.spec.Secret..

ynzu-dev.tistory.com

https://velog.io/@ruddms936/tomcat-DB-%EA%B3%84%EC%A0%95-%EC%A0%95%EB%B3%B4-%EC%95%94%ED%98%B8%ED%99%94

 

tomcat DB 계정 정보 암호화

DB 계정 정보를 암호화하는 방법에 대해 소개합니다.

velog.io

https://atoz-develop.tistory.com/entry/Tomcat-%EC%84%9C%EB%B2%84-DataSource-%EC%84%A4%EC%A0%95-%EB%B0%A9%EB%B2%95-JNDI

 

Tomcat 서버 DataSource 설정 방법 (+JNDI)

환경 정보 IntelliJ IDEA 2019.3 Ultimate, Amazon Corretto 11, Tomcat 9, JDBC 4.2, 의존성 관리 환경 X Tomcat 서버 DataSource 설정 방법 (+JNDI) ❕ 포스트 상단에는 DataSource, JNDI의 이론적인 내용이 포..

atoz-develop.tistory.com

https://mkil.tistory.com/425

 

tomcat JDBC 설정방법 + Spring Datasource 설정방법(with Tomcat)

java.sql.SQLException: Cannot create JDBC driver of class '' for connect URL 'null' --> JDBC 연결을 못 찾는것. 어딘가 설정이 잘 못 되었다. Tomcat8 JDBC 설정방법 tomcat 설정파일은 Eclipse에서도 설정..

mkil.tistory.com

 

 


 

 

 

JNDI (Java Naming and Directory Interface)

JNDI란

- JNDI는 디렉터리 서비스에서 제공하는 데이터 및 객체를 발견(discover)하고 참고(lookup) 하기 위한 자바 API

- 필요한 자원을 키/값으로 저장한 후 필요할 때 키를 이용해 값을 얻는 방법 

 

JNDI사용 이유

1) 개발을 한 사람과 실제 서비스를 운영하는 Admin은 다른 경우가 많기 때문에 소스 레벨에서 설정되어 있는 것보다 WAS에서 설정되어 있는 것을 선호한다.
2) 또한 WAS에 여러 개의 웹 애플리케이션을 올려서 사용하기 때문에 WAS에서 한 번에 설정해 주는 것이 자원낭비를 줄일 수 있습니다.
3) 또한 장애가 나거나 성능이 정상적이지 못하면 다른 한 서버가 대신 일을 해줄 수 있습니다.
-> 정리하자면 운영, 관리, 최적화 문제 대처에 다양한 이점이 있기 때문에 JNDI를 사용한다.

 

JNDI 사용 예

-  웹 브라우저에서 name/value쌍으로 전송한 후 서블릿에서 getParameter(name)로 값을 가져올 때

- 해시맵이나 해시테이블에 키/값으로 저장한 후 키를 이용해 값을 가져올 때

- 웹 브라우저에서 도메인네임으로 DNS서버에 요청할 경우 도메인 네임에 대한 IP주소를 가져올 때

 

 

DataSource

DataSource는 DriverManager를 통해 DB 커넥션을 얻는 것 보다 더 좋은 기법을 제공한다.
✔ 첫째, DataSource는 서버에서 관리하기 때문에 DB나 JDBC 드라이버가 변경이 수월하다.
✔ 둘째, Connection, Statement 객체를 pooling할 수 있으며 분산 트랜잭션을 다룰 수 있다. (자체적으로 Connection Pool 기능을 구현)

 

 


JNDI가 접속정보를 암호화 하는 역할이라고 생각했는데

찾아보니 암호화와 JNDI는 별개의 개념이었다.

일단..적용해보자.

https://velog.io/@ruddms936/tomcat-DB-%EA%B3%84%EC%A0%95-%EC%A0%95%EB%B3%B4-%EC%95%94%ED%98%B8%ED%99%94

 

tomcat DB 계정 정보 암호화

DB 계정 정보를 암호화하는 방법에 대해 소개합니다.

velog.io

https://ynzu-dev.tistory.com/entry/Tomcat-JNDI-%EC%A0%95%EB%B3%B4-%EC%95%94%ED%98%B8%ED%99%94DB%EC%A0%95%EB%B3%B4-url-username-passowrd-KDF-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EC%9D%B4%EC%9A%A9

 

[Tomcat] JNDI 정보 암호화(DB정보 : url, username, passowrd) / KDF 알고리즘 이용

1. url, username, password를 encrypt 한다. KDFEncrypted.java import java.security.MessageDigest; import javax.crypto.Cipher; import javax.crypto.spec.IvParameterSpec; import javax.crypto.spec.Secret..

ynzu-dev.tistory.com

이 두개를 섞어야 할 것 같은데..

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

반응형