mirror of
https://github.com/scm-manager/scm-manager.git
synced 2025-11-09 15:05:44 +01:00
fix exception on login, if an external authenticator returns a changed user object
This commit is contained in:
@@ -121,9 +121,8 @@ public class ScmRealm extends AuthorizingRealm
|
|||||||
*/
|
*/
|
||||||
@Inject
|
@Inject
|
||||||
public ScmRealm(ScmConfiguration configuration,
|
public ScmRealm(ScmConfiguration configuration,
|
||||||
LoginAttemptHandler loginAttemptHandler,
|
LoginAttemptHandler loginAttemptHandler, AuthorizationCollector collector,
|
||||||
AuthorizationCollector collector,UserManager userManager,
|
UserManager userManager, GroupManager groupManager, UserDAO userDAO,
|
||||||
GroupManager groupManager, UserDAO userDAO,
|
|
||||||
AuthenticationManager authenticator, RepositoryManager manager,
|
AuthenticationManager authenticator, RepositoryManager manager,
|
||||||
Provider<HttpServletRequest> requestProvider,
|
Provider<HttpServletRequest> requestProvider,
|
||||||
Provider<HttpServletResponse> responseProvider)
|
Provider<HttpServletResponse> responseProvider)
|
||||||
@@ -150,8 +149,6 @@ public class ScmRealm extends AuthorizingRealm
|
|||||||
setPermissionResolver(new RepositoryPermissionResolver());
|
setPermissionResolver(new RepositoryPermissionResolver());
|
||||||
}
|
}
|
||||||
|
|
||||||
private final LoginAttemptHandler loginAttemptHandler;
|
|
||||||
|
|
||||||
//~--- methods --------------------------------------------------------------
|
//~--- methods --------------------------------------------------------------
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -198,6 +195,7 @@ public class ScmRealm extends AuthorizingRealm
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
loginAttemptHandler.onUnsuccessfulAuthentication(authToken, result);
|
loginAttemptHandler.onUnsuccessfulAuthentication(authToken, result);
|
||||||
|
|
||||||
throw new AccountException("authentication failed");
|
throw new AccountException("authentication failed");
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -362,7 +360,10 @@ public class ScmRealm extends AuthorizingRealm
|
|||||||
// modify existing user, copy properties except password and admin
|
// modify existing user, copy properties except password and admin
|
||||||
if (user.copyProperties(dbUser, false))
|
if (user.copyProperties(dbUser, false))
|
||||||
{
|
{
|
||||||
userManager.modify(dbUser);
|
user.setLastModified(System.currentTimeMillis());
|
||||||
|
UserEventHack.fireEvent(userManager, user, HandlerEvent.BEFORE_MODIFY);
|
||||||
|
userDAO.modify(user);
|
||||||
|
UserEventHack.fireEvent(userManager, user, HandlerEvent.MODIFY);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -547,6 +548,9 @@ public class ScmRealm extends AuthorizingRealm
|
|||||||
/** Field description */
|
/** Field description */
|
||||||
private final GroupManager groupManager;
|
private final GroupManager groupManager;
|
||||||
|
|
||||||
|
/** Field description */
|
||||||
|
private final LoginAttemptHandler loginAttemptHandler;
|
||||||
|
|
||||||
/** Field description */
|
/** Field description */
|
||||||
private final Provider<HttpServletRequest> requestProvider;
|
private final Provider<HttpServletRequest> requestProvider;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user