Skip to content
This repository was archived by the owner on Dec 13, 2018. It is now read-only.
This repository was archived by the owner on Dec 13, 2018. It is now read-only.

Remove default tasks for OIDC notifications, perform null check before any work. #307

Closed
@brentschmaltz

Description

@brentschmaltz

The constructor sets no-op notifications.

public OpenIdConnectAuthenticationNotifications()
        {
            AuthenticationFailed = notification => Task.FromResult(0);
            AuthorizationCodeReceived = notification => Task.FromResult(0);
            MessageReceived = notification => Task.FromResult(0);
            SecurityTokenReceived = notification => Task.FromResult(0);
            SecurityTokenValidated = notification => Task.FromResult(0);
            RedirectToIdentityProvider = notification => Task.FromResult(0);
        }

This results in the handler doing a bunch of work for nothing. Wrap the whole thing in:
if (... != null ) { do work }
instead of:

 var messageReceivedNotification =
     new MessageReceivedNotification<OpenIdConnectMessage, OpenIdConnectAuthenticationOptions>(Context, Options)
     {
         ProtocolMessage = message
     };

 await Options.Notifications.MessageReceived(messageReceivedNotification);
 if (messageReceivedNotification.HandledResponse)
 {
     Logger.LogVerbose(Resources.OIDCH_0002_MessageReceivedNotificationHandledResponse);
     return messageReceivedNotification.AuthenticationTicket;
 }

 if (messageReceivedNotification.Skipped)
 {
     Logger.LogVerbose(Resources.OIDCH_0003_MessageReceivedNotificationSkipped);
     return null;
 }

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions