From 3de67f0052e086eec89bfba49bd98adca8869115 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=B5=9C=EC=A4=80=EC=98=81?= Date: Tue, 16 Jun 2026 10:10:37 +0900 Subject: [PATCH] =?UTF-8?q?Initial=20commit:=20BARON=20SSO=20=EC=83=98?= =?UTF-8?q?=ED=94=8C=20(WebView=20OIDC=20PKCE=20=EC=9D=B8=EC=A6=9D=20?= =?UTF-8?q?=EB=9D=BC=EC=9D=B4=EB=B8=8C=EB=9F=AC=EB=A6=AC=20+=20=EB=8D=B0?= =?UTF-8?q?=EB=AA=A8=20=EC=95=B1)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.8 --- .gitignore | 28 +++ BaronSoftware.SSO.Sample/App.xaml | 9 + BaronSoftware.SSO.Sample/App.xaml.cs | 14 ++ BaronSoftware.SSO.Sample/AssemblyInfo.cs | 10 + .../BaronSoftware.SSO.Sample.csproj | 21 ++ BaronSoftware.SSO.Sample/MainWindow.xaml | 38 ++++ BaronSoftware.SSO.Sample/MainWindow.xaml.cs | 137 +++++++++++++ BaronSoftware.SSO.Sample/SampleSettings.cs | 77 +++++++ BaronSoftware.SSO.Sample/SettingsWindow.xaml | 50 +++++ .../SettingsWindow.xaml.cs | 33 +++ BaronSoftware.SSO.Sample/appsettings.json | 21 ++ BaronSoftware.SSO.sln | 31 +++ BaronSoftware.SSO/BaronSSO.cs | 126 ++++++++++++ BaronSoftware.SSO/BaronSSOOption.cs | 46 +++++ BaronSoftware.SSO/BaronSoftware.SSO.csproj | 20 ++ .../Exceptions/InvalidUserException.cs | 15 ++ .../Exceptions/UserJsonParsingException.cs | 14 ++ .../Features/LoginWindow/LoginWindow.xaml | 11 + .../Features/LoginWindow/LoginWindow.xaml.cs | 114 +++++++++++ .../Features/Validator/IUserValidator.cs | 9 + BaronSoftware.SSO/GlobalConfigs.cs | 18 ++ BaronSoftware.SSO/Models/UserInfo.cs | 103 ++++++++++ BaronSoftware.SSO/OIDC/PKCEUtil.cs | 28 +++ BaronSoftware.SSO/OIDC/SsoClient.cs | 188 ++++++++++++++++++ BaronSoftware.SSO/OIDC/TokenResponse.cs | 10 + 25 files changed, 1171 insertions(+) create mode 100644 .gitignore create mode 100644 BaronSoftware.SSO.Sample/App.xaml create mode 100644 BaronSoftware.SSO.Sample/App.xaml.cs create mode 100644 BaronSoftware.SSO.Sample/AssemblyInfo.cs create mode 100644 BaronSoftware.SSO.Sample/BaronSoftware.SSO.Sample.csproj create mode 100644 BaronSoftware.SSO.Sample/MainWindow.xaml create mode 100644 BaronSoftware.SSO.Sample/MainWindow.xaml.cs create mode 100644 BaronSoftware.SSO.Sample/SampleSettings.cs create mode 100644 BaronSoftware.SSO.Sample/SettingsWindow.xaml create mode 100644 BaronSoftware.SSO.Sample/SettingsWindow.xaml.cs create mode 100644 BaronSoftware.SSO.Sample/appsettings.json create mode 100644 BaronSoftware.SSO.sln create mode 100644 BaronSoftware.SSO/BaronSSO.cs create mode 100644 BaronSoftware.SSO/BaronSSOOption.cs create mode 100644 BaronSoftware.SSO/BaronSoftware.SSO.csproj create mode 100644 BaronSoftware.SSO/Exceptions/InvalidUserException.cs create mode 100644 BaronSoftware.SSO/Exceptions/UserJsonParsingException.cs create mode 100644 BaronSoftware.SSO/Features/LoginWindow/LoginWindow.xaml create mode 100644 BaronSoftware.SSO/Features/LoginWindow/LoginWindow.xaml.cs create mode 100644 BaronSoftware.SSO/Features/Validator/IUserValidator.cs create mode 100644 BaronSoftware.SSO/GlobalConfigs.cs create mode 100644 BaronSoftware.SSO/Models/UserInfo.cs create mode 100644 BaronSoftware.SSO/OIDC/PKCEUtil.cs create mode 100644 BaronSoftware.SSO/OIDC/SsoClient.cs create mode 100644 BaronSoftware.SSO/OIDC/TokenResponse.cs diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..8617a01 --- /dev/null +++ b/.gitignore @@ -0,0 +1,28 @@ +## .NET / Visual Studio +bin/ +obj/ +.vs/ +*.user +*.suo +*.userosscache +*.sln.docstates + +## Build results +[Dd]ebug/ +[Rr]elease/ +x64/ +x86/ +[Aa][Rr][Mm]/ +[Aa][Rr][Mm]64/ + +## Publish output +publish/ +*.publishsettings + +## WebView2 runtime / user data +*.WebView2/ +EBWebView/ + +## Rider / others +.idea/ +*.DotSettings.user diff --git a/BaronSoftware.SSO.Sample/App.xaml b/BaronSoftware.SSO.Sample/App.xaml new file mode 100644 index 0000000..3087e3e --- /dev/null +++ b/BaronSoftware.SSO.Sample/App.xaml @@ -0,0 +1,9 @@ + + + + + diff --git a/BaronSoftware.SSO.Sample/App.xaml.cs b/BaronSoftware.SSO.Sample/App.xaml.cs new file mode 100644 index 0000000..e7007a5 --- /dev/null +++ b/BaronSoftware.SSO.Sample/App.xaml.cs @@ -0,0 +1,14 @@ +using System.Configuration; +using System.Data; +using System.Windows; + +namespace BaronSoftware.Auth.Sample +{ + /// + /// Interaction logic for App.xaml + /// + public partial class App : Application + { + } + +} diff --git a/BaronSoftware.SSO.Sample/AssemblyInfo.cs b/BaronSoftware.SSO.Sample/AssemblyInfo.cs new file mode 100644 index 0000000..b0ec827 --- /dev/null +++ b/BaronSoftware.SSO.Sample/AssemblyInfo.cs @@ -0,0 +1,10 @@ +using System.Windows; + +[assembly: ThemeInfo( + ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located + //(used if a resource is not found in the page, + // or application resource dictionaries) + ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located + //(used if a resource is not found in the page, + // app, or any theme specific resource dictionaries) +)] diff --git a/BaronSoftware.SSO.Sample/BaronSoftware.SSO.Sample.csproj b/BaronSoftware.SSO.Sample/BaronSoftware.SSO.Sample.csproj new file mode 100644 index 0000000..80ff6f4 --- /dev/null +++ b/BaronSoftware.SSO.Sample/BaronSoftware.SSO.Sample.csproj @@ -0,0 +1,21 @@ + + + + WinExe + net8.0-windows + enable + enable + true + + + + + + + + + PreserveNewest + + + + diff --git a/BaronSoftware.SSO.Sample/MainWindow.xaml b/BaronSoftware.SSO.Sample/MainWindow.xaml new file mode 100644 index 0000000..37deac1 --- /dev/null +++ b/BaronSoftware.SSO.Sample/MainWindow.xaml @@ -0,0 +1,38 @@ + + + + + + + + + + + +