@@ -41,7 +41,7 @@ sign(Message) ->
4141
4242sign (Message , ExtraSecret ) ->
4343 [HashAlgorithm | _ ] = couch_util :get_config_hash_algorithms (),
44- case current_secret_from_ets () of
44+ case current_secret () of
4545 undefined ->
4646 throw ({internal_server_error , <<" cookie auth secret is not set" >>});
4747 CurrentSecret ->
@@ -53,7 +53,7 @@ verify(Message, ExpectedMAC) ->
5353 verify (Message , <<>>, ExpectedMAC ).
5454
5555verify (Message , ExtraSecret , ExpectedMAC ) ->
56- FullSecrets = [<<Secret /binary , ExtraSecret /binary >> || Secret <- all_secrets_from_ets ()],
56+ FullSecrets = [<<Secret /binary , ExtraSecret /binary >> || Secret <- all_secrets ()],
5757 AllAlgorithms = couch_util :get_config_hash_algorithms (),
5858 verify (Message , AllAlgorithms , FullSecrets , ExpectedMAC ).
5959
@@ -177,12 +177,32 @@ current_secret_from_config() ->
177177 ? l2b (Secret )
178178 end .
179179
180+ current_secret () ->
181+ case current_secret_from_ets () of
182+ undefined ->
183+ current_secret_from_config ();
184+ CurrentSecret ->
185+ CurrentSecret
186+ end .
187+
180188current_secret_from_ets () ->
181189 current_secret_from_ets (node ()).
182190
183191current_secret_from_ets (Node ) ->
184192 secret_from_ets ({Node , current }).
185193
194+ all_secrets () ->
195+ case all_secrets_from_ets () of
196+ [] ->
197+ CurrentSecret = current_secret_from_config (),
198+ if
199+ CurrentSecret == undefined -> [];
200+ true -> [CurrentSecret ]
201+ end ;
202+ AllSecrets ->
203+ AllSecrets
204+ end .
205+
186206all_secrets_from_ets () ->
187207 secret_from_ets (all_secrets ).
188208
0 commit comments