db접속 정보 암호화 (1) | tomcat | JNDI | DataSource
[참조]
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
[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
tomcat DB 계정 정보 암호화
DB 계정 정보를 암호화하는 방법에 대해 소개합니다.
velog.io
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
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는 별개의 개념이었다.
일단..적용해보자.
tomcat DB 계정 정보 암호화
DB 계정 정보를 암호화하는 방법에 대해 소개합니다.
velog.io
[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
이 두개를 섞어야 할 것 같은데..