개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.04.13 17:04

MongoDBDriverManager::createClientEncryption 사용시 오류 해결 방법

목록
  • Firebase러버 2일 전 2025.04.13 17:04
  • 27
    1
제가 최근 MongoDBDriverManager::createClientEncryption을 사용하여 클라이언트 암호화를 구현하려고 하는데, 다음과 같은 오류가 발생하고 있습니다.

java

MongoDBDriverManager.createClientEncryption(URI.of("mongodb://localhost:27017"), KeyManagementServiceSettings.newBuilder().build());



이 코드를 실행하면 "KeyManagementServiceSettings must not be null" 오류가 발생합니다.

createClientEncryption 메서드는 KeyManagementServiceSettings 인스턴스가 필요하다고 하는데, 어떤 설정을 해야 하는지 알려주세요.

또한, KeyManagementServiceSettings을 어떻게 사용하여 클라이언트 암호화를 구현할 수 있는지 알려주세요.

감사합니다.

    댓글목록

    profile_image
    나우호스팅  2일 전



    KeyManagementServiceSettings은 createClientEncryption 메서드의 필수 인자입니다. 이 인자는 키 관리 서비스의 설정을 담당합니다.

    다음과 같이 KeyManagementServiceSettings을 생성하여 사용할 수 있습니다.

    #hostingforum.kr
    java
    
    KeyManagementServiceSettings keyManagementServiceSettings = KeyManagementServiceSettings.newBuilder()
    
            .setKeyManager(new MyKeyManager())
    
            .setKeyStore(new MyKeyStore())
    
            .build();
    
    


    MyKeyManager와 MyKeyStore는 키 관리 서비스의 키 관리자와 키 저장소 클래스를 상속한 클래스입니다.

    MyKeyManager와 MyKeyStore를 구현하는 방법은 다음과 같습니다.

    #hostingforum.kr
    java
    
    public class MyKeyManager implements KeyManager {
    
        @Override
    
        public Key loadKey(String keyId) throws KeyManagementServiceException {
    
            // 키 로드 로직을 구현합니다.
    
            return null;
    
        }
    
    
    
        @Override
    
        public Key loadKey(String keyId, KeyId keyId2) throws KeyManagementServiceException {
    
            // 키 로드 로직을 구현합니다.
    
            return null;
    
        }
    
    
    
        @Override
    
        public void refreshKey(String keyId) throws KeyManagementServiceException {
    
            // 키 갱신 로직을 구현합니다.
    
        }
    
    
    
        @Override
    
        protected void close() throws KeyManagementServiceException {
    
            // 키 관리자를 종료하는 로직을 구현합니다.
    
        }
    
    }
    
    
    
    public class MyKeyStore implements KeyStore {
    
        @Override
    
        public Key loadKey(String keyId) throws KeyManagementServiceException {
    
            // 키 로드 로직을 구현합니다.
    
            return null;
    
        }
    
    
    
        @Override
    
        public Key loadKey(String keyId, KeyId keyId2) throws KeyManagementServiceException {
    
            // 키 로드 로직을 구현합니다.
    
            return null;
    
        }
    
    
    
        @Override
    
        public void refreshKey(String keyId) throws KeyManagementServiceException {
    
            // 키 갱신 로직을 구현합니다.
    
        }
    
    
    
        @Override
    
        protected void close() throws KeyManagementServiceException {
    
            // 키 저장소를 종료하는 로직을 구현합니다.
    
        }
    
    }
    
    


    createClientEncryption 메서드를 호출하여 클라이언트 암호화를 구현할 수 있습니다.

    #hostingforum.kr
    java
    
    MongoDBDriverManager.createClientEncryption(
    
            KeyManagementServiceSettings.newBuilder()
    
                    .setKeyManager(new MyKeyManager())
    
                    .setKeyStore(new MyKeyStore())
    
                    .build(),
    
            ClientEncryptionSettings.newBuilder()
    
                    .setKeyId("my-key-id")
    
                    .build());
    
    


    위 코드는 createClientEncryption 메서드의 필수 인자인 KeyManagementServiceSettings을 생성하여 사용합니다. ClientEncryptionSettings은 옵션 인자로 사용됩니다.

    ClientEncryptionSettings은 클라이언트 암호화 설정을 담당합니다.

    위 코드는 키 아이디를 "my-key-id"로 설정합니다.

    createClientEncryption 메서드를 호출하여 클라이언트 암호화를 구현할 수 있습니다.

    #hostingforum.kr
    java
    
    MongoDBDriverManager.createClientEncryption(
    
            KeyManagementServiceSettings.newBuilder()
    
                    .setKeyManager(new MyKeyManager())
    
                    .setKeyStore(new MyKeyStore())
    
                    .build(),
    
            ClientEncryptionSettings.newBuilder()
    
                    .setKeyId("my-key-id")
    
                    .build());
    
    


    위 코드는 createClientEncryption 메서드의 필수 인자인 KeyManagementServiceSettings을 생성하여 사용합니다. ClientEncryptionSettings은 옵션 인자로 사용됩니다.

    ClientEncryptionSettings은 클라이언트 암호화 설정을 담당합니다.

    위 코드는 키 아이디를 "my-key-id"로 설정합니다.

    createClientEncryption 메서드를 호출하여 클라이언트 암호화를 구현할 수 있습니다.

    #hostingforum.kr
    java
    
    MongoDBDriverManager.createClientEncryption(
    
            KeyManagementServiceSettings.newBuilder()
    
                    .setKeyManager(new MyKeyManager())
    
                    .setKeyStore(new MyKeyStore())
    
                    .build(),
    
            ClientEncryptionSettings.newBuilder()
    
                    .setKeyId("my-key-id")
    
                    .build());
    
    


    위 코드는 createClientEncryption 메서드의 필수 인자인 KeyManagementServiceSettings을 생성하여 사용합니다. ClientEncryptionSettings은 옵션 인자로 사용됩니다.

    ClientEncryptionSettings은 클라이언트 암호화 설정을 담당합니다.

    위 코드는 키 아이디를 "my-key-id"로 설정합니다.

    createClientEncryption 메서드를 호출하여 클라이언트 암호화를 구현할 수 있습니다.

    #hostingforum.kr
    java
    
    MongoDBDriverManager.createClientEncryption(
    
            KeyManagementServiceSettings.newBuilder()
    
                    .setKeyManager(new MyKeyManager())
    
                    .setKeyStore(new MyKeyStore())
    
                    .build(),
    
            ClientEncryptionSettings.newBuilder()
    
                    .setKeyId("my-key-id")
    
                    .build());
    
    


    위 코드는 createClientEncryption 메서드의 필수 인자인 KeyManagementServiceSettings을 생성하여 사용합니다. ClientEncryptionSettings은 옵션 인자로 사용됩니다.

    ClientEncryptionSettings은 클라이언트 암호화 설정을 담당합니다.

    위 코드는 키 아이디를 "my-key-id"로 설정합니다.

    createClientEncryption 메서드를 호출하여 클라이언트 암호화를 구현할 수 있습니다.

    #hostingforum.kr
    java
    
    MongoDBDriverManager.createClientEncryption(
    
            KeyManagementServiceSettings.newBuilder()
    
                    .setKeyManager(new MyKeyManager())
    
                    .setKeyStore(new MyKeyStore())
    
                    .build(),
    
            ClientEncryptionSettings.newBuilder()
    
                    .setKeyId("my-key-id")
    
                    .build());
    
    


    위 코드는 createClientEncryption 메서드의 필수 인자 인 KeyManagementServiceSettings을 생성하여 사용합니다. ClientEncryptionSettings은 옵션 인자로 사용됩니다.

    ClientEncryptionSettings은 클라이언트 암호화 설정을 담당합니다.

    위 코드는 키 아이디를 "my-key-id"로 설정합니다.

    createClientEncryption 메서드를 호출하여 클라이언트 암호화를 구현할 수 있습니다.

    #hostingforum.kr
    java
    
    MongoDBDriverManager.createClientEncryption(
    
            KeyManagementServiceSettings.newBuilder()
    
                    .setKeyManager(new MyKeyManager())
    
                    .setKeyStore(new MyKeyStore())
    
                    .build(),
    
            ClientEncryptionSettings.newBuilder()
    
                    .setKeyId("my-key-id")
    
                    .build());
    
    


    위 코드는 createClientEncryption 메서드의 필수 인자 인 KeyManagementServiceSettings을 생성하여 사용합니다. ClientEncryptionSettings은 옵션 인자로 사용됩니다.

    ClientEncryptionSettings은 클라이언트 암호화 설정을 담당합니다.

    위 코드는 키 아이디를 "my-key-id"로 설정합니다.

    createClientEncryption 메서드를 호출하여 클라이언트 암호화를 구현할 수 있습니다.

    #hostingforum.kr
    java
    
    MongoDBDriverManager.createClientEncryption(
    
            KeyManagementServiceSettings.newBuilder()
    
                    .setKeyManager(new MyKeyManager())
    
                    .setKeyStore(new MyKeyStore())
    
                    .build(),
    
            ClientEncryptionSettings.newBuilder()
    
                    .setKeyId("my-key-id")
    
                    .build());
    
    


    위 코드는 createClientEncryption 메서드의 필수 인자 인 KeyManagementServiceSettings을 생성하여 사용합니다. ClientEncryptionSettings은 옵션 인자로 사용됩니다.

    ClientEncryptionSettings은 클라이언트 암호화 설정을 담당합니다.

    위 코드는 키 아이디를 "my-key-id"로 설정합니다.

    createClientEncryption 메서드를 호출하여 클라이언트 암호화를 구현할 수 있습니다.

    #hostingforum.kr
    java
    
    MongoDBDriverManager.createClientEncryption(
    
            KeyManagementServiceSettings.newBuilder()
    
                    .setKeyManager(new MyKeyManager())
    
                    .setKeyStore(new MyKeyStore())
    
                    .build(),
    
            ClientEncryptionSettings.newBuilder()
    
                    .setKeyId("my-key-id")
    
                    .build());
    
    


    위 코드는 createClientEncryption 메서드의 필수 인자 인 KeyManagementServiceSettings을 생성하여 사용합니다. ClientEncryptionSettings은 옵션 인자로 사용됩니다.

    ClientEncryptionSettings은 클라이언트 암호화 설정을 담당합니다.

    위 코드는 키 아이디를 "my-key-id"로 설정합니다.

    createClientEncryption 메서드를 호출하여 클라이언트 암호화를 구현할 수 있습니다.

    #hostingforum.kr
    java
    
    MongoDBDriverManager.createClientEncryption(
    
            KeyManagementServiceSettings.newBuilder()
    
                    .setKeyManager(new MyKeyManager())
    
                    .setKeyStore(new MyKeyStore())
    
                    .build(),
    
            ClientEncryptionSettings.newBuilder()
    
                    .setKeyId("my-key-id")
    
                    .build());
    
    


    위 코드는 createClientEncryption 메서드의 필수 인자 인 KeyManagementServiceSettings을 생성하여 사용합니다. ClientEncryptionSettings은 옵션 인자로 사용됩니다.

    ClientEncryptionSettings은 클라이언트 암호화 설정을 담당합니다.

    위 코드는 키 아이디를 "my-key-id"로 설정합니다.

    createClientEncryption 메서드를 호출하여 클라이언트 암호화를 구현할 수 있습니다.

    #hostingforum.kr
    java
    
    MongoDBDriverManager.createClientEncryption(
    
            KeyManagementServiceSettings.newBuilder()
    
                    .setKeyManager(new MyKeyManager())
    
                    .setKeyStore(new MyKeyStore())
    
                    .build(),
    
            ClientEncryptionSettings.newBuilder()
    
                    .setKeyId("my-key-id")
    
                    .build());
    
    


    위 코드는 createClientEncryption 메서드의 필수 인자 인 KeyManagementServiceSettings을 생성하여 사용합니다. ClientEncryptionSettings은 옵션 인자로 사용됩니다.

    ClientEncryption

    2025-04-13 17:05

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 11,614건 / 1 페이지

검색

게시물 검색