Compare commits
3 Commits
15f5e43e34
...
APIDEV-0.1
| Author | SHA1 | Date | |
|---|---|---|---|
| 9fae3b978f | |||
| 822a8379aa | |||
| a5d5ed048f |
@ -9,7 +9,7 @@ steps:
|
||||
commands:
|
||||
- rm -f tags.txt
|
||||
- echo ${CI_COMMIT_TAG} | sed -e "s/^APIDEV-//" >> tags.txt
|
||||
- echo "latest-dev"
|
||||
- echo "latest-dev" >> tags.txt
|
||||
- name: (YABA.API) Determining Docker image version number (prod)
|
||||
image: alpine:latest
|
||||
when:
|
||||
@ -17,7 +17,7 @@ steps:
|
||||
commands:
|
||||
- rm -f tags.txt
|
||||
- echo ${CI_COMMIT_TAG} | sed -e "s/^API-//" >> tags.txt
|
||||
- echo "latest"
|
||||
- echo "latest" >> tags.txt
|
||||
- name: (YABA.API) Package and Upload Docker Image
|
||||
image: woodpeckerci/plugin-docker-buildx
|
||||
settings:
|
||||
|
||||
@ -4,21 +4,23 @@ when:
|
||||
steps:
|
||||
- name: (YABA.Web) Determining Docker image version number (dev)
|
||||
when:
|
||||
- refs: refs/tags/WEBDEV-*
|
||||
- ref: refs/tags/WEBDEV-*
|
||||
image: alpine:latest
|
||||
commands:
|
||||
- rm -f tags.txt
|
||||
- echo ${CI_COMMIT_TAG} | sed -e "s/^WEBDEV-//" >> tags.txt
|
||||
- echo "latest-dev"
|
||||
- echo "latest-dev" >> tags.txt
|
||||
- name: (YABA.Web) Determining Docker image version number (prod)
|
||||
when:
|
||||
- refs: refs/tags/WEB-*
|
||||
- ref: refs/tags/WEB-*
|
||||
image: alpine:latest
|
||||
commands:
|
||||
- rm -f tags.txt
|
||||
- echo ${CI_COMMIT_TAG} | sed -e "s/^WEB-//" >> tags.txt
|
||||
- echo "latest"
|
||||
- name: (YABA.Web) Package and Upload Docker Image
|
||||
- echo "latest" >> tags.txt
|
||||
- name: (YABA.Web) Package and Upload Docker Image (dev)
|
||||
when:
|
||||
- ref: refs/tags/WEBDEV-*
|
||||
image: woodpeckerci/plugin-docker-buildx
|
||||
settings:
|
||||
repo: gitea.iwanaga.moe/cjtibule/yaba/web
|
||||
@ -30,5 +32,21 @@ steps:
|
||||
password:
|
||||
from_secret: gitea_yaba_registry_password
|
||||
registry: gitea.iwanaga.moe
|
||||
build_args_from_env:
|
||||
build_args:
|
||||
from_secret: DEV1_BUILDARGS
|
||||
- name: (YABA.Web) Package and Upload Docker Image (prod)
|
||||
when:
|
||||
- ref: refs/tags/WEB-*
|
||||
image: woodpeckerci/plugin-docker-buildx
|
||||
settings:
|
||||
repo: gitea.iwanaga.moe/cjtibule/yaba/web
|
||||
context: ./Web
|
||||
dockerfile: ./Web/Dockerfile
|
||||
tags_file: tags.txt
|
||||
username:
|
||||
from_secret: gitea_yaba_registry_username
|
||||
password:
|
||||
from_secret: gitea_yaba_registry_password
|
||||
registry: gitea.iwanaga.moe
|
||||
build_args:
|
||||
from_secret: PROD_BUILDARGS
|
||||
@ -13,7 +13,9 @@ ENV ASPNETCORE_Authentication__Auth0__Domain=
|
||||
ENV ASPNETCORE_Authentication__Auth0__Identifier=
|
||||
ENV ASPNETCORE_ConnectionStrings__YABAReadOnlyDbConnectionString=
|
||||
ENV ASPNETCORE_ConnectionStrings__YABAReadWriteDbConnectionString=
|
||||
ENV ASPNETCORE_WebClient__Url=
|
||||
ENV WebClient__Url=
|
||||
ENV Serilog__WriteTo__1__Args__Uri=
|
||||
ENV Serilog__WriteTo__1__Args__Labels__1__Value=
|
||||
|
||||
FROM mcr.microsoft.com/dotnet/sdk:6.0-alpine AS build
|
||||
WORKDIR /src
|
||||
|
||||
@ -2,6 +2,7 @@
|
||||
using YABA.API.Extensions;
|
||||
using YABA.Common.Extensions;
|
||||
using YABA.Common.Lookups;
|
||||
using YABA.Common.Utils;
|
||||
using YABA.Service.Interfaces;
|
||||
|
||||
namespace YABA.API.Middlewares
|
||||
@ -31,7 +32,7 @@ namespace YABA.API.Middlewares
|
||||
userId = registedUser.Id;
|
||||
}
|
||||
|
||||
httpContext.User.Identities.FirstOrDefault().AddClaim(new Claim(ClaimsLookup.UserId.GetClaimName(), userId.ToString()));
|
||||
httpContext.User.Identities.FirstOrDefault().AddClaim(new Claim(ClaimsLookup.UserId.GetClaimName(EnvironmentUtils.IsDevelopmentEnvironment()), userId.ToString()));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -4,11 +4,13 @@ namespace YABA.Common.Attributes
|
||||
{
|
||||
public class ClaimNameAttribute : Attribute
|
||||
{
|
||||
public string Name { get; private set; }
|
||||
public string DevClaimName { get; private set; }
|
||||
public string ProdClaimName { get; private set; }
|
||||
|
||||
public ClaimNameAttribute(string name)
|
||||
public ClaimNameAttribute(string devClaimName, string prodClaimName)
|
||||
{
|
||||
this.Name = name;
|
||||
this.DevClaimName = devClaimName;
|
||||
ProdClaimName = prodClaimName;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -28,9 +28,9 @@ namespace YABA.Common.Extensions
|
||||
return enumValue.GetAttribute<DisplayAttribute>().Name;
|
||||
}
|
||||
|
||||
public static string GetClaimName(this ClaimsLookup claimLookup)
|
||||
public static string GetClaimName(this ClaimsLookup claimLookup, bool isDevelopmentEnvironment)
|
||||
{
|
||||
return claimLookup.GetAttribute<ClaimNameAttribute>().Name;
|
||||
return isDevelopmentEnvironment ? claimLookup.GetAttribute<ClaimNameAttribute>().DevClaimName : claimLookup.GetAttribute<ClaimNameAttribute>().ProdClaimName;
|
||||
}
|
||||
|
||||
public static bool IsCrudResultSuccessful(this CrudResultLookup importStatusLookup) => SuccessfulCrudStatuses.Contains(importStatusLookup);
|
||||
|
||||
@ -1,6 +1,8 @@
|
||||
using System.Security.Claims;
|
||||
using System;
|
||||
using System.Security.Claims;
|
||||
using System.Security.Principal;
|
||||
using YABA.Common.Lookups;
|
||||
using YABA.Common.Utils;
|
||||
|
||||
namespace YABA.Common.Extensions
|
||||
{
|
||||
@ -12,7 +14,7 @@ namespace YABA.Common.Extensions
|
||||
public static string GetCustomClaim(this IIdentity identity, ClaimsLookup claim)
|
||||
{
|
||||
var claimsIdentity = identity as ClaimsIdentity;
|
||||
return claimsIdentity.FindFirst(claim.GetClaimName())?.Value.ToString();
|
||||
return claimsIdentity.FindFirst(claim.GetClaimName(EnvironmentUtils.IsDevelopmentEnvironment()))?.Value.ToString();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -4,19 +4,19 @@ namespace YABA.Common.Lookups
|
||||
{
|
||||
public enum ClaimsLookup
|
||||
{
|
||||
[ClaimNameAttribute("https://dev.iwanaga.moe/api/auth_provider_id")]
|
||||
[ClaimName("https://auth.dev.iwanaga.moe/api/auth_provider_id", "https://auth.iwanaga.moe/api/auth_provider_id")]
|
||||
AuthProviderId = 1,
|
||||
|
||||
[ClaimNameAttribute("https://dev.iwanaga.moe/api/email_address")]
|
||||
[ClaimName("https://auth.dev.iwanaga.moe/api/email_address", "https://auth.iwanaga.moe/api/email_address")]
|
||||
UserEmail = 2,
|
||||
|
||||
[ClaimNameAttribute("https://dev.iwanaga.moe/api/email_verified")]
|
||||
[ClaimName("https://auth.dev.iwanaga.moe/api/email_verified", "https://auth.iwanaga.moe/api/email_verified")]
|
||||
IsEmailConfirmed = 3,
|
||||
|
||||
[ClaimNameAttribute("https://dev.iwanaga.moe/api/username")]
|
||||
[ClaimName("https://auth.dev.iwanaga.moe/api/username", "https://auth.iwanaga.moe/api/username")]
|
||||
Username = 4,
|
||||
|
||||
[ClaimNameAttribute("https://dev.iwanaga.moe/api/id")]
|
||||
[ClaimName("https://auth.dev.iwanaga.moe/api/id", "https://auth.iwanaga.moe/api/id")]
|
||||
UserId = 5
|
||||
}
|
||||
}
|
||||
|
||||
9
API/YABA.Common/Utils/EnvironmentUtils.cs
Normal file
9
API/YABA.Common/Utils/EnvironmentUtils.cs
Normal file
@ -0,0 +1,9 @@
|
||||
using System;
|
||||
|
||||
namespace YABA.Common.Utils
|
||||
{
|
||||
public static class EnvironmentUtils
|
||||
{
|
||||
public static bool IsDevelopmentEnvironment() => Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") == "Development";
|
||||
}
|
||||
}
|
||||
@ -1,6 +1,5 @@
|
||||
server {
|
||||
listen 80;
|
||||
server_name localhost;
|
||||
root /usr/share/nginx/html;
|
||||
index index.html;
|
||||
location / {
|
||||
|
||||
Reference in New Issue
Block a user