Commit Graph

12 Commits

Author SHA1 Message Date
Rick Winter
b54d509c72
Use standard syntax for MIT license (#4786)
* Use standard syntax for MIT license

* Stop appending "All rights reserved"
2023-07-12 22:37:36 -07:00
Larry Osterman
fb240a4b25
Define a standardized header ordering for Azure SDK for C++ (#4632)
* Standardized header ordering for C++ repo

* Reordered categories to move private headers above public headers; added space between categories to enable future flexibility
2023-05-26 14:32:45 -07:00
Anton Kolesnyk
83f736d8ad
Simpler identity logging (#4455)
* Simpler identity logging

* Even simpler

* Remove refactoring artifact

* Cosmetic change

* foreach

---------

Co-authored-by: Anton Kolesnyk <antkmsft@users.noreply.github.com>
2023-03-16 12:50:15 -07:00
Anton Kolesnyk
ef24dfda2e
Add GetCredentialName() (#4428)
* Add GetCredentialName()

* Update

* Undo accidental change

* Clang-format

* Call GetCredentialName() instead of using constant; Return in-place constructed name; Explicit tests for GetCredentialName()

* PR feedback

* constructor parameter + non-virtual GetCredentialName()

* Update sdk/core/azure-core/CMakeLists.txt

* Update sdk/identity/azure-identity/test/ut/client_secret_credential_test.cpp

* Update sdk/identity/azure-identity/test/ut/client_certificate_credential_test.cpp

* GCC and Clang warnings

* Promote ThrowIfNotSafeCmdLineInput() to private member; avoid copies when calling GetCredentialName()

* Spelling

* Fix deprecated usage

* Fix iteration

* Clang-format

---------

Co-authored-by: Anton Kolesnyk <antkmsft@users.noreply.github.com>
2023-03-14 16:46:10 -07:00
Anton Kolesnyk
fc61bb4848
Add DefaultAzureCredential (#4409)
* Added DefaultAzureCredential

* Improved Llgging

---------

Co-authored-by: Anton Kolesnyk <antkmsft@users.noreply.github.com>
2023-03-07 20:24:44 -08:00
Anton Kolesnyk
68e9dc9ecb
Per-credential-instance token cache (#4160)
* Per-credential-instance token cache

Co-authored-by: Anton Kolesnyk <antkmsft@users.noreply.github.com>
2022-12-08 18:55:16 +00:00
Anton Kolesnyk
2aae6be7a3
Encapsulate getenv(), and make it work on UWP (#3275)
It all started with UWP. The [docs](https://docs.microsoft.com/en-us/cpp/cppcx/crt-functions-not-supported-in-universal-windows-platform-apps?view=msvc-170) say: "`Environment variables are not available to UWP apps.`". And it truly won't work, I tried: linker error, the function is simply not present.

So, for a year or so, we were `ifdef`ing everything enivoronment-related: console logger, environment credential, managed identity credential.

And then just recently we wanted to enable our CI for UWP, including tests and samples. And it required to do more ifdefs (in vcpkg, we don't build samples or tests, so that problem did not exist).

It just became more messy. Especially in samples - you can see how we would disable warning with `#pragma warning(disable : 4996)` or defining `_CRT_SECURE_NO_WARNINGS` already, but now came UWP, so we would have to add comment that `getenv()` is not available and make the sample compilation to either fail with clear message, or throw an exception. Plus we would have to detect that we are being compiled on UWP, which also adds visual clutter for reader. You can see how such an irrelevant (for a sample) thing as `getenv` was consuming more and more lines of sample code and reader's attention.

But then! I read docs on more APIs for UWP. And I noticed that on .NET you can read environment variables. So I went and checked Win32 API docs for [GetEnvironmentVariable()](https://docs.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-getenvironmentvariable) - it says: "`Minimum supported client: ... UWP apps`".

**GetEnvironmentVariable() works on UWP!**
And so does `SetEnvironmentVariable()` (our tests use it, which means we can make all of them work and execute for UWP).

That's good news, but now it would probably be more code: it usually takes more lines to invoke WinAPI, it is no more an one-liner to call `getenv()/setenv()`. So, I encapsulated that into `Azure::Core::_internal::Environment::GetVariable()` and `SetVariable()`. You can see how much less ifdefs is in our code now. Not to mention it works on UWP!

Per team request, that API is SDK-internal. Samples use their own mini-helper project, `get-env-helper` that makes is so that `getenv()` works naturally on Linux and macOS, compiles without warnings and works on Win32, and compiles and works on UWP (using `GetEnvironmentStringsA()`)

If it was for me, I would just make `Azure::Core::Environment::GetVariable()` public and simplify even further, I think it would be beneficial for sample readers (you can see that extra `get-env-helper` stuff adds just a little more visual clutter, compared to nothing). But I can see reasons against that, why team did not want to do it.
2022-01-29 08:22:33 +00:00
Anton Kolesnyk
98d9664dc9
Boost code coverage by adding tests (#3123)
* Boost code coverage by adding tests

* Increase Code Coverage min bar goals

Co-authored-by: Anton Kolesnyk <antkmsft@users.noreply.github.com>
2021-12-02 08:43:07 -08:00
Anton Kolesnyk
b57bb33400
Fix unit tests on Mac (#3143)
Co-authored-by: Anton Kolesnyk <antkmsft@users.noreply.github.com>
2021-11-30 11:20:03 -08:00
Anton Kolesnyk
3aee1859f0
CSpell fixes for Core and Identity (#2816)
Co-authored-by: Anton Kolesnyk <antkmsft@users.noreply.github.com>
2021-08-31 15:21:17 -07:00
Anton Kolesnyk
3f5c5ae664
Managed Identity Credential (#2448) 2021-07-01 09:16:26 -07:00
Victor Vazquez
88dc1ac8cf
adding Test file sufix to all tests (#2337)
* azure core

* perf

* identity

* keyvault

* storage
2021-05-25 11:15:30 -07:00