@ -20,11 +20,11 @@ namespace Volo.Abp.IdentityServer.AspNetIdentity
{
public class AbpResourceOwnerPasswordValidator : IResourceOwnerPasswordValidator
{
private readonly SignInManager < IdentityUser > _ signInManager ;
private readonly IEventService _ events ;
private readonly UserManager < IdentityUser > _ userManager ;
private readonly ILogger < ResourceOwnerPasswordValidator < IdentityUser > > _l ogger ;
private readonly IStringLocalizer < AbpIdentityServerResource > _l ocalizer ;
protected SignInManager < IdentityUser > SignInManager { get ; }
protected IEventService Events { get ; }
protected UserManager < IdentityUser > UserManager { get ; }
protected ILogger < ResourceOwnerPasswordValidator < IdentityUser > > Logger { get ; }
protected IStringLocalizer < AbpIdentityServerResource > Localizer { get ; }
public AbpResourceOwnerPasswordValidator (
UserManager < IdentityUser > userManager ,
@ -33,11 +33,11 @@ namespace Volo.Abp.IdentityServer.AspNetIdentity
ILogger < ResourceOwnerPasswordValidator < IdentityUser > > logger ,
IStringLocalizer < AbpIdentityServerResource > localizer )
{
_ u serManager = userManager ;
_ s ignInManager = signInManager ;
_ e vents = events ;
_l ogger = logger ;
_l ocalizer = localizer ;
U serManager = userManager ;
S ignInManager = signInManager ;
E vents = events ;
L ogger = logger ;
L ocalizer = localizer ;
}
/// <summary>
@ -49,17 +49,17 @@ namespace Volo.Abp.IdentityServer.AspNetIdentity
public virtual async Task ValidateAsync ( ResourceOwnerPasswordValidationContext context )
{
await ReplaceEmailToUsernameOfInputIfNeeds ( context ) ;
var user = await _ u serManager. FindByNameAsync ( context . UserName ) ;
var user = await U serManager. FindByNameAsync ( context . UserName ) ;
string errorDescription ;
if ( user ! = null )
{
var result = await _ s ignInManager. CheckPasswordSignInAsync ( user , context . Password , true ) ;
var result = await S ignInManager. CheckPasswordSignInAsync ( user , context . Password , true ) ;
if ( result . Succeeded )
{
var sub = await _ u serManager. GetUserIdAsync ( user ) ;
var sub = await U serManager. GetUserIdAsync ( user ) ;
_l ogger . LogInformation ( "Credentials validated for username: {username}" , context . UserName ) ;
await _ e vents. RaiseAsync ( new UserLoginSuccessEvent ( context . UserName , sub , context . UserName , interactive : false ) ) ;
L ogger. LogInformation ( "Credentials validated for username: {username}" , context . UserName ) ;
await E vents. RaiseAsync ( new UserLoginSuccessEvent ( context . UserName , sub , context . UserName , interactive : false ) ) ;
var additionalClaims = new List < Claim > ( ) ;
@ -75,28 +75,28 @@ namespace Volo.Abp.IdentityServer.AspNetIdentity
}
else if ( result . IsLockedOut )
{
_l ogger . LogInformation ( "Authentication failed for username: {username}, reason: locked out" , context . UserName ) ;
await _ e vents. RaiseAsync ( new UserLoginFailureEvent ( context . UserName , "locked out" , interactive : false ) ) ;
errorDescription = _l ocalizer [ "UserLockedOut" ] ;
L ogger. LogInformation ( "Authentication failed for username: {username}, reason: locked out" , context . UserName ) ;
await E vents. RaiseAsync ( new UserLoginFailureEvent ( context . UserName , "locked out" , interactive : false ) ) ;
errorDescription = L ocalizer[ "UserLockedOut" ] ;
}
else if ( result . IsNotAllowed )
{
_l ogger . LogInformation ( "Authentication failed for username: {username}, reason: not allowed" , context . UserName ) ;
await _ e vents. RaiseAsync ( new UserLoginFailureEvent ( context . UserName , "not allowed" , interactive : false ) ) ;
errorDescription = _l ocalizer [ "LoginIsNotAllowed" ] ;
L ogger. LogInformation ( "Authentication failed for username: {username}, reason: not allowed" , context . UserName ) ;
await E vents. RaiseAsync ( new UserLoginFailureEvent ( context . UserName , "not allowed" , interactive : false ) ) ;
errorDescription = L ocalizer[ "LoginIsNotAllowed" ] ;
}
else
{
_l ogger . LogInformation ( "Authentication failed for username: {username}, reason: invalid credentials" , context . UserName ) ;
await _ e vents. RaiseAsync ( new UserLoginFailureEvent ( context . UserName , "invalid credentials" , interactive : false ) ) ;
errorDescription = _l ocalizer [ "InvalidUserNameOrPassword" ] ;
L ogger. LogInformation ( "Authentication failed for username: {username}, reason: invalid credentials" , context . UserName ) ;
await E vents. RaiseAsync ( new UserLoginFailureEvent ( context . UserName , "invalid credentials" , interactive : false ) ) ;
errorDescription = L ocalizer[ "InvalidUserNameOrPassword" ] ;
}
}
else
{
_l ogger . LogInformation ( "No user found matching username: {username}" , context . UserName ) ;
await _ e vents. RaiseAsync ( new UserLoginFailureEvent ( context . UserName , "invalid username" , interactive : false ) ) ;
errorDescription = _l ocalizer [ "InvalidUsername" ] ;
L ogger. LogInformation ( "No user found matching username: {username}" , context . UserName ) ;
await E vents. RaiseAsync ( new UserLoginFailureEvent ( context . UserName , "invalid username" , interactive : false ) ) ;
errorDescription = L ocalizer[ "InvalidUsername" ] ;
}
context . Result = new GrantValidationResult ( TokenRequestErrors . InvalidGrant , errorDescription ) ;
@ -109,13 +109,13 @@ namespace Volo.Abp.IdentityServer.AspNetIdentity
return ;
}
var userByUsername = await _ u serManager. FindByNameAsync ( context . UserName ) ;
var userByUsername = await U serManager. FindByNameAsync ( context . UserName ) ;
if ( userByUsername ! = null )
{
return ;
}
var userByEmail = await _ u serManager. FindByEmailAsync ( context . UserName ) ;
var userByEmail = await U serManager. FindByEmailAsync ( context . UserName ) ;
if ( userByEmail = = null )
{
return ;