|
720 | 720 |
|
721 | 721 | (defn stream-content-to-file
|
722 | 722 | [^String cert-inventory ^String entry ^BufferedWriter writer]
|
723 |
| - (log/trace (i18n/trs "Begin append to inventory file.")) |
724 |
| - (let [copy-buffer (CharBuffer/allocate buffer-copy-size)] |
725 |
| - (try |
726 |
| - (with-open [^BufferedReader reader (io/reader cert-inventory)] |
727 |
| - ;; copy all the existing content |
728 |
| - (loop [read-length (.read reader copy-buffer)] |
729 |
| - ;; theoretically read can return 0, which means try again |
730 |
| - (when (<= 0 read-length) |
731 |
| - (when (pos? read-length) |
732 |
| - (.write writer (.array copy-buffer) 0 read-length)) |
733 |
| - (.clear copy-buffer) |
734 |
| - (recur (.read reader copy-buffer))))) |
735 |
| - (catch FileNotFoundException _e |
736 |
| - (log/trace (i18n/trs "Inventory file not found. Assume empty."))) |
737 |
| - (catch Throwable e |
738 |
| - (log/error e (i18n/trs "Error while appending to inventory file.")) |
739 |
| - (throw e)))) |
740 |
| - (.write writer entry) |
741 |
| - (.flush writer) |
742 |
| - (log/trace (i18n/trs "Finish append to inventory file. "))) |
| 723 | + (log/trace (i18n/trs "Begin append to inventory file.")) |
| 724 | + (let [copy-buffer (CharBuffer/allocate buffer-copy-size)] |
| 725 | + (try |
| 726 | + (with-open [^BufferedReader reader (io/reader cert-inventory)] |
| 727 | + ;; copy all the existing content |
| 728 | + (loop [read-length (.read reader copy-buffer)] |
| 729 | + ;; theoretically read can return 0, which means try again |
| 730 | + (when (<= 0 read-length) |
| 731 | + (when (pos? read-length) |
| 732 | + (.write writer (.array copy-buffer) 0 read-length)) |
| 733 | + (.clear copy-buffer) |
| 734 | + (recur (.read reader copy-buffer))))) |
| 735 | + (catch FileNotFoundException _e |
| 736 | + (log/trace (i18n/trs "Inventory file not found. Assume empty."))) |
| 737 | + (catch Throwable e |
| 738 | + (log/error e (i18n/trs "Error while appending to inventory file.")) |
| 739 | + (throw e)))) |
| 740 | + (.write writer entry) |
| 741 | + (.flush writer) |
| 742 | + (log/trace (i18n/trs "Finish append to inventory file. "))) |
743 | 743 |
|
744 | 744 |
|
745 | 745 | (schema/defn ^:always-validate
|
|
792 | 792 | * $S = The distinguished name of the cert's subject."
|
793 | 793 | [cert :- Certificate
|
794 | 794 | {:keys [inventory-lock inventory-lock-timeout-seconds] :as settings} :- CaSettings]
|
795 |
| - (common/with-safe-write-lock inventory-lock inventory-lock-descriptor inventory-lock-timeout-seconds |
796 |
| - (write-cert-to-inventory-unlocked! cert settings))) |
| 795 | + (common/with-safe-write-lock inventory-lock inventory-lock-descriptor inventory-lock-timeout-seconds |
| 796 | + (write-cert-to-inventory-unlocked! cert settings))) |
797 | 797 |
|
798 | 798 | (schema/defn is-subject-in-inventory-row? :- schema/Bool
|
799 | 799 | [cn-subject :- utils/ValidX500Name
|
800 | 800 | [_serial _not-before _not-after row-subject] :- [schema/Str]]
|
801 |
| - ;; row subject always starts with a slash, so drop it. |
802 |
| - (if (some? row-subject) |
803 |
| - (= (subs row-subject 1) cn-subject) |
804 |
| - false)) |
| 801 | + ;; row subject always starts with a slash, so drop it. |
| 802 | + (if (some? row-subject) |
| 803 | + (= (subs row-subject 1) cn-subject) |
| 804 | + false)) |
805 | 805 |
|
806 | 806 | (schema/defn is-not-expired? :- schema/Bool
|
807 | 807 | [now :- DateTime
|
|
831 | 831 | (if (fs/exists? cert-inventory)
|
832 | 832 | (with-open [inventory-reader (io/reader cert-inventory)]
|
833 | 833 | (let [inventory-rows (map extract-inventory-row-contents (line-seq inventory-reader))
|
834 |
| - cn-subject (utils/cn certname)] |
| 834 | + cn-subject (utils/cn certname)] |
835 | 835 | (some? (some (partial is-subject-in-inventory-row? cn-subject) inventory-rows))))
|
836 | 836 | (do
|
837 | 837 | (log/debug "Unable to find inventory file {0}" cert-inventory)
|
|
852 | 852 | (doall
|
853 | 853 | (->>
|
854 | 854 | (line-seq inventory-reader)
|
855 |
| - (map extract-inventory-row-contents ) |
| 855 | + (map extract-inventory-row-contents) |
856 | 856 | (filter (partial is-expired? now))
|
857 | 857 | (map first)
|
858 | 858 | ;; assume serials are base 16 strings
|
|
2465 | 2465 | (write-cert-to-inventory-unlocked! signed-cert ca-settings)
|
2466 | 2466 | (write-cert signed-cert (path-to-cert signeddir subject))
|
2467 | 2467 | (delete-certificate-request! ca-settings subject)
|
| 2468 | + (log/info (i18n/trs "Signed CSR for {0}" subject)) |
2468 | 2469 | ;; success case, add the host to the set of signed results
|
2469 | 2470 | :signed))
|
2470 | 2471 | (catch Throwable e
|
2471 |
| - (log/debug e (i18n/trs "Failed in bulk signing for entry {0}" subject)) |
| 2472 | + (log/error e (i18n/trs "Failed in bulk signing for entry {0}" subject)) |
2472 | 2473 | ;; failure case, add the host to the set of not signed results
|
2473 | 2474 | :signing-errors)))
|
2474 | 2475 |
|
|
0 commit comments