Skip to content

Commit 48ede6c

Browse files
committed
Prepare release 4.0.8
1 parent 972c6b4 commit 48ede6c

File tree

133 files changed

+6062
-458
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

133 files changed

+6062
-458
lines changed

azure-pipelines.yml

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,17 @@ steps:
8080
zipAfterPublish: false
8181
modifyOutputPath: false
8282
workingDirectory: '$(Build.Repository.LocalPath)\src\CredentialIssuer\SimpleIdServer.CredentialIssuer.Website.Startup'
83+
84+
- task: DotNetCoreCLI@2
85+
displayName: 'Publish Mobile application'
86+
inputs:
87+
command: 'publish'
88+
publishWebProjects: false
89+
arguments: '-f net7.0-android -c Release -p:AndroidKeyStore=true -p:AndroidSigningKeyStore=sidmobile.keystore -p:AndroidSigningKeyAlias=sidkey -p:AndroidSigningKeyPass=password -p:AndroidSigningStorePass=password'
90+
zipAfterPublish: false
91+
modifyOutputPath: false
92+
workingDirectory: '$(Build.Repository.LocalPath)\src\Mobile\SimpleIdServer.Mobile'
93+
8394
- task: CopyFiles@2
8495
displayName: 'Copy website'
8596
inputs:
@@ -162,4 +173,11 @@ steps:
162173
inputs:
163174
PathtoPublish: '$(Build.ArtifactStagingDirectory)\credentialissuerwebsite'
164175
ArtifactName: 'credentialissuerwebsite'
176+
publishLocation: 'Container'
177+
178+
- task: PublishBuildArtifacts@1
179+
displayName: 'Publish Mobile application'
180+
inputs:
181+
PathtoPublish: '$(Build.Repository.LocalPath)\src\Mobile\SimpleIdServer.Mobile\bin\Release\net7.0-android\publish'
182+
ArtifactName: 'mobileApp'
165183
publishLocation: 'Container'

default.ps1

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -189,6 +189,7 @@ task buildTemplate {
189189
}
190190

