Hi liangshiwei, Thanks for your support
I added this lines
# Install Node.js and NPM
RUN apt-get update && \
apt-get install -y nodejs npm && \
rm -rf /var/lib/apt/lists/*
I am getting these warnings again this time.
# 13 45.89 npm WARN deprecated fsevents@1.2.9: The v1 package contains DANGEROUS / INSECURE binaries. Upgrade to safe fsevents v2
# 13 49.76 npm WARN deprecated cuid@2.1.8: Cuid and other k-sortable and non-cryptographic ids (Ulid, ObjectId, KSUID, all UUIDs) are all insecure. Use @paralleldrive/cuid2 instead.
# 13 51.89 npm WARN deprecated urix@0.1.0: Please see https://github.com/lydell/urix# deprecated
# 13 51.90 npm WARN deprecated source-map-url@0.4.0: See https://github.com/lydell/source-map-url# deprecated
# 13 51.94 npm WARN deprecated resolve-url@0.2.1: https://github.com/lydell/resolve-url# deprecated
# 13 52.12 npm WARN deprecated set-value@0.4.3: Critical bug fixed in v3.0.1, please upgrade to the latest version.
# 13 52.16 npm WARN deprecated set-value@2.0.0: Critical bug fixed in v3.0.1, please upgrade to the latest version.
# 13 52.25 npm WARN deprecated mixin-deep@1.3.1: Critical bug fixed in v2.0.1, please upgrade to the latest version.
# 13 52.31 npm WARN deprecated source-map-resolve@0.5.1: See https://github.com/lydell/source-map-resolve# deprecated
# 13 52.39 npm WARN deprecated ini@1.3.5: Please update to ini >=1.3.6 to avoid a prototype pollution issue
# 13 53.61 npm WARN deprecated chokidar@2.1.6: Chokidar 2 does not receive security updates since 2019. Upgrade to chokidar 3 with 15x fewer dependencies
# 13 55.12 npm WARN deprecated flag-icon-css@4.1.7: The project has been renamed to flag-icons
I'm not getting errors anymore, but what should I do to avoid receiving these warnings as well ?
I have a Dockerfile in my Abp project (in aspnet-core folder) as shown below..
Dockerfile:
FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build-env
WORKDIR /App
RUN dotnet tool install -g Volo.Abp.Cli --version 5.3.3
# Copy everything
COPY . ./
#this line added
RUN /root/.dotnet/tools/abp install-libs
# Restore as distinct layers
RUN dotnet restore
# Build and publish a release
RUN dotnet publish -c Release -o out
# Build runtime image
FROM mcr.microsoft.com/dotnet/aspnet:6.0
WORKDIR /App
COPY --from=build-env /App/out .
ENTRYPOINT ["dotnet", "MyCompany.HttpApi.Host.dll"]
I'm encountering the error Volo.Abp.AbpException: Could not find file '/libs/abp/core/abp.css' in the application.
So I added the RUN /root/.dotnet/tools/abp install-libs
line because the wwwroot/libs
folder is not created within the Docker container.
However, now I'm getting the error:
#11 1.284 [20:30:31 WRN] NPM is not installed, visit https://nodejs.org/en/download/ and install NPM.
What should I do?
jenkins(is a ubuntu server) console output:
+ docker build -t gcr.io/test/myCompany-api:240 -f MyCompany/aspnet-core/Dockerfile MyCompany/aspnet-core
# 1 [internal] load .dockerignore
# 1 transferring context: 358B done
# 1 DONE 0.0s
# 2 [internal] load build definition from Dockerfile
# 2 transferring dockerfile: 593B done
# 2 DONE 0.0s
# 3 [internal] load metadata for mcr.microsoft.com/dotnet/sdk:6.0
# 3 DONE 0.1s
# 4 [internal] load metadata for mcr.microsoft.com/dotnet/aspnet:6.0
# 4 DONE 0.2s
# 5 [build-env 1/7] FROM mcr.microsoft.com/dotnet/sdk:6.0@sha256:6816906adc86b96630fd58c86d73e49f01c9403aeef4a5c76c2b1de4f15753ff
# 5 DONE 0.0s
# 6 [stage-2 1/3] FROM mcr.microsoft.com/dotnet/aspnet:6.0@sha256:97cb6ea106e157df9c3db7b2c50884141d0d0764d465104d7515bf409d7c99d3
# 6 DONE 0.0s
# 7 [internal] load build context
# 7 transferring context: 326.25kB 0.1s done
# 7 DONE 0.1s
# 8 [build-env 2/7] WORKDIR /App
# 8 CACHED
# 9 [build-env 3/7] RUN dotnet tool install -g Volo.Abp.Cli --version 5.3.3
# 9 CACHED
# 10 [build-env 4/7] COPY . ./
# 10 DONE 0.3s
# 11 [build-env 5/7] RUN /root/.dotnet/tools/abp install-libs
# 11 0.646 [20:30:31 INF] ABP CLI (https://abp.io)
# 11 0.844 [20:30:31 INF] Version 5.3.3 (Stable)
# 11 1.262 [20:30:31 WRN] ABP CLI has a newer stable version 7.4.2, please update to get the latest features and fixes.
# 11 1.262 [20:30:31 WRN]
# 11 1.262 [20:30:31 WRN] Update Command:
# 11 1.262 [20:30:31 WRN] dotnet tool update -g Volo.Abp.Cli
# 11 1.263 [20:30:31 WRN]
# 11 1.284 [20:30:31 WRN] NPM is not installed, visit https://nodejs.org/en/download/ and install NPM
# 11 DONE 1.3s
Hi liangshiwei, Thanks for your support!
Hi liangshiwei, If I write the example code exactly as below, it creates a user in the AbpUsers table. If I log in again with the same user through an external provider, this time the CreateExternalUserAsync method is not triggered. Your suggestion works and is effective, but it means that the method (CreateExternalUserAsync) will always check whether the user exists before being called
[ExposeServices(typeof(LoginModel))]
public class MyLoginModel : LoginModel
{
protected virtual async Task<IdentityUser> CreateExternalUserAsync(ExternalLoginInfo info)
{
var user = await base.CreateExternalUserAsync(info);
}
}
adding external Login provider :
private void ConfigureExternalProviders(ServiceConfigurationContext context, IConfiguration configuration)
{
context.Services.AddAuthentication()
.AddOpenIdConnect("oidc", options =>
{
options.Authority = "https://localhost:44366/";
options.RequireHttpsMetadata = Convert.ToBoolean(configuration["AuthServer:RequireHttpsMetadata"]); ;
options.ResponseType = OpenIdConnectResponseType.CodeIdToken;
options.ClientId = "Client1";
options.ClientSecret = "mysecret";
options.UsePkce = true;
options.SaveTokens = true;
options.GetClaimsFromUserInfoEndpoint = true;
options.Scope.Add("role");
options.Scope.Add("email");
options.Scope.Add("phone");
options.ClaimActions.MapJsonKey(ClaimTypes.NameIdentifier, "sub");
}
);
Hi Liangshiwei,
Thank you for your response, I appreciate your answer and I understand it very well. However, it seems like a workaround solution. I want to override the place where the decision to trigger this method is made. Even if I override the CreateExternalUserAsync method, it will still attempt to find the user every time and not be able to find it
Hi, After a successful login from an external login provider, I want to manually check whether the user exists in my system and then when I find the appropriate user, log them into my system (especially for tenant users)
Note : External login provider is an another Abp project
I want the logged-in and deactivated user to be unable to perform any actions in the application or to force log out when they click anywhere. Is there a way to achieve this?
As expressed by the user @mgurer , the methods of the class we implemented from IAbpClaimsPrincipalContributor are not being triggered in the refresh token flow. Therefore, we created a class derived from MyPrepareAccessTokenPrincipal. However, within the HandleAsync, how can we use our repository class?
public ValueTask HandleAsync(OpenIddictServerEvents.ProcessSignInContext context)
{
var identity = context.AccessTokenPrincipal?.Identities.FirstOrDefault();
var userId = identity?.FindUserId();
if (userId!=null)
{
var user = userRepository.GetAsync(userId); //<-- HOW CAN I INJECT userRepository
}
return default;
}