diff --git a/Git-Credential-Manager.sln b/Git-Credential-Manager.sln index 878a08a93..26793a007 100644 --- a/Git-Credential-Manager.sln +++ b/Git-Credential-Manager.sln @@ -27,8 +27,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "GitHub.Tests", "src\shared\ EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "osx", "osx", "{3D279E2D-E011-45CF-8EA8-3D71D1300443}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Authentication.Helper.Mac", "src\osx\Microsoft.Authentication.Helper.Mac\Microsoft.Authentication.Helper.Mac.csproj", "{206430B1-CEED-4C84-8D49-D0A399632202}" -EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Installer.Mac", "src\osx\Installer.Mac\Installer.Mac.csproj", "{74FA0AA4-B5C1-4F3B-B182-277FC2D50715}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Installer.Windows", "src\windows\Installer.Windows\Installer.Windows.csproj", "{85903170-9E52-4B53-A6E4-3F416F684FAE}" @@ -215,16 +213,6 @@ Global {3E524EA8-D31A-4394-997C-14B522E3D6FD}.LinuxDebug|Any CPU.Build.0 = Debug|Any CPU {3E524EA8-D31A-4394-997C-14B522E3D6FD}.LinuxRelease|Any CPU.ActiveCfg = Release|Any CPU {3E524EA8-D31A-4394-997C-14B522E3D6FD}.LinuxRelease|Any CPU.Build.0 = Release|Any CPU - {206430B1-CEED-4C84-8D49-D0A399632202}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {206430B1-CEED-4C84-8D49-D0A399632202}.MacDebug|Any CPU.ActiveCfg = Debug|Any CPU - {206430B1-CEED-4C84-8D49-D0A399632202}.MacDebug|Any CPU.Build.0 = Debug|Any CPU - {206430B1-CEED-4C84-8D49-D0A399632202}.MacRelease|Any CPU.ActiveCfg = Release|Any CPU - {206430B1-CEED-4C84-8D49-D0A399632202}.MacRelease|Any CPU.Build.0 = Release|Any CPU - {206430B1-CEED-4C84-8D49-D0A399632202}.Release|Any CPU.ActiveCfg = Release|Any CPU - {206430B1-CEED-4C84-8D49-D0A399632202}.WindowsDebug|Any CPU.ActiveCfg = Debug|Any CPU - {206430B1-CEED-4C84-8D49-D0A399632202}.WindowsRelease|Any CPU.ActiveCfg = Release|Any CPU - {206430B1-CEED-4C84-8D49-D0A399632202}.LinuxDebug|Any CPU.ActiveCfg = Debug|Any CPU - {206430B1-CEED-4C84-8D49-D0A399632202}.LinuxRelease|Any CPU.ActiveCfg = Release|Any CPU {74FA0AA4-B5C1-4F3B-B182-277FC2D50715}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {74FA0AA4-B5C1-4F3B-B182-277FC2D50715}.MacDebug|Any CPU.ActiveCfg = Debug|Any CPU {74FA0AA4-B5C1-4F3B-B182-277FC2D50715}.MacDebug|Any CPU.Build.0 = Debug|Any CPU @@ -343,7 +331,6 @@ Global {D5277A0E-997E-453A-8CB9-4EFCC8B16A29} = {A7FC1234-95E3-4496-B5F7-4306F41E6A0E} {3E524EA8-D31A-4394-997C-14B522E3D6FD} = {D5277A0E-997E-453A-8CB9-4EFCC8B16A29} {3D279E2D-E011-45CF-8EA8-3D71D1300443} = {A7FC1234-95E3-4496-B5F7-4306F41E6A0E} - {206430B1-CEED-4C84-8D49-D0A399632202} = {3D279E2D-E011-45CF-8EA8-3D71D1300443} {74FA0AA4-B5C1-4F3B-B182-277FC2D50715} = {3D279E2D-E011-45CF-8EA8-3D71D1300443} {85903170-9E52-4B53-A6E4-3F416F684FAE} = {66722747-1B61-40E4-A89B-1AC8E6D62EA9} {8DBBAB0A-970D-4BE3-958C-8CDC92F76549} = {66722747-1B61-40E4-A89B-1AC8E6D62EA9} diff --git a/docs/configuration.md b/docs/configuration.md index a00efb85b..420fa5124 100644 --- a/docs/configuration.md +++ b/docs/configuration.md @@ -235,8 +235,6 @@ Specify which authentication flow should be used when performing Microsoft authe Defaults to the value `auto`. -**Note:** This setting will be ignored if a native authentication helper is configured and available. See [`credential.msauthHelper`](#credentialmsauthhelper) for more information. - Value|Credential Store -|- `auto` _(default)_|Select the best option depending on the current environment and platform. @@ -251,21 +249,3 @@ git config --global credential.msauthFlow devicecode ``` **Also see: [GCM_MSAUTH_FLOW](environment.md#GCM_MSAUTH_FLOW)** - ---- - -### credential.msauthHelper - -Full path to an external 'helper' tool to which Microsoft authentication should be delegated. - -On macOS this defaults to the included native `Microsoft.Authentication.Helper` tool. On all other platforms this is not set. - -**Note:** If a helper is set and available then all Microsoft authentication will be delegated to this helper and the [`credential.msauthFlow`](#credentialmsauthflow) setting will be ignored. Setting the value to the empty string (`""`) will unset any default helper. - -#### Example - -```shell -git config --global credential.msauthHelper "C:\path\to\helper.exe" -``` - -**Also see: [GCM_MSAUTH_HELPER](environment.md#GCM_MSAUTH_HELPER)** diff --git a/docs/environment.md b/docs/environment.md index 6273e08db..c9890d324 100644 --- a/docs/environment.md +++ b/docs/environment.md @@ -382,8 +382,6 @@ Specify which authentication flow should be used when performing Microsoft authe Defaults to the value `auto`. -**Note:** This setting will be ignored if a native authentication helper is configured and available. See [`GCM_MSAUTH_HELPER`](#gcm_msauth_helper) for more information. - Value|Credential Store -|- `auto` _(default)_|Select the best option depending on the current environment and platform. @@ -404,27 +402,3 @@ export GCM_MSAUTH_FLOW="devicecode" ``` **Also see: [credential.msauthFlow](configuration.md#credentialmsauthflow)** - ---- - -### GCM_MSAUTH_HELPER - -Full path to an external 'helper' tool to which Microsoft authentication should be delegated. - -On macOS this defaults to the included native `Microsoft.Authentication.Helper` tool. On all other platforms this is not set. - -**Note:** If a helper is set and available then all Microsoft authentication will be delegated to this helper and the [`GCM_MSAUTH_FLOW`](#gcm_msauth_flow) setting will be ignored. Setting the value to the empty string (`""`) will unset any default helper. - -##### Windows - -```batch -SET GCM_MSAUTH_HELPER="C:\path\to\helper.exe" -``` - -##### macOS/Linux - -```bash -export GCM_MSAUTH_HELPER="/usr/local/bin/msauth-helper" -``` - -**Also see: [credential.msauthHelper](configuration.md#credentialmsauthhelper)** diff --git a/src/osx/Installer.Mac/Installer.Mac.csproj b/src/osx/Installer.Mac/Installer.Mac.csproj index db72678df..e04293895 100644 --- a/src/osx/Installer.Mac/Installer.Mac.csproj +++ b/src/osx/Installer.Mac/Installer.Mac.csproj @@ -12,7 +12,6 @@ - diff --git a/src/osx/Installer.Mac/layout.sh b/src/osx/Installer.Mac/layout.sh index e53014831..606da0273 100755 --- a/src/osx/Installer.Mac/layout.sh +++ b/src/osx/Installer.Mac/layout.sh @@ -20,7 +20,6 @@ ROOT="$( cd "$THISDIR"/../../.. ; pwd -P )" SRC="$ROOT/src" OUT="$ROOT/out" INSTALLER_SRC="$SRC/osx/Installer.Mac" -MSAUTH_OUT="$OUT/osx/Microsoft.Authentication.Helper.Mac" GCM_SRC="$SRC/shared/Git-Credential-Manager" # Build parameters @@ -57,12 +56,6 @@ if [ -z "$SYMBOLOUT" ]; then SYMBOLOUT="$PAYLOAD.sym" fi -MSAUTH_BIN="$MSAUTH_OUT/bin/$CONFIGURATION/native" -MSAUTH_SYM="$MSAUTH_OUT/bin/$CONFIGURATION/native.sym" -if [ ! -d "$MSAUTH_BIN" ]; then - die "No native helper binaries found. Did you build?" -fi - # Cleanup any old payload directory if [ -d "$PAYLOAD" ]; then echo "Cleaning old payload directory '$PAYLOAD'..." @@ -76,10 +69,6 @@ mkdir -p "$PAYLOAD" "$SYMBOLOUT" echo "Copying uninstall script..." cp "$INSTALLER_SRC/uninstall.sh" "$PAYLOAD" || exit 1 -# Copy native authentication helper executables -echo "Copying native helpers..." -cp -R "$MSAUTH_BIN/" "$PAYLOAD" || exit 1 - # Publish core application executables echo "Publishing core application..." dotnet publish "$GCM_SRC" \ @@ -91,8 +80,6 @@ dotnet publish "$GCM_SRC" \ # Collect symbols echo "Collecting managed symbols..." mv "$PAYLOAD"/*.pdb "$SYMBOLOUT" || exit 1 -echo "Collecting native symbols..." -cp -R "$MSAUTH_SYM/" "$SYMBOLOUT" || exit 1 # Remove any unwanted .DS_Store files echo "Removing unnecessary files..." diff --git a/src/osx/Microsoft.Authentication.Helper.Mac/Microsoft.Authentication.Helper.Mac.csproj b/src/osx/Microsoft.Authentication.Helper.Mac/Microsoft.Authentication.Helper.Mac.csproj deleted file mode 100644 index b73c9c5c9..000000000 --- a/src/osx/Microsoft.Authentication.Helper.Mac/Microsoft.Authentication.Helper.Mac.csproj +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - netcoreapp3.1 - false - false - false - true - false - - - - - - - - - - - - - - - - - - - - - diff --git a/src/osx/Microsoft.Authentication.Helper.Mac/Microsoft.Authentication.Helper.xcodeproj/project.pbxproj b/src/osx/Microsoft.Authentication.Helper.Mac/Microsoft.Authentication.Helper.xcodeproj/project.pbxproj deleted file mode 100644 index f172e3127..000000000 --- a/src/osx/Microsoft.Authentication.Helper.Mac/Microsoft.Authentication.Helper.xcodeproj/project.pbxproj +++ /dev/null @@ -1,405 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 50; - objects = { - -/* Begin PBXBuildFile section */ - 9315261E21F5E543003884FA /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 9315261D21F5E543003884FA /* main.m */; }; - 9323B4B321F5E8D4002102DB /* AHLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = 9323B4A521F5E8D4002102DB /* AHLogger.m */; }; - 9323B4B521F5E8D4002102DB /* AHStdErrorLogWriter.m in Sources */ = {isa = PBXBuildFile; fileRef = 9323B4A821F5E8D4002102DB /* AHStdErrorLogWriter.m */; }; - 9323B4B621F5E8D4002102DB /* AHFileLogWriter.m in Sources */ = {isa = PBXBuildFile; fileRef = 9323B4AA21F5E8D4002102DB /* AHFileLogWriter.m */; }; - 9323B4B821F5E8D4002102DB /* AHGenerateAccessToken.m in Sources */ = {isa = PBXBuildFile; fileRef = 9323B4AE21F5E8D4002102DB /* AHGenerateAccessToken.m */; }; - 9323B4B921F5E8D4002102DB /* AHAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 9323B4B221F5E8D4002102DB /* AHAppDelegate.m */; }; - 9323B4BD21F5E8ED002102DB /* NSMutableDictionary+DictionaryFromConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = 9323B4BB21F5E8ED002102DB /* NSMutableDictionary+DictionaryFromConfig.m */; }; - E38CAF14F85C0CAF3E84E187 /* libPods-Microsoft.Authentication.Helper.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 26BCF90960B20E4D202A9F1E /* libPods-Microsoft.Authentication.Helper.a */; }; -/* End PBXBuildFile section */ - -/* Begin PBXCopyFilesBuildPhase section */ - 9315261821F5E543003884FA /* CopyFiles */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = /usr/share/man/man1/; - dstSubfolderSpec = 0; - files = ( - ); - runOnlyForDeploymentPostprocessing = 1; - }; -/* End PBXCopyFilesBuildPhase section */ - -/* Begin PBXFileReference section */ - 2617F1D56611A7524A6B795A /* Pods-Microsoft.Authentication.Helper.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Microsoft.Authentication.Helper.release.xcconfig"; path = "Pods/Target Support Files/Pods-Microsoft.Authentication.Helper/Pods-Microsoft.Authentication.Helper.release.xcconfig"; sourceTree = ""; }; - 26BCF90960B20E4D202A9F1E /* libPods-Microsoft.Authentication.Helper.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Microsoft.Authentication.Helper.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - 9315261A21F5E543003884FA /* Microsoft.Authentication.Helper */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = Microsoft.Authentication.Helper; sourceTree = BUILT_PRODUCTS_DIR; }; - 9315261D21F5E543003884FA /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; - 9323B4A521F5E8D4002102DB /* AHLogger.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AHLogger.m; sourceTree = ""; }; - 9323B4A621F5E8D4002102DB /* AHLogger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AHLogger.h; sourceTree = ""; }; - 9323B4A821F5E8D4002102DB /* AHStdErrorLogWriter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AHStdErrorLogWriter.m; sourceTree = ""; }; - 9323B4AA21F5E8D4002102DB /* AHFileLogWriter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AHFileLogWriter.m; sourceTree = ""; }; - 9323B4AB21F5E8D4002102DB /* AHGenerateAccessToken.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AHGenerateAccessToken.h; sourceTree = ""; }; - 9323B4AE21F5E8D4002102DB /* AHGenerateAccessToken.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AHGenerateAccessToken.m; sourceTree = ""; }; - 9323B4AF21F5E8D4002102DB /* AHFileLogWriter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AHFileLogWriter.h; sourceTree = ""; }; - 9323B4B021F5E8D4002102DB /* AHAppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AHAppDelegate.h; sourceTree = ""; }; - 9323B4B121F5E8D4002102DB /* AHStdErrorLogWriter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AHStdErrorLogWriter.h; sourceTree = ""; }; - 9323B4B221F5E8D4002102DB /* AHAppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AHAppDelegate.m; sourceTree = ""; }; - 9323B4BB21F5E8ED002102DB /* NSMutableDictionary+DictionaryFromConfig.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSMutableDictionary+DictionaryFromConfig.m"; sourceTree = ""; }; - 9323B4BC21F5E8ED002102DB /* NSMutableDictionary+DictionaryFromConfig.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSMutableDictionary+DictionaryFromConfig.h"; sourceTree = ""; }; - 93F2D53221F5F9AA000A78D7 /* AHLogWriter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AHLogWriter.h; sourceTree = ""; }; - D575DD7FD75AFA3F9B59DF88 /* Pods-Microsoft.Authentication.Helper.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Microsoft.Authentication.Helper.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Microsoft.Authentication.Helper/Pods-Microsoft.Authentication.Helper.debug.xcconfig"; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 9315261721F5E543003884FA /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - E38CAF14F85C0CAF3E84E187 /* libPods-Microsoft.Authentication.Helper.a in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 54DB05986D68A5DBDEB4CC75 /* Frameworks */ = { - isa = PBXGroup; - children = ( - 26BCF90960B20E4D202A9F1E /* libPods-Microsoft.Authentication.Helper.a */, - ); - name = Frameworks; - sourceTree = ""; - }; - 8932BDD857A62376A3A397B5 /* Pods */ = { - isa = PBXGroup; - children = ( - D575DD7FD75AFA3F9B59DF88 /* Pods-Microsoft.Authentication.Helper.debug.xcconfig */, - 2617F1D56611A7524A6B795A /* Pods-Microsoft.Authentication.Helper.release.xcconfig */, - ); - name = Pods; - sourceTree = ""; - }; - 9315261121F5E543003884FA = { - isa = PBXGroup; - children = ( - 9315261C21F5E543003884FA /* Source */, - 9315261B21F5E543003884FA /* Products */, - 8932BDD857A62376A3A397B5 /* Pods */, - 54DB05986D68A5DBDEB4CC75 /* Frameworks */, - ); - sourceTree = ""; - }; - 9315261B21F5E543003884FA /* Products */ = { - isa = PBXGroup; - children = ( - 9315261A21F5E543003884FA /* Microsoft.Authentication.Helper */, - ); - name = Products; - sourceTree = ""; - }; - 9315261C21F5E543003884FA /* Source */ = { - isa = PBXGroup; - children = ( - 9323B4A421F5E8B3002102DB /* Core */, - 9315261D21F5E543003884FA /* main.m */, - ); - path = Source; - sourceTree = ""; - }; - 9323B4A421F5E8B3002102DB /* Core */ = { - isa = PBXGroup; - children = ( - 9323B4BA21F5E8DC002102DB /* Extensions */, - 9323B4B021F5E8D4002102DB /* AHAppDelegate.h */, - 9323B4B221F5E8D4002102DB /* AHAppDelegate.m */, - 9323B4AB21F5E8D4002102DB /* AHGenerateAccessToken.h */, - 9323B4AE21F5E8D4002102DB /* AHGenerateAccessToken.m */, - 93F2D53221F5F9AA000A78D7 /* AHLogWriter.h */, - 9323B4AF21F5E8D4002102DB /* AHFileLogWriter.h */, - 9323B4AA21F5E8D4002102DB /* AHFileLogWriter.m */, - 9323B4A621F5E8D4002102DB /* AHLogger.h */, - 9323B4A521F5E8D4002102DB /* AHLogger.m */, - 9323B4B121F5E8D4002102DB /* AHStdErrorLogWriter.h */, - 9323B4A821F5E8D4002102DB /* AHStdErrorLogWriter.m */, - ); - path = Core; - sourceTree = ""; - }; - 9323B4BA21F5E8DC002102DB /* Extensions */ = { - isa = PBXGroup; - children = ( - 9323B4BC21F5E8ED002102DB /* NSMutableDictionary+DictionaryFromConfig.h */, - 9323B4BB21F5E8ED002102DB /* NSMutableDictionary+DictionaryFromConfig.m */, - ); - path = Extensions; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 9315261921F5E543003884FA /* Microsoft.Authentication.Helper */ = { - isa = PBXNativeTarget; - buildConfigurationList = 9315262121F5E543003884FA /* Build configuration list for PBXNativeTarget "Microsoft.Authentication.Helper" */; - buildPhases = ( - 35129F1E43ABFEB35A8F5D24 /* [CP] Check Pods Manifest.lock */, - 9315261621F5E543003884FA /* Sources */, - 9315261721F5E543003884FA /* Frameworks */, - 9315261821F5E543003884FA /* CopyFiles */, - 6AF6FA04E460ADF17B547253 /* [CP] Copy Pods Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = Microsoft.Authentication.Helper; - productName = Microsoft.Authentication.Helper; - productReference = 9315261A21F5E543003884FA /* Microsoft.Authentication.Helper */; - productType = "com.apple.product-type.tool"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 9315261221F5E543003884FA /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 1010; - ORGANIZATIONNAME = "Microsoft Corporation"; - TargetAttributes = { - 9315261921F5E543003884FA = { - CreatedOnToolsVersion = 10.1; - }; - }; - }; - buildConfigurationList = 9315261521F5E543003884FA /* Build configuration list for PBXProject "Microsoft.Authentication.Helper" */; - compatibilityVersion = "Xcode 9.3"; - developmentRegion = en; - hasScannedForEncodings = 0; - knownRegions = ( - en, - ); - mainGroup = 9315261121F5E543003884FA; - productRefGroup = 9315261B21F5E543003884FA /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 9315261921F5E543003884FA /* Microsoft.Authentication.Helper */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXShellScriptBuildPhase section */ - 35129F1E43ABFEB35A8F5D24 /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputFileListPaths = ( - ); - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-Microsoft.Authentication.Helper-checkManifestLockResult.txt", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; - }; - 6AF6FA04E460ADF17B547253 /* [CP] Copy Pods Resources */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-Microsoft.Authentication.Helper/Pods-Microsoft.Authentication.Helper-resources-${CONFIGURATION}-input-files.xcfilelist", - ); - name = "[CP] Copy Pods Resources"; - outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-Microsoft.Authentication.Helper/Pods-Microsoft.Authentication.Helper-resources-${CONFIGURATION}-output-files.xcfilelist", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Microsoft.Authentication.Helper/Pods-Microsoft.Authentication.Helper-resources.sh\"\n"; - showEnvVarsInLog = 0; - }; -/* End PBXShellScriptBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 9315261621F5E543003884FA /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 9323B4B621F5E8D4002102DB /* AHFileLogWriter.m in Sources */, - 9315261E21F5E543003884FA /* main.m in Sources */, - 9323B4B521F5E8D4002102DB /* AHStdErrorLogWriter.m in Sources */, - 9323B4B321F5E8D4002102DB /* AHLogger.m in Sources */, - 9323B4BD21F5E8ED002102DB /* NSMutableDictionary+DictionaryFromConfig.m in Sources */, - 9323B4B821F5E8D4002102DB /* AHGenerateAccessToken.m in Sources */, - 9323B4B921F5E8D4002102DB /* AHAppDelegate.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin XCBuildConfiguration section */ - 9315261F21F5E543003884FA /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "-"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.14; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = macosx; - }; - name = Debug; - }; - 9315262021F5E543003884FA /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "-"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.14; - MTL_ENABLE_DEBUG_INFO = NO; - MTL_FAST_MATH = YES; - SDKROOT = macosx; - }; - name = Release; - }; - 9315262221F5E543003884FA /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = D575DD7FD75AFA3F9B59DF88 /* Pods-Microsoft.Authentication.Helper.debug.xcconfig */; - buildSettings = { - CODE_SIGN_STYLE = Automatic; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Debug; - }; - 9315262321F5E543003884FA /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 2617F1D56611A7524A6B795A /* Pods-Microsoft.Authentication.Helper.release.xcconfig */; - buildSettings = { - CODE_SIGN_STYLE = Automatic; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 9315261521F5E543003884FA /* Build configuration list for PBXProject "Microsoft.Authentication.Helper" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 9315261F21F5E543003884FA /* Debug */, - 9315262021F5E543003884FA /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 9315262121F5E543003884FA /* Build configuration list for PBXNativeTarget "Microsoft.Authentication.Helper" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 9315262221F5E543003884FA /* Debug */, - 9315262321F5E543003884FA /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 9315261221F5E543003884FA /* Project object */; -} diff --git a/src/osx/Microsoft.Authentication.Helper.Mac/Microsoft.Authentication.Helper.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/src/osx/Microsoft.Authentication.Helper.Mac/Microsoft.Authentication.Helper.xcodeproj/project.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index 086d02242..000000000 --- a/src/osx/Microsoft.Authentication.Helper.Mac/Microsoft.Authentication.Helper.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/src/osx/Microsoft.Authentication.Helper.Mac/Microsoft.Authentication.Helper.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/src/osx/Microsoft.Authentication.Helper.Mac/Microsoft.Authentication.Helper.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist deleted file mode 100644 index 18d981003..000000000 --- a/src/osx/Microsoft.Authentication.Helper.Mac/Microsoft.Authentication.Helper.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +++ /dev/null @@ -1,8 +0,0 @@ - - - - - IDEDidComputeMac32BitWarning - - - diff --git a/src/osx/Microsoft.Authentication.Helper.Mac/Microsoft.Authentication.Helper.xcworkspace/contents.xcworkspacedata b/src/osx/Microsoft.Authentication.Helper.Mac/Microsoft.Authentication.Helper.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index 6cf3b65d1..000000000 --- a/src/osx/Microsoft.Authentication.Helper.Mac/Microsoft.Authentication.Helper.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - diff --git a/src/osx/Microsoft.Authentication.Helper.Mac/Microsoft.Authentication.Helper.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/src/osx/Microsoft.Authentication.Helper.Mac/Microsoft.Authentication.Helper.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist deleted file mode 100644 index 18d981003..000000000 --- a/src/osx/Microsoft.Authentication.Helper.Mac/Microsoft.Authentication.Helper.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +++ /dev/null @@ -1,8 +0,0 @@ - - - - - IDEDidComputeMac32BitWarning - - - diff --git a/src/osx/Microsoft.Authentication.Helper.Mac/Podfile b/src/osx/Microsoft.Authentication.Helper.Mac/Podfile deleted file mode 100644 index 96132b1ba..000000000 --- a/src/osx/Microsoft.Authentication.Helper.Mac/Podfile +++ /dev/null @@ -1,5 +0,0 @@ -platform :osx, '10.11' - -target 'Microsoft.Authentication.Helper' do - pod 'ADAL', '~> 4.0.0' -end diff --git a/src/osx/Microsoft.Authentication.Helper.Mac/Podfile.lock b/src/osx/Microsoft.Authentication.Helper.Mac/Podfile.lock deleted file mode 100644 index 963728a37..000000000 --- a/src/osx/Microsoft.Authentication.Helper.Mac/Podfile.lock +++ /dev/null @@ -1,19 +0,0 @@ -PODS: - - ADAL (4.0.0): - - ADAL/app-lib (= 4.0.0) - - ADAL/app-lib (4.0.0): - - ADAL/tokencacheheader - -DEPENDENCIES: - - ADAL (~> 4.0.0) - -SPEC REPOS: - https://github.com/CocoaPods/Specs.git: - - ADAL - -SPEC CHECKSUMS: - ADAL: 2f09070fb5a7095172e34409459eca3f3f1d0d23 - -PODFILE CHECKSUM: f7b3f5867bd6bb83186e92dedf7b8183795ffc5d - -COCOAPODS: 1.9.1 diff --git a/src/osx/Microsoft.Authentication.Helper.Mac/Source/Core/AHAppDelegate.h b/src/osx/Microsoft.Authentication.Helper.Mac/Source/Core/AHAppDelegate.h deleted file mode 100644 index 752ca96f7..000000000 --- a/src/osx/Microsoft.Authentication.Helper.Mac/Source/Core/AHAppDelegate.h +++ /dev/null @@ -1,25 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT license. - -#import -#import "AHLogger.h" - -typedef void(^AHAppWorkBlock) (void); - -@interface AHAppDelegate :NSObject -{ - AHAppWorkBlock _workDelegateBlock; - AHLogger* _logger; -} - -@property (retain, nonatomic) NSApplication* application; -@property (retain, nonatomic) NSError* error; - --(id)initWithBlock:(AHAppWorkBlock)block logger:(AHLogger*)logger; - --(void)run; --(void)stop; - -+ (NSError*)runDelegate:(AHAppWorkBlock)completionBlock logger:(AHLogger*)logger; - -@end diff --git a/src/osx/Microsoft.Authentication.Helper.Mac/Source/Core/AHAppDelegate.m b/src/osx/Microsoft.Authentication.Helper.Mac/Source/Core/AHAppDelegate.m deleted file mode 100644 index ac7a92014..000000000 --- a/src/osx/Microsoft.Authentication.Helper.Mac/Source/Core/AHAppDelegate.m +++ /dev/null @@ -1,102 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT license. - -#import "AHAppDelegate.h" -#import - -extern const NSString* kErrorDomain; - -@implementation AHAppDelegate - --(id)initWithBlock:(AHAppWorkBlock)block logger:(AHLogger*)logger; -{ - self = [super init]; - if (self != nil) - { - _workDelegateBlock = block; - _logger = logger; - } - - return self; -} - --(void)run -{ - NSApplication *application = [NSApplication sharedApplication]; - NSMenu *mainMenu = [self createMainMenu]; - [application setMainMenu:mainMenu]; - - [self setApplication:application]; - [application setDelegate:self]; - [NSApp setActivationPolicy:NSApplicationActivationPolicyRegular]; - - AHLOG(_logger, @"Creating application context for authentication prompt"); - - [NSApp run]; -} - --(void)applicationWillFinishLaunching:(NSNotification *)notification -{ - [[self application] activateIgnoringOtherApps:YES]; - self->_workDelegateBlock(); -} - --(void) stop -{ - [[self application] stop:self]; - - // Send an event to the app, because "stop" only stops running the - // delegate after processing an event. - NSPoint p = CGPointZero; - NSEvent* event = [NSEvent otherEventWithType:NSEventTypeApplicationDefined - location:p - modifierFlags:0 - timestamp:0 - windowNumber:0 - context:0 - subtype:0 - data1:0 - data2:0]; - - [[self application] postEvent:event atStart:NO]; -} - --(NSMenu*) createMainMenu -{ - NSMenu *mainMenu = [NSMenu new]; - - // Create top-level menu items - NSMenuItem *appMenuItem = [NSMenuItem new]; - NSMenuItem *editMenuItem = [NSMenuItem new]; - [mainMenu addItem:appMenuItem]; - [mainMenu addItem:editMenuItem]; - - // Create app menu items - NSMenu *appMenu = [NSMenu new]; - [appMenuItem setSubmenu:appMenu]; - [appMenu addItemWithTitle:@"Quit" - action:@selector(terminate:) - keyEquivalent:@"q"]; - - // Create edit menu items - NSMenu *editMenu = [[NSMenu alloc] initWithTitle:@"Edit"]; - [editMenuItem setSubmenu:editMenu]; - [editMenu addItemWithTitle:@"Cut" action:@selector(cut:) keyEquivalent:@"x"]; - [editMenu addItemWithTitle:@"Copy" action:@selector(copy:) keyEquivalent:@"c"]; - [editMenu addItemWithTitle:@"Paste" action:@selector(paste:) keyEquivalent:@"v"]; - [editMenu addItemWithTitle:@"Delete" action:@selector(delete:) keyEquivalent:@""]; - [editMenu addItemWithTitle:@"Select All" action:@selector(selectAll:) keyEquivalent:@"a"]; - - return mainMenu; -} - -+ (NSError*)runDelegate:(AHAppWorkBlock)completionBlock logger:(AHLogger*)logger -{ - AHAppDelegate * delegate = [[AHAppDelegate alloc] initWithBlock:completionBlock logger:logger]; - - [delegate run]; - - return [delegate error]; -} - -@end diff --git a/src/osx/Microsoft.Authentication.Helper.Mac/Source/Core/AHFileLogWriter.h b/src/osx/Microsoft.Authentication.Helper.Mac/Source/Core/AHFileLogWriter.h deleted file mode 100644 index 6c1fd54f1..000000000 --- a/src/osx/Microsoft.Authentication.Helper.Mac/Source/Core/AHFileLogWriter.h +++ /dev/null @@ -1,17 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT license. - -#import -#import "AHLogWriter.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface AHFileLogWriter : NSObject -{ - NSString* logFilePath; -} - -- (instancetype) initWithPath:(NSString*)logFilePath; -@end - -NS_ASSUME_NONNULL_END diff --git a/src/osx/Microsoft.Authentication.Helper.Mac/Source/Core/AHFileLogWriter.m b/src/osx/Microsoft.Authentication.Helper.Mac/Source/Core/AHFileLogWriter.m deleted file mode 100644 index 4a7f1ef14..000000000 --- a/src/osx/Microsoft.Authentication.Helper.Mac/Source/Core/AHFileLogWriter.m +++ /dev/null @@ -1,39 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT license. - -#import "AHFileLogWriter.h" - -@implementation AHFileLogWriter - -- (instancetype) initWithPath:(NSString*)logFilePath -{ - self = [super init]; - - if (self) - { - self->logFilePath = logFilePath; - } - - return self; -} - --(void)writeMessage:(NSString*)message -{ - // Open file - NSFileHandle* handle = [NSFileHandle fileHandleForWritingAtPath:logFilePath]; - - if (handle == nil) { - // Create new file because it does not exist - [[NSFileManager defaultManager] createFileAtPath:logFilePath contents:nil attributes:nil]; - handle = [NSFileHandle fileHandleForWritingAtPath:logFilePath]; - } - - // Append message - [handle seekToEndOfFile]; - [handle writeData:[message dataUsingEncoding:NSUTF8StringEncoding]]; - - // Close - [handle closeFile]; -} - -@end diff --git a/src/osx/Microsoft.Authentication.Helper.Mac/Source/Core/AHGenerateAccessToken.h b/src/osx/Microsoft.Authentication.Helper.Mac/Source/Core/AHGenerateAccessToken.h deleted file mode 100644 index be1ae03b8..000000000 --- a/src/osx/Microsoft.Authentication.Helper.Mac/Source/Core/AHGenerateAccessToken.h +++ /dev/null @@ -1,18 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT license. - -#import -#import "AHLogger.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface AHGenerateAccessToken : NSObject -+ (NSString*) generateAccessTokenWithAuthority:(NSString*)authority - clientId:(NSString*)clientId - resource:(NSString*)resource - redirectUri:(NSString*)redirectUri - error:(NSError**)error - logger:(AHLogger*)logger; -@end - -NS_ASSUME_NONNULL_END diff --git a/src/osx/Microsoft.Authentication.Helper.Mac/Source/Core/AHGenerateAccessToken.m b/src/osx/Microsoft.Authentication.Helper.Mac/Source/Core/AHGenerateAccessToken.m deleted file mode 100644 index d2e447823..000000000 --- a/src/osx/Microsoft.Authentication.Helper.Mac/Source/Core/AHGenerateAccessToken.m +++ /dev/null @@ -1,65 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT license. - -#import "AHGenerateAccessToken.h" -#import - -#import "AHAppDelegate.h" - -@implementation AHGenerateAccessToken - -+ (NSString*) generateAccessTokenWithAuthority:(NSString*)authority - clientId:(NSString*)clientId - resource:(NSString*)resource - redirectUri:(NSString*)redirectUri - error:(NSError**)error - logger:(AHLogger*)logger -{ - NSString* userId = @""; - NSError* localError = nil; - __block NSString* accessToken = nil; - __block AHAppDelegate *appDelegate; - - AHAppWorkBlock workBlock = ^{ - ADAuthenticationError* error = nil; - ADAuthenticationContext *context = [ADAuthenticationContext authenticationContextWithAuthority:authority - validateAuthority:NO - error:&error]; - - ADAuthenticationCallback completionBlock = ^(ADAuthenticationResult *result) - { - if (result.status == AD_SUCCEEDED) - { - accessToken = result.accessToken; - } - else // AD_FAILED or AD_USER_CANCELLED - { - [appDelegate setError:result.error]; - } - - [appDelegate stop]; - }; - - [context acquireTokenWithResource:resource - clientId:clientId - redirectUri:[NSURL URLWithString:redirectUri] - promptBehavior: AD_PROMPT_ALWAYS - userIdentifier:[ADUserIdentifier identifierWithId:userId - type:OptionalDisplayableId] - extraQueryParameters:nil - completionBlock:completionBlock]; - }; - - appDelegate = [[AHAppDelegate alloc] initWithBlock:workBlock logger:logger]; - [appDelegate run]; - localError = [appDelegate error]; - - if (localError && error) - { - *error = localError; - } - - return accessToken; -} - -@end diff --git a/src/osx/Microsoft.Authentication.Helper.Mac/Source/Core/AHLogWriter.h b/src/osx/Microsoft.Authentication.Helper.Mac/Source/Core/AHLogWriter.h deleted file mode 100644 index 10b1cafa6..000000000 --- a/src/osx/Microsoft.Authentication.Helper.Mac/Source/Core/AHLogWriter.h +++ /dev/null @@ -1,15 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT license. - -#import - -NS_ASSUME_NONNULL_BEGIN - -@protocol AHLogWriter - -- (void)writeMessage:(NSString*)message; - -@end - - -NS_ASSUME_NONNULL_END diff --git a/src/osx/Microsoft.Authentication.Helper.Mac/Source/Core/AHLogger.h b/src/osx/Microsoft.Authentication.Helper.Mac/Source/Core/AHLogger.h deleted file mode 100644 index 6e559cf64..000000000 --- a/src/osx/Microsoft.Authentication.Helper.Mac/Source/Core/AHLogger.h +++ /dev/null @@ -1,32 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT license. - -#import -#import "AHLogWriter.h" - -#define AHLOG(LOGGER,MSG) [LOGGER log:(MSG) fileName:@__FILE__ lineNum:__LINE__] -#define AHLOG_SECRET(LOGGER,MSG,SECRET) [LOGGER log:(MSG) secretMsg:(SECRET) fileName:@__FILE__ lineNum:__LINE__] - -NS_ASSUME_NONNULL_BEGIN - -@interface AHLogger : NSObject -{ - NSMutableArray *writers; - NSDateFormatter *dateFormatter; -} - -@property BOOL enableSecretTracing; - -- (instancetype) init; -- (void) addWriter:(NSObject *) writer; -- (void) log:(NSString*)message - fileName:(NSString*)fileName - lineNum:(int)lineNum; -- (void) log:(NSString*)message - secretMsg:(NSString*)secretMsg - fileName:(NSString*)fileName - lineNum:(int)lineNum; - -@end - -NS_ASSUME_NONNULL_END diff --git a/src/osx/Microsoft.Authentication.Helper.Mac/Source/Core/AHLogger.m b/src/osx/Microsoft.Authentication.Helper.Mac/Source/Core/AHLogger.m deleted file mode 100644 index 06918ec05..000000000 --- a/src/osx/Microsoft.Authentication.Helper.Mac/Source/Core/AHLogger.m +++ /dev/null @@ -1,77 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT license. - -#import "AHLogger.h" - -@implementation AHLogger - --(instancetype)init -{ - self = [super init]; - if (self != nil) - { - self->writers = [[NSMutableArray alloc] init]; - self->dateFormatter = [[NSDateFormatter alloc] init]; - - // Configure the date formatter based on the POSIX locale as "HH" can still return - // a 12-hour style time if the user's locale has disabled the 24-hour style. - NSLocale *enUSPOSIXLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"]; - [self->dateFormatter setLocale:enUSPOSIXLocale]; - [self->dateFormatter setDateFormat:@"HH:mm:ss:SSSSSS"]; - } - - return self; -} - -- (void) addWriter:(NSObject *) writer -{ - [self->writers addObject:writer]; -} - --(void)log:(NSString*)message - fileName:(NSString*)fileName - lineNum:(int)lineNum -{ - // To be consistent with Git and GCM's main trace output format we want the source (file:line) - // column to be 23 characters wide, truncating the start with "..." if required. - NSString* source = [[NSString alloc] initWithFormat:@"%@:%d", fileName, lineNum]; - if ([source length] > 23) - { - NSInteger extra = [source length] - 23 + 3; - source = [[NSString alloc] initWithFormat:@"...%@", [source substringFromIndex:extra]]; - } - - NSString* logMessage = [NSString stringWithFormat:@"%@ %23s trace: %@\n", - [dateFormatter stringFromDate:[NSDate date]], - [source UTF8String], - message]; - - for (NSObject *writer in self->writers) - { - [writer writeMessage:logMessage]; - } -} - --(void)log:(NSString*)message - secretMsg:(NSString*)secretMsg - fileName:(NSString*)fileName - lineNum:(int)lineNum; -{ - NSString* combinedMessage; - if ([self enableSecretTracing]) - { - combinedMessage = [[NSString alloc] initWithFormat:@"%@ PII: %@", - message, secretMsg]; - } - else - { - combinedMessage = [[NSString alloc] initWithFormat:@"%@ PII: ********", - message]; - } - - [self log:combinedMessage - fileName:fileName - lineNum:lineNum]; -} - -@end diff --git a/src/osx/Microsoft.Authentication.Helper.Mac/Source/Core/AHStdErrorLogWriter.h b/src/osx/Microsoft.Authentication.Helper.Mac/Source/Core/AHStdErrorLogWriter.h deleted file mode 100644 index ef59f8670..000000000 --- a/src/osx/Microsoft.Authentication.Helper.Mac/Source/Core/AHStdErrorLogWriter.h +++ /dev/null @@ -1,13 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT license. - -#import -#import "AHLogWriter.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface AHStdErrorLogWriter : NSObject - -@end - -NS_ASSUME_NONNULL_END diff --git a/src/osx/Microsoft.Authentication.Helper.Mac/Source/Core/AHStdErrorLogWriter.m b/src/osx/Microsoft.Authentication.Helper.Mac/Source/Core/AHStdErrorLogWriter.m deleted file mode 100644 index 929f0c8ba..000000000 --- a/src/osx/Microsoft.Authentication.Helper.Mac/Source/Core/AHStdErrorLogWriter.m +++ /dev/null @@ -1,13 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT license. - -#import "AHStdErrorLogWriter.h" - -@implementation AHStdErrorLogWriter - -- (void)writeMessage:(NSString *)message { - NSError* error; - [message writeToFile:@"/dev/stderr" atomically:NO encoding:NSUTF8StringEncoding error:&error]; -} - -@end diff --git a/src/osx/Microsoft.Authentication.Helper.Mac/Source/Core/Extensions/NSMutableDictionary+DictionaryFromConfig.h b/src/osx/Microsoft.Authentication.Helper.Mac/Source/Core/Extensions/NSMutableDictionary+DictionaryFromConfig.h deleted file mode 100644 index a96c33fd0..000000000 --- a/src/osx/Microsoft.Authentication.Helper.Mac/Source/Core/Extensions/NSMutableDictionary+DictionaryFromConfig.h +++ /dev/null @@ -1,13 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT license. - -#import - -@interface NSMutableDictionary (DictionaryFromConfig) - -+ (NSMutableDictionary*)dictionaryFromConfig:(NSString*)linesOfConfig; - -+ (NSMutableDictionary*)dictionaryFromFileHandle:(NSFileHandle*)fileHandle; - -@end - diff --git a/src/osx/Microsoft.Authentication.Helper.Mac/Source/Core/Extensions/NSMutableDictionary+DictionaryFromConfig.m b/src/osx/Microsoft.Authentication.Helper.Mac/Source/Core/Extensions/NSMutableDictionary+DictionaryFromConfig.m deleted file mode 100644 index 687bfae27..000000000 --- a/src/osx/Microsoft.Authentication.Helper.Mac/Source/Core/Extensions/NSMutableDictionary+DictionaryFromConfig.m +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT license. - -#import "NSMutableDictionary+DictionaryFromConfig.h" -#define IsValidString(str) ((str) != nil && [(str)length] > 0) - -@implementation NSMutableDictionary (DictionaryFromConfig) - -+ (NSMutableDictionary*)dictionaryFromConfig:(NSString*)linesOfConfig -{ - NSMutableDictionary *dictionary = [NSMutableDictionary dictionary]; - - if (IsValidString(linesOfConfig)) - { - NSArray* lines = [linesOfConfig componentsSeparatedByCharactersInSet:[NSCharacterSet newlineCharacterSet]]; - for (NSString* line in lines) - { - if ([line rangeOfString:@"="].location != NSNotFound) - { - NSString *key = [[[line componentsSeparatedByString:@"="] objectAtIndex:0] - stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]]; - NSString *value = [[[line componentsSeparatedByString:@"="] objectAtIndex:1] - stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]]; - - if (IsValidString(key) && IsValidString(value)) - [dictionary setObject:value forKey:key]; - } - } - } - - return dictionary; -} - -+ (NSMutableDictionary*)dictionaryFromFileHandle:(NSFileHandle*)fileHandle; -{ - NSMutableString* allData = [[NSMutableString alloc] init]; - - Boolean keepReading = YES; - while (keepReading) - { - NSString* line = [[NSString alloc] initWithData:[fileHandle availableData] - encoding:(NSUTF8StringEncoding)]; - [allData appendString:line]; - - // Keep reading until we have a double line-feed character signifying - // the end of the dictionary. - NSUInteger dataLength = [allData length]; - if (dataLength > 1) - { - unichar lastChar = [allData characterAtIndex:dataLength-1]; - unichar secondLastChar = [allData characterAtIndex:dataLength-2]; - - if (lastChar == '\n' && secondLastChar == '\n') - { - keepReading = NO; - } - } - } - - return [NSMutableDictionary dictionaryFromConfig:allData]; -} - -@end diff --git a/src/osx/Microsoft.Authentication.Helper.Mac/Source/main.m b/src/osx/Microsoft.Authentication.Helper.Mac/Source/main.m deleted file mode 100644 index 92ac555ec..000000000 --- a/src/osx/Microsoft.Authentication.Helper.Mac/Source/main.m +++ /dev/null @@ -1,150 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT license. - -#import -#import "NSMutableDictionary+DictionaryFromConfig.h" -#import "AHGenerateAccessToken.h" -#import "AHLogger.h" -#import "AHFileLogWriter.h" -#import "AHStdErrorLogWriter.h" -#import - -BOOL isTruthy(NSString* value) { - if (value == nil) { - return false; - } - - return ([value caseInsensitiveCompare:@"1"] == NSOrderedSame) || - ([value caseInsensitiveCompare:@"yes"] == NSOrderedSame) || - ([value caseInsensitiveCompare:@"true"] == NSOrderedSame); -} - -BOOL isLocalFilePath(NSString *path) { - NSString *fullpath = path.stringByExpandingTildeInPath; - return [fullpath hasPrefix:@"/"]; -} - -int main(int argc, const char * argv[]) { - - @autoreleasepool { - int exitCode; - NSError *error; - NSString *output; - - AHLogger *logger = [[AHLogger alloc] init]; - - // Configure the application logger based on the common GCM tracing environment variables - NSString* traceEnvar = [[[NSProcessInfo processInfo] environment] objectForKey:@"GCM_TRACE"]; - NSString* traceSecretsEnvar = [[[NSProcessInfo processInfo] environment] objectForKey:@"GCM_TRACE_SECRETS"]; - NSString* traceMsAuthEnvar = [[[NSProcessInfo processInfo] environment] objectForKey:@"GCM_TRACE_MSAUTH"]; - - // Enable tracing - if (isTruthy(traceEnvar)) { - [logger addWriter:[[AHStdErrorLogWriter alloc] init]]; - } - else if (isLocalFilePath(traceEnvar)) { - [logger addWriter:[[AHFileLogWriter alloc] initWithPath:traceEnvar]]; - } - - // Enable tracing of secret/sensitive information - if (isTruthy(traceSecretsEnvar)) { - [logger setEnableSecretTracing:YES]; - - // Also enable PII logging in ADAL - [ADLogger setPiiEnabled:YES]; - } - - // Always disable ADAL from logging to NSLog which prints to stderror directly - [ADLogger setNSLogging:NO]; - - // Register a callback in ADAL for our logger if GCM_TRACE_MSAUTH is enabled - if (isTruthy(traceMsAuthEnvar)) - { - // We try and capture everything we can as this can help with diagnosing - // the most complicated authentication problems. - [ADLogger setLevel:ADAL_LOG_LEVEL_VERBOSE]; - - [ADLogger setLoggerCallback:^(ADAL_LOG_LEVEL logLevel, NSString *message, BOOL containsPii) { - - NSString* logLevelName; - switch (logLevel) { - case ADAL_LOG_LEVEL_ERROR: - logLevelName = @"Error"; - break; - case ADAL_LOG_LEVEL_WARN: - logLevelName = @"Warning"; - break; - case ADAL_LOG_LEVEL_INFO: - logLevelName = @"Info"; - break; - case ADAL_LOG_LEVEL_VERBOSE: - logLevelName = @"Verbose"; - break; - default: - logLevelName = @"Unknown"; - break; - } - - [logger log:[NSString stringWithFormat:@"[ADAL] [%@] %@", logLevelName, message] fileName:@"ADAL" lineNum:0]; - }]; - } - - AHLOG(logger, @"Running Microsoft Authentication helper for macOS"); - - NSMutableDictionary *configs = [NSMutableDictionary dictionaryFromFileHandle:[NSFileHandle fileHandleWithStandardInput]]; - - // Extract expected parameters from input - NSString* authority = [configs objectForKey:@"authority"]; - NSString* clientId = [configs objectForKey:@"clientId"]; - NSString* resource = [configs objectForKey:@"resource"]; - NSString* redirectUri = [configs objectForKey:@"redirectUri"]; - NSString* interactive = [configs objectForKey:@"interactive"]; - - // Because ADAL only supports the v1 endpoints we need to transform any request - // for the /organizations or /consumers authority to the /common one or else - // we get errors back from the server. - NSString *lowerAuthority = [authority lowercaseString]; - if ([lowerAuthority hasSuffix:@"/organizations"] || [lowerAuthority hasSuffix:@"/consumers"]) - { - NSError *error = nil; - NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"/(organizations|consumers)$" - options:NSRegularExpressionCaseInsensitive - error:&error]; - NSString* newAuthority = [regex stringByReplacingMatchesInString:authority - options:0 - range:NSMakeRange(0, authority.length) - withTemplate:@"/common"]; - authority = newAuthority; - } - - // We only perform interactive flows - if (isTruthy(interactive)) - { - NSString *accessToken = [AHGenerateAccessToken generateAccessTokenWithAuthority:authority - clientId:clientId - resource:resource - redirectUri:redirectUri - error:&error - logger:logger]; - - if (error == nil && accessToken != nil) - { - output = [NSString stringWithFormat:@"accessToken=%@\n", accessToken]; - exitCode = 0; - } - else - { - output = [NSString stringWithFormat:@"error=%@\n", [error description]]; - exitCode = -1; - } - } - else - { - output = @"error=Interactivity is required but has been disabled.\n"; - exitCode = -1; - } - - [output writeToFile:@"/dev/stdout" atomically:NO encoding:NSUTF8StringEncoding error:&error]; - return exitCode; - } -} diff --git a/src/osx/Microsoft.Authentication.Helper.Mac/build.sh b/src/osx/Microsoft.Authentication.Helper.Mac/build.sh deleted file mode 100755 index 59d5fd84a..000000000 --- a/src/osx/Microsoft.Authentication.Helper.Mac/build.sh +++ /dev/null @@ -1,69 +0,0 @@ -#!/bin/bash -die () { - echo "$*" >&2 - exit 1 -} - -echo "Building Microsoft.Authentication.Helper.Mac..." - -# Directories -THISDIR="$( cd "$(dirname "$0")" ; pwd -P )" -ROOT="$( cd $THISDIR/../../.. ; pwd -P )" -SRC=$ROOT/src -OUT=$ROOT/out -MSAUTH_SRC=$SRC/osx/Microsoft.Authentication.Helper.Mac -MSAUTH_OUT=$OUT/osx/Microsoft.Authentication.Helper.Mac - -# Parse script arguments -for i in "$@" -do -case $i in - --configuration=*) - CONFIGURATION="${i#*=}" - shift # past argument=value - ;; - *) - # unknown option - ;; -esac -done - -# Set default arguments -CONFIGURATION=${CONFIGURATION:=Debug} - -MSAUTH_BINOUT=$MSAUTH_OUT/bin/$CONFIGURATION/native -MSAUTH_SYMOUT=$MSAUTH_OUT/bin/$CONFIGURATION/native.sym -MSAUTH_OBJOUT=$MSAUTH_OUT/xcodebuild - -# Ensure output directories exist -mkdir -p $MSAUTH_OUT || exit 1 - -# # Ensure Cocoapods have been restored (try without updating the repo first as this can take a while) -echo "Restoring Cocoapods..." -pod install --project-directory=$MSAUTH_SRC -if [ $? -ne 0 ]; then - echo "Failed to restore Cocoapods. Will update Cocoapods repository and try again..." - pod install --repo-update --project-directory=$MSAUTH_SRC || exit 1 -fi - -# Build the Xcode workspace -echo "Building Xcode workspace..." -xcodebuild \ - -workspace $MSAUTH_SRC/Microsoft.Authentication.Helper.xcworkspace \ - -scheme Microsoft.Authentication.Helper \ - -configuration $CONFIGURATION \ - -derivedDataPath $MSAUTH_OBJOUT || exit 1 - -MSAUTH_EXEC=$MSAUTH_OBJOUT/Build/Products/$CONFIGURATION/Microsoft.Authentication.Helper - -# Copy binaries -echo "Copying binaries..." -mkdir -p $MSAUTH_BINOUT || exit 1 -cp $MSAUTH_EXEC $MSAUTH_BINOUT || exit 1 - -# Copy dSYM symbol files -echo "Copying symbols..." -mkdir -p $MSAUTH_SYMOUT || exit 1 -cp -R $MSAUTH_EXEC.dSYM $MSAUTH_SYMOUT || exit 1 - -echo "Build of Microsoft.Authentication.Helper.Mac complete." diff --git a/src/osx/SignFiles.Mac/SignFiles.Mac.csproj b/src/osx/SignFiles.Mac/SignFiles.Mac.csproj index e7250f225..42a14cef6 100644 --- a/src/osx/SignFiles.Mac/SignFiles.Mac.csproj +++ b/src/osx/SignFiles.Mac/SignFiles.Mac.csproj @@ -28,8 +28,7 @@ false + $(OutDir)\git-credential-manager-core;"> false diff --git a/src/shared/Microsoft.Git.CredentialManager/Authentication/MicrosoftAuthentication.cs b/src/shared/Microsoft.Git.CredentialManager/Authentication/MicrosoftAuthentication.cs index 29b26ac3c..f7e2e5f80 100644 --- a/src/shared/Microsoft.Git.CredentialManager/Authentication/MicrosoftAuthentication.cs +++ b/src/shared/Microsoft.Git.CredentialManager/Authentication/MicrosoftAuthentication.cs @@ -43,14 +43,6 @@ public MicrosoftAuthentication(ICommandContext context) public async Task GetAccessTokenAsync( string authority, string clientId, Uri redirectUri, string resource, Uri remoteUri, string userName) { - // If we find an external authentication helper we should delegate everything to it. - // Assume the external helper can provide the best authentication experience. - if (TryFindHelperExecutablePath(out string helperPath)) - { - return await GetAccessTokenViaHelperAsync(helperPath, - authority, clientId, redirectUri, resource, remoteUri, userName); - } - // Try to acquire an access token in the current process string[] scopes = { $"{resource}/.default" }; return await GetAccessTokenInProcAsync(authority, clientId, redirectUri, scopes, userName); @@ -60,33 +52,6 @@ public async Task GetAccessTokenAsync( #region Authentication strategies - /// - /// Start an authentication helper process to obtain an access token. - /// - private async Task GetAccessTokenViaHelperAsync(string helperPath, - string authority, string clientId, Uri redirectUri, string resource, Uri remoteUri, string userName) - { - var inputDict = new Dictionary - { - ["authority"] = authority, - ["clientId"] = clientId, - ["redirectUri"] = redirectUri.AbsoluteUri, - ["resource"] = resource, - ["remoteUrl"] = remoteUri.ToString(), - ["username"] = userName, - ["interactive"] = Context.Settings.IsInteractionAllowed.ToString() - }; - - IDictionary resultDict = await InvokeHelperAsync(helperPath, null, inputDict); - - if (!resultDict.TryGetValue("accessToken", out string accessToken)) - { - throw new Exception("Missing access token in response"); - } - - return new JsonWebToken(accessToken); - } - /// /// Obtain an access token using MSAL running inside the current process. /// @@ -253,15 +218,6 @@ private async Task CreatePublicClientApplicationAsync( #region Helpers - private bool TryFindHelperExecutablePath(out string path) - { - return TryFindHelperExecutablePath( - Constants.EnvironmentVariables.MsAuthHelper, - Constants.GitConfiguration.Credential.MsAuthHelper, - Constants.DefaultMsAuthHelper, - out path); - } - private async Task RegisterVisualStudioTokenCacheAsync(IPublicClientApplication app) { Context.Trace.WriteLine("Configuring Visual Studio token cache..."); diff --git a/src/shared/Microsoft.Git.CredentialManager/Constants.cs b/src/shared/Microsoft.Git.CredentialManager/Constants.cs index c35c5b267..85062ca0f 100644 --- a/src/shared/Microsoft.Git.CredentialManager/Constants.cs +++ b/src/shared/Microsoft.Git.CredentialManager/Constants.cs @@ -8,7 +8,6 @@ namespace Microsoft.Git.CredentialManager public static class Constants { public const string PersonalAccessTokenUserName = "PersonalAccessToken"; - public const string DefaultMsAuthHelper = "Microsoft.Authentication.Helper"; public const string DefaultCredentialNamespace = "git"; public const string ProviderIdAuto = "auto"; @@ -52,7 +51,6 @@ public static class EnvironmentVariables public const string GcmInteractive = "GCM_INTERACTIVE"; public const string GcmParentWindow = "GCM_MODAL_PARENTHWND"; public const string MsAuthFlow = "GCM_MSAUTH_FLOW"; - public const string MsAuthHelper = "GCM_MSAUTH_HELPER"; public const string GcmCredNamespace = "GCM_NAMESPACE"; public const string GcmCredentialStore = "GCM_CREDENTIAL_STORE"; public const string GcmPlaintextStorePath = "GCM_PLAINTEXT_STORE_PATH"; @@ -83,7 +81,6 @@ public static class Credential public const string UseHttpPath = "useHttpPath"; public const string Interactive = "interactive"; public const string MsAuthFlow = "msauthFlow"; - public const string MsAuthHelper = "msauthHelper"; public const string CredNamespace = "namespace"; public const string CredentialStore = "credentialStore"; public const string PlaintextStorePath = "plaintextStorePath";