Skip to content

Commit 25a286e

Browse files
bgavrilMSgladjohn
andauthored
Low level Linux libsecret operations should throw exceptions (#4497)
* Low level Linux libsecret operations should throw exceptions * pr comment --------- Co-authored-by: Gladwin Johnson <90415114+gladjohn@users.noreply.github.com>
1 parent 4c60cef commit 25a286e

File tree

1 file changed

+16
-10
lines changed

1 file changed

+16
-10
lines changed

src/client/Microsoft.Identity.Client.Extensions.Msal/Accessors/LinuxKeyRingAccessor.cs

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33

44
using System;
55
using System.Runtime.InteropServices;
6+
using Microsoft.Identity.Extensions;
67

78
namespace Microsoft.Identity.Client.Extensions.Msal
89
{
@@ -103,11 +104,14 @@ public void Clear()
103104
try
104105
{
105106
GError err = (GError)Marshal.PtrToStructure(error, typeof(GError));
106-
_logger.LogError($"An error was encountered while clearing secret from keyring in the {nameof(Storage)} domain:'{err.Domain}' code:'{err.Code}' message:'{err.Message}'");
107+
throw new InteropException(
108+
$"An error was encountered while clearing secret from keyring in the {nameof(Storage)} domain:'{err.Domain}' code:'{err.Code}' message:'{err.Message}'",
109+
err.Code);
107110
}
108111
catch (Exception e)
109112
{
110-
_logger.LogError($"An exception was encountered while processing libsecret error information during clearing secret in the {nameof(Storage)} ex:'{e}'");
113+
throw new InteropException(
114+
$"An exception was encountered while processing libsecret error information during clearing secret in the {nameof(Storage)} ex:'{e}'", 0, e);
111115
}
112116
}
113117

@@ -116,8 +120,6 @@ public void Clear()
116120

117121
public byte[] Read()
118122
{
119-
_logger.LogInformation("ReadDataCore");
120-
121123
_logger.LogInformation($"ReadDataCore, Before reading from linux keyring");
122124

123125
byte[] fileData = null;
@@ -139,16 +141,18 @@ public byte[] Read()
139141
try
140142
{
141143
GError err = (GError)Marshal.PtrToStructure(error, typeof(GError));
142-
_logger.LogError($"An error was encountered while reading secret from keyring in the {nameof(Storage)} domain:'{err.Domain}' code:'{err.Code}' message:'{err.Message}'");
144+
throw new InteropException(
145+
$"An error was encountered while reading secret from keyring in the {nameof(Storage)} domain:'{err.Domain}' code:'{err.Code}' message:'{err.Message}'", err.Code);
143146
}
144147
catch (Exception e)
145148
{
146-
_logger.LogError($"An exception was encountered while processing libsecret error information during reading in the {nameof(Storage)} ex:'{e}'");
149+
throw new InteropException(
150+
$"An exception was encountered while processing libsecret error information during reading in the {nameof(Storage)} ex:'{e}'", 0, e);
147151
}
148152
}
149153
else if (string.IsNullOrEmpty(secret))
150154
{
151-
_logger.LogError("No matching secret found in the keyring");
155+
_logger.LogWarning("No matching secret found in the keyring");
152156
}
153157
else
154158
{
@@ -184,11 +188,13 @@ public void Write(byte[] data)
184188
try
185189
{
186190
GError err = (GError)Marshal.PtrToStructure(error, typeof(GError));
187-
_logger.LogError($"An error was encountered while saving secret to keyring in the {nameof(Storage)} domain:'{err.Domain}' code:'{err.Code}' message:'{err.Message}'");
191+
string message = $"An error was encountered while saving secret to keyring in the {nameof(Storage)} domain:'{err.Domain}' code:'{err.Code}' message:'{err.Message}'";
192+
throw new InteropException(message, err.Code);
188193
}
189194
catch (Exception e)
190195
{
191-
_logger.LogError($"An exception was encountered while processing libsecret error information during saving in the {nameof(Storage)} ex:'{e}'");
196+
throw new InteropException(
197+
$"An exception was encountered while processing libsecret error information during saving in the {nameof(Storage)}", 0, e);
192198
}
193199
}
194200

@@ -215,7 +221,7 @@ private IntPtr GetLibsecretSchema()
215221

216222
if (_libsecretSchema == IntPtr.Zero)
217223
{
218-
_logger.LogError($"Failed to create libsecret schema from the {nameof(Storage)}");
224+
throw new InteropException("Failed to create libsecret schema from the {nameof(Storage)}", 0);
219225
}
220226

221227
_logger.LogInformation("After creating libsecret schema");

0 commit comments

Comments
 (0)