191191
task pack -depends release, compile, buildTemplate {
192+
exec { dotnet pack $source_dir\IdServer\SimpleIdServer.IdServer.VerifiablePresentation\SimpleIdServer.IdServer.VerifiablePresentation.csproj -c $config --no-build $versionSuffix --output $result_dir }
192193
exec { dotnet pack $source_dir\IdServer\SimpleIdServer.IdServer\SimpleIdServer.IdServer.csproj -c $config --no-build $versionSuffix --output $result_dir }
193194
exec { dotnet pack $source_dir\IdServer\SimpleIdServer.IdServer.Domains\SimpleIdServer.IdServer.Domains.csproj -c $config --no-build $versionSuffix --output $result_dir }
194195
exec { dotnet pack $source_dir\IdServer\SimpleIdServer.IdServer.Email\SimpleIdServer.IdServer.Email.csproj -c $config --no-build $versionSuffix --output $result_dir }

docker-compose.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ services:
2828
networks:
2929
proxy_net: null
3030
scim:
31-
image: simpleidserver/scim:4.0.7
31+
image: simpleidserver/scim:4.0.8
3232
environment:
3333
VIRTUAL_HOST: "scim.localhost.com"
3434
ASPNETCORE_URLS : "http://*:80"
@@ -40,7 +40,7 @@ services:
4040
networks:
4141
proxy_net: null
4242
idserver:
43-
image: simpleidserver/idserver:4.0.7
43+
image: simpleidserver/idserver:4.0.8
4444
environment:
4545
VIRTUAL_HOST: "idserver.localhost.com"
4646
ASPNETCORE_URLS : "http://*:80"
@@ -58,7 +58,7 @@ services:
5858
networks:
5959
proxy_net: null
6060
website:
61-
image: simpleidserver/website:4.0.7
61+
image: simpleidserver/website:4.0.8
6262
environment:
6363
VIRTUAL_HOST: "website.localhost.com"
6464
ASPNETCORE_URLS : "http://*:80"
@@ -73,7 +73,7 @@ services:
7373
networks:
7474
proxy_net: null
7575
credentialissuer:
76-
image: simpleidserver/credentialissuer:4.0.7
76+
image: simpleidserver/credentialissuer:4.0.8
7777
environment:
7878
VIRTUAL_HOST: "credentialissuer.localhost.com"
7979
ASPNETCORE_URLS : "http://*:80"
@@ -85,7 +85,7 @@ services:
8585
networks:
8686
proxy_net: null
8787
credentialissuerwebsite:
88-
image: simpleidserver/credentialissuerwebsite:4.0.7
88+
image: simpleidserver/credentialissuerwebsite:4.0.8
8989
environment:
9090
VIRTUAL_HOST: "credentialissuerwebsite.localhost.com"
9191
ASPNETCORE_URLS : "http://*:80"

sid-kubernetes.yaml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -229,7 +229,7 @@ spec:
229229
subdomain: localhost
230230
containers:
231231
- name: scim-deploy
232-
image: simpleidserver/scim:4.0.7
232+
image: simpleidserver/scim:4.0.8
233233
ports:
234234
- containerPort: 80
235235
env:
@@ -266,7 +266,7 @@ spec:
266266
subdomain: localhost
267267
containers:
268268
- name: idserver-deploy
269-
image: simpleidserver/idserver:4.0.7
269+
image: simpleidserver/idserver:4.0.8
270270
ports:
271271
- containerPort: 80
272272
env:
@@ -309,7 +309,7 @@ spec:
309309
subdomain: localhost
310310
containers:
311311
- name: website-deploy
312-
image: simpleidserver/website:4.0.7
312+
image: simpleidserver/website:4.0.8
313313
ports:
314314
- containerPort: 80
315315
env:
@@ -350,7 +350,7 @@ spec:
350350
subdomain: localhost
351351
containers:
352352
- name: credentialissuer-deploy
353-
image: simpleidserver/credentialissuer:4.0.7
353+
image: simpleidserver/credentialissuer:4.0.8
354354
ports:
355355
- containerPort: 80
356356
env:
@@ -385,7 +385,7 @@ spec:
385385
subdomain: localhost
386386
containers:
387387
- name: credentialissuerwebsite-deploy
388-
image: simpleidserver/credentialissuerwebsite:4.0.7
388+
image: simpleidserver/credentialissuerwebsite:4.0.8
389389
ports:
390390
- containerPort: 80
391391
env:

src/Templates/templates/SimpleIdServer.CredentialIssuer.Startup/CredentialIssuerConfiguration.cs

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
// Copyright (c) SimpleIdServer. All rights reserved.
22
// Licensed under the Apache License, Version 2.0. See LICENSE in the project root for license information.
3+
using Org.BouncyCastle.Crypto.Agreement;
34
using SimpleIdServer.CredentialIssuer.Builders;
45
using SimpleIdServer.CredentialIssuer.CredentialFormats;
56
using SimpleIdServer.CredentialIssuer.Domains;
@@ -29,7 +30,13 @@ public class CredentialIssuerConfiguration
2930
{
3031
cb.AddTranslation("Name of degree", "en-US");
3132
})
32-
.AddDisplay("University Credential", "en-US", "https://university.example.edu/public/logo.png", "A square logo of a university", null,"#12107c", "#acd2b1")
33+
.AddDisplay("University Credential", "en-US", "https://img.freepik.com/premium-vector/logo-university-name-logo-company-called-university_516670-732.jpg", "A square logo of a university", null,"#12107c", "#acd2b1")
3334
.Build()
3435
};
36+
37+
public static List<UserCredentialClaim> CredentialClaims => new List<UserCredentialClaim>
38+
{
39+
UserCredentialClaimBuilder.Build("administrator", "DegreeName", "Master degree"),
40+
UserCredentialClaimBuilder.Build("administrator", "GivenName", "SimpleIdServer")
41+
};
3542
}

src/Templates/templates/SimpleIdServer.CredentialIssuer.Startup/Program.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,7 @@
100100
.UseInMemoryStore(c =>
101101
{
102102
c.AddCredentialConfigurations(CredentialIssuerConfiguration.CredentialConfigurations);
103+
c.AddUserCredentialClaims(CredentialIssuerConfiguration.CredentialClaims);
103104
});
104105

105106
var app = builder.Build();

src/Templates/templates/SimpleIdServer.CredentialIssuer.Website.Startup/appsettings.Docker.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
"CredentialIssuerUrl": "https://credentialissuer.simpleidserver.com",
1111
"DefaultSecurityOptions": {
1212
"Issuer": "https://openid.simpleidserver.com/master",
13-
"ClientId": "SIDS-manager",
13+
"ClientId": "CredentialIssuer-manager",
1414
"ClientSecret": "password",
1515
"Scope": "openid profile",
1616
"IgnoreCertificateError": true

src/Templates/templates/SimpleIdServer.IdServer.Startup/Areas/console/Views/Authenticate/Index.cshtml

Lines changed: 42 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,9 @@
88
@{
99
ViewBag.Title = AuthenticateConsoleResource.title;
1010
Layout = "~/Views/Shared/_AuthenticateLayout.cshtml";
11+
var returnUrl = Microsoft.AspNetCore.Http.Extensions.UriHelper.GetDisplayUrl(Context.Request);
12+
var realm = SimpleIdServer.IdServer.Middlewares.RealmContext.Instance()?.Realm;
13+
var registationUrl = $"{(string.IsNullOrWhiteSpace(realm) ? "/" : $"/{realm}/")}Registration?redirectUrl={returnUrl}&workflowName={Model.RegistrationWorkflow?.Name}";
1114
}
1215

1316
@if (!ViewData.ModelState.IsValid)
@@ -23,44 +26,13 @@
2326
</ul>
2427
}
2528

26-
<!-- Login form -->
27-
@using (Html.BeginForm("Index", "Authenticate", new { area = SimpleIdServer.IdServer.Console.Constants.AMR, returnUrl = Model.ReturnUrl }, FormMethod.Post))
28-
{
29-
@Html.AntiForgeryToken()
30-
<input type="hidden" asp-for="ReturnUrl" />
31-
<input type="hidden" name="Action" value="AUTHENTICATE" />
32-
<!-- Login -->
33-
<div class="input-group mb-3">
34-
@if(Model.IsAuthInProgress)
35-
{
36-
<input asp-for="Login" placeholder="@AuthenticateConsoleResource.login" type="text" class="form-control" disabled="disabled" />
37-
<input asp-for="Login" placeholder="@AuthenticateConsoleResource.login" type="hidden" class="form-control" />
38-
}
39-
else
40-
{
41-
<input asp-for="Login" placeholder="@AuthenticateConsoleResource.login" type="text" class="form-control" />
42-
}
43-
</div>
44-
<!-- Confirmation code -->
45-
<div class="input-group mb-3">
46-
<input asp-for="OTPCode" placeholder="@AuthenticateConsoleResource.confirmationcode" type="password" class="form-control" />
47-
</div>
48-
<div>
49-
<input type="checkbox" asp-for="RememberLogin " />
50-
<label>@AuthenticateConsoleResource.remember_login</label>
51-
</div>
52-
<input asp-for="IsLoginMissing" type="hidden" class="form-control" />
53-
<input asp-for="IsAuthInProgress" type="hidden" class="form-control" />
54-
<button type="submit" class="btn btn-primary">@AuthenticateConsoleResource.authenticate</button>
55-
}
56-
5729
<!-- Send confirmation code -->
5830
<div class="mt-3">
5931
@if (!string.IsNullOrWhiteSpace(ViewBag.SuccessMessage))
6032
{
6133
<div class="alert alert-success">
6234
@AuthenticateConsoleResource.ResourceManager.GetString(ViewBag.SuccessMessage)
63-
@if(Model.TOTPStep != null)
35+
@if (Model.TOTPStep != null)
6436
{
6537
@string.Format(AuthenticateConsoleResource.code_validity, Model.TOTPStep)
6638
}
@@ -72,8 +44,11 @@
7244
@Html.AntiForgeryToken()
7345
<input type="hidden" asp-for="ReturnUrl" />
7446
<input type="hidden" name="Action" value="SENDCONFIRMATIONCODE" />
47+
<input asp-for="IsFirstAmr" type="hidden" class="form-control" />
48+
<input asp-for="IsLoginMissing" type="hidden" class="form-control" />
49+
<input asp-for="IsAuthInProgress" type="hidden" class="form-control" />
7550
<div class="input-group mb-3">
76-
@if(Model.IsAuthInProgress)
51+
@if (Model.IsAuthInProgress)
7752
{
7853
<input asp-for="Login" placeholder="@AuthenticateConsoleResource.login" type="text" class="form-control" disabled="disabled" />
7954
<input asp-for="Login" placeholder="@AuthenticateConsoleResource.login" type="hidden" class="form-control" />
@@ -83,12 +58,44 @@
8358
<input asp-for="Login" placeholder="@AuthenticateConsoleResource.login" type="text" class="form-control" />
8459
}
8560
</div>
86-
<input asp-for="IsLoginMissing" type="hidden" class="form-control" />
87-
<input asp-for="IsAuthInProgress" type="hidden" class="form-control" />
8861
<button type="submit" class="btn btn-primary">@AuthenticateConsoleResource.sendconfirmationcode</button>
8962
}
9063
</div>
9164

65+
<!-- Login form -->
66+
@using (Html.BeginForm("Index", "Authenticate", new { area = SimpleIdServer.IdServer.Console.Constants.AMR, returnUrl = Model.ReturnUrl }, FormMethod.Post))
67+
{
68+
@Html.AntiForgeryToken()
69+
<input type="hidden" asp-for="ReturnUrl" />
70+
<input type="hidden" name="Action" value="AUTHENTICATE" />
71+
<input asp-for="IsFirstAmr" type="hidden" class="form-control" />
72+
<input asp-for="IsLoginMissing" type="hidden" class="form-control" />
73+
<input asp-for="IsAuthInProgress" type="hidden" class="form-control" />
74+
<input asp-for="Login" placeholder="@AuthenticateConsoleResource.login" type="hidden" class="form-control" />
75+
<!-- Confirmation code -->
76+
<div class="input-group mb-3">
77+
<input asp-for="OTPCode" placeholder="@AuthenticateConsoleResource.confirmationcode" type="password" class="form-control" />
78+
</div>
79+
@if(Model.IsFirstAmr)
80+
{
81+
<div>
82+
<input type="checkbox" asp-for="RememberLogin " />
83+
<label>@AuthenticateConsoleResource.remember_login</label>
84+
</div>
85+
}
86+
<button type="submit" class="btn btn-primary">@AuthenticateConsoleResource.authenticate</button>
87+
}
88+
89+
@if (Model.IsFirstAmr && Model.RegistrationWorkflow != null)
90+
{
91+
<div>
92+
<div class="divider">
93+
<p class="fw-bold text">OR</p>
94+
</div>
95+
<a href="@registationUrl">@AuthenticatePasswordResource.register</a>
96+
</div>
97+
}
98+
9299
@section SubScripts {
93100
<script type="text/javascript">
94101
$(document).ready(function () {

src/Templates/templates/SimpleIdServer.IdServer.Startup/Areas/email/Views/Authenticate/Index.cshtml

Lines changed: 41 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,9 @@
88
@{
99
ViewBag.Title = AuthenticateEmailResource.title;
1010
Layout = "~/Views/Shared/_AuthenticateLayout.cshtml";
11+
var returnUrl = Microsoft.AspNetCore.Http.Extensions.UriHelper.GetDisplayUrl(Context.Request);
12+
var realm = SimpleIdServer.IdServer.Middlewares.RealmContext.Instance()?.Realm;
13+
var registationUrl = $"{(string.IsNullOrWhiteSpace(realm) ? "/" : $"/{realm}/")}Registration?redirectUrl={returnUrl}&workflowName={Model.RegistrationWorkflow?.Name}";
1114
}
1215

1316
@if (!ViewData.ModelState.IsValid)
@@ -31,37 +34,6 @@
3134
}
3235
else
3336
{
34-
<!-- Login form -->
35-
@using (Html.BeginForm("Index", "Authenticate", new { area = SimpleIdServer.IdServer.Email.Constants.AMR, returnUrl = Model.ReturnUrl }, FormMethod.Post))
36-
{
37-
@Html.AntiForgeryToken()
38-
<input type="hidden" asp-for="ReturnUrl" />
39-
<input type="hidden" name="Action" value="AUTHENTICATE" />
40-
<!-- Email -->
41-
<div class="input-group mb-3">
42-
@if(Model.IsAuthInProgress)
43-
{
44-
<input asp-for="Login" placeholder="@AuthenticateEmailResource.email" type="text" class="form-control" disabled="disabled" />
45-
<input asp-for="Login" placeholder="@AuthenticateEmailResource.email" type="hidden" class="form-control" />
46-
}
47-
else
48-
{
49-
<input asp-for="Login" placeholder="@AuthenticateEmailResource.email" type="text" class="form-control" />
50-
}
51-
</div>
52-
<!-- Confirmation code -->
53-
<div class="input-group mb-3">
54-
<input asp-for="OTPCode" placeholder="@AuthenticateEmailResource.confirmationcode" type="password" class="form-control" />
55-
</div>
56-
<div>
57-
<input type="checkbox" asp-for="RememberLogin " />
58-
<label>@AuthenticateEmailResource.remember_login</label>
59-
</div>
60-
<input asp-for="IsLoginMissing" type="hidden" class="form-control" />
61-
<input asp-for="IsAuthInProgress" type="hidden" class="form-control" />
62-
<button type="submit" class="btn btn-primary">@AuthenticateEmailResource.authenticate</button>
63-
}
64-
6537
<!-- Send confirmation code -->
6638
<div class="mt-3">
6739
@if (!string.IsNullOrWhiteSpace(ViewBag.SuccessMessage))
@@ -80,6 +52,9 @@ else
8052
@Html.AntiForgeryToken()
8153
<input type="hidden" asp-for="ReturnUrl" />
8254
<input type="hidden" name="Action" value="SENDCONFIRMATIONCODE" />
55+
<input asp-for="IsFirstAmr" type="hidden" class="form-control" />
56+
<input asp-for="IsLoginMissing" type="hidden" class="form-control" />
57+
<input asp-for="IsAuthInProgress" type="hidden" class="form-control" />
8358
<div class="input-group mb-3">
8459
@if(Model.IsAuthInProgress)
8560
{
@@ -91,11 +66,45 @@ else
9166
<input asp-for="Login" placeholder="@AuthenticateEmailResource.email" type="text" class="form-control" />
9267
}
9368
</div>
69+
<button type="submit" class="btn btn-primary">@AuthenticateEmailResource.sendconfirmationcode</button>
70+
}
71+
</div>
72+
73+
<!-- Login form -->
74+
<div class="mt-3">
75+
@using (Html.BeginForm("Index", "Authenticate", new { area = SimpleIdServer.IdServer.Email.Constants.AMR, returnUrl = Model.ReturnUrl }, FormMethod.Post))
76+
{
77+
@Html.AntiForgeryToken()
78+
<input type="hidden" asp-for="ReturnUrl" />
79+
<input type="hidden" name="Action" value="AUTHENTICATE" />
80+
<input asp-for="IsFirstAmr" type="hidden" class="form-control" />
9481
<input asp-for="IsLoginMissing" type="hidden" class="form-control" />
9582
<input asp-for="IsAuthInProgress" type="hidden" class="form-control" />
96-
<button type="submit" class="btn btn-primary">@AuthenticateEmailResource.sendconfirmationcode</button>
83+
<input asp-for="Login" placeholder="@AuthenticateEmailResource.email" type="hidden" class="form-control" />
84+
<!-- Confirmation code -->
85+
<div class="input-group mb-3">
86+
<input asp-for="OTPCode" placeholder="@AuthenticateEmailResource.confirmationcode" type="password" class="form-control" />
87+
</div>
88+
@if(Model.IsFirstAmr)
89+
{
90+
<div>
91+
<input type="checkbox" asp-for="RememberLogin " />
92+
<label>@AuthenticateEmailResource.remember_login</label>
93+
</div>
94+
}
95+
<button type="submit" class="btn btn-primary">@AuthenticateEmailResource.authenticate</button>
9796
}
9897
</div>
98+
99+
@if (Model.IsFirstAmr && Model.RegistrationWorkflow != null)
100+
{
101+
<div>
102+
<div class="divider">
103+
<p class="fw-bold text">OR</p>
104+
</div>
105+
<a href="@registationUrl">@AuthenticatePasswordResource.register</a>
106+
</div>
107+
}
99108
}
100109

101110
@section SubScripts {

0 commit comments

Comments
 (0)