[ 
https://issues.apache.org/jira/browse/HDDS-1119?focusedWorklogId=210566&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-210566
 ]

ASF GitHub Bot logged work on HDDS-1119:
----------------------------------------

                Author: ASF GitHub Bot
            Created on: 09/Mar/19 16:24
            Start Date: 09/Mar/19 16:24
    Worklog Time Spent: 10m 
      Work Description: xiaoyuyao commented on pull request #574: HDDS-1119. DN 
get OM certificate from SCM CA for block token validation.
URL: https://github.com/apache/hadoop/pull/574#discussion_r264005139
 
 

 ##########
 File path: 
hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/security/x509/certificate/client/DefaultCertificateClient.java
 ##########
 @@ -349,29 +441,49 @@ public X509Certificate queryCertificate(String query) {
   }
 
   /**
-   * Stores the Certificate  for this client. Don't use this api to add
-   * trusted certificates of other components.
+   * Stores the Certificate  for this client. Don't use this api to add trusted
+   * certificates of other s.
    *
-   * @param certificate - X509 Certificate
+   * @param pemEncodedCert - pem encoded X509 Certificate
+   * @param force - override any existing file
+   * @param isLocalIdentityCert - true if certificate belongs to the identity
+   * cert for this certificate client.
    * @throws CertificateException - on Error.
+   *
+   * Note: Certificate client can store certificates for other daemons as well.
+   * Local certificate refers to the certificate issued to this certificate
+   * client. This is stored along with public key and private key. Certificate
+   * of other daemons is stoed in sub dirs named after certificate serial id of
+   * certificate.
    */
   @Override
-  public void storeCertificate(X509Certificate certificate)
-      throws CertificateException {
+  public void storeCertificate(String pemEncodedCert, boolean force,
+      boolean isLocalIdentityCert) throws CertificateException {
     CertificateCodec certificateCodec = new CertificateCodec(securityConfig);
     try {
-      certificateCodec.writeCertificate(
-          new X509CertificateHolder(certificate.getEncoded()));
-    } catch (IOException | CertificateEncodingException e) {
+      Path basePath = securityConfig.getCertificateLocation();
+      String certName;
+      X509Certificate cert =
+          CertificateCodec.getX509Certificate(pemEncodedCert);
+      if (isLocalIdentityCert) {
+        certName = securityConfig.getCertificateFileName();
+      } else {
+        certName = String.format(CERT_FILE_NAME_FORMAT,
 
 Review comment:
   You should use Paths.get() the path format with hard coded path separator 
won't work across platforms.
 
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


Issue Time Tracking
-------------------

    Worklog Id:     (was: 210566)
    Time Spent: 2h  (was: 1h 50m)

> DN get OM certificate from SCM CA for block token validation
> ------------------------------------------------------------
>
>                 Key: HDDS-1119
>                 URL: https://issues.apache.org/jira/browse/HDDS-1119
>             Project: Hadoop Distributed Data Store
>          Issue Type: Sub-task
>            Reporter: Xiaoyu Yao
>            Assignee: Ajay Kumar
>            Priority: Major
>              Labels: pull-request-available
>          Time Spent: 2h
>  Remaining Estimate: 0h
>
> This is needed when the DN received block token signed by OM and it does not 
> have the certificate that OM.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org

Reply via email to