You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by al...@apache.org on 2012/06/18 19:18:31 UTC
git commit: CS-15018: Event USER.LOGIN should contain the client IP
address. Changes made in accordance with the coding convention. Reviewed-by:
Alena Prokharchyk
Updated Branches:
refs/heads/master 810151586 -> f6d16d0ab
CS-15018: Event USER.LOGIN should contain the client IP address. Changes made in accordance with the coding convention.
Reviewed-by: Alena Prokharchyk
Project: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/commit/f6d16d0a
Tree: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/tree/f6d16d0a
Diff: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/diff/f6d16d0a
Branch: refs/heads/master
Commit: f6d16d0ab5afea8eba1741454ea4ef371bb19916
Parents: 8101515
Author: saksham <sa...@citrix.com>
Authored: Mon Jun 4 18:45:11 2012 +0530
Committer: Alena Prokharchyk <al...@citrix.com>
Committed: Mon Jun 18 10:18:30 2012 -0700
----------------------------------------------------------------------
server/src/com/cloud/api/ApiServer.java | 4 ++--
server/src/com/cloud/api/ApiServlet.java | 2 +-
server/src/com/cloud/user/AccountManager.java | 2 +-
server/src/com/cloud/user/AccountManagerImpl.java | 10 ++++++++--
.../com/cloud/user/MockAccountManagerImpl.java | 2 +-
5 files changed, 13 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/f6d16d0a/server/src/com/cloud/api/ApiServer.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/api/ApiServer.java b/server/src/com/cloud/api/ApiServer.java
index 83133e4..fc52e06 100755
--- a/server/src/com/cloud/api/ApiServer.java
+++ b/server/src/com/cloud/api/ApiServer.java
@@ -773,7 +773,7 @@ public class ApiServer implements HttpRequestHandler {
}
}
- public void loginUser(HttpSession session, String username, String password, Long domainId, String domainPath, Map<String, Object[]> requestParameters) throws CloudAuthenticationException {
+ public void loginUser(HttpSession session, String username, String password, Long domainId, String domainPath, String loginIpAddress ,Map<String, Object[]> requestParameters) throws CloudAuthenticationException {
// We will always use domainId first. If that does not exist, we will use domain name. If THAT doesn't exist
// we will default to ROOT
if (domainId == null) {
@@ -789,7 +789,7 @@ public class ApiServer implements HttpRequestHandler {
}
}
- UserAccount userAcct = _accountMgr.authenticateUser(username, password, domainId, requestParameters);
+ UserAccount userAcct = _accountMgr.authenticateUser(username, password, domainId, loginIpAddress, requestParameters);
if (userAcct != null) {
String timezone = userAcct.getTimezone();
float offsetInHrs = 0f;
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/f6d16d0a/server/src/com/cloud/api/ApiServlet.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/api/ApiServlet.java b/server/src/com/cloud/api/ApiServlet.java
index b7b7fff..a0da657 100755
--- a/server/src/com/cloud/api/ApiServlet.java
+++ b/server/src/com/cloud/api/ApiServlet.java
@@ -203,7 +203,7 @@ public class ApiServlet extends HttpServlet {
if (username != null) {
String pwd = ((password == null) ? null : password[0]);
try {
- _apiServer.loginUser(session, username[0], pwd, domainId, domain, params);
+ _apiServer.loginUser(session, username[0], pwd, domainId, domain, req.getRemoteAddr(), params);
auditTrailSb.insert(0,
"(userId=" + session.getAttribute("userid") + " accountId=" + ((Account) session.getAttribute("accountobj")).getId() + " sessionId=" + session.getId() + ")");
String loginResponse = getLoginSuccessResponse(session, responseType);
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/f6d16d0a/server/src/com/cloud/user/AccountManager.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/user/AccountManager.java b/server/src/com/cloud/user/AccountManager.java
index a7f5a68..4c18f63 100755
--- a/server/src/com/cloud/user/AccountManager.java
+++ b/server/src/com/cloud/user/AccountManager.java
@@ -71,7 +71,7 @@ public interface AccountManager extends AccountService {
* made, and the signature itself in the single sign-on case
* @return a user object, null if the user failed to authenticate
*/
- UserAccount authenticateUser(String username, String password, Long domainId, Map<String, Object[]> requestParameters);
+ UserAccount authenticateUser(String username, String password, Long domainId, String loginIpAddress, Map<String, Object[]> requestParameters);
/**
* Locate a user by their apiKey
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/f6d16d0a/server/src/com/cloud/user/AccountManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/user/AccountManagerImpl.java b/server/src/com/cloud/user/AccountManagerImpl.java
index 35fbfe0..f26c44a 100755
--- a/server/src/com/cloud/user/AccountManagerImpl.java
+++ b/server/src/com/cloud/user/AccountManagerImpl.java
@@ -1618,7 +1618,7 @@ public class AccountManagerImpl implements AccountManager, AccountService, Manag
}
@Override
- public UserAccount authenticateUser(String username, String password, Long domainId, Map<String, Object[]> requestParameters) {
+ public UserAccount authenticateUser(String username, String password, Long domainId, String loginIpAddress, Map<String, Object[]> requestParameters) {
UserAccount user = null;
if (password != null) {
user = getUserAccount(username, password, domainId, requestParameters);
@@ -1720,7 +1720,13 @@ public class AccountManagerImpl implements AccountManager, AccountService, Manag
if (s_logger.isDebugEnabled()) {
s_logger.debug("User: " + username + " in domain " + domainId + " has successfully logged in");
}
- EventUtils.saveEvent(user.getId(), user.getAccountId(), user.getDomainId(), EventTypes.EVENT_USER_LOGIN, "user has logged in");
+ if (NetUtils.isValidIp(loginIpAddress)) {
+ EventUtils.saveEvent(user.getId(), user.getAccountId(), user.getDomainId(), EventTypes.EVENT_USER_LOGIN,
+ "user has logged in from IP Address " + loginIpAddress);
+ } else {
+ EventUtils.saveEvent(user.getId(), user.getAccountId(), user.getDomainId(), EventTypes.EVENT_USER_LOGIN,
+ "user has logged in. The IP Address cannot be determined");
+ }
return user;
} else {
if (s_logger.isDebugEnabled()) {
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/f6d16d0a/server/test/com/cloud/user/MockAccountManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/test/com/cloud/user/MockAccountManagerImpl.java b/server/test/com/cloud/user/MockAccountManagerImpl.java
index e6ab4fe..e7ee1ed 100644
--- a/server/test/com/cloud/user/MockAccountManagerImpl.java
+++ b/server/test/com/cloud/user/MockAccountManagerImpl.java
@@ -254,7 +254,7 @@ public class MockAccountManagerImpl implements Manager, AccountManager {
}
@Override
- public UserAccount authenticateUser(String username, String password, Long domainId, Map<String, Object[]> requestParameters) {
+ public UserAccount authenticateUser(String username, String password, Long domainId, String loginIpAddress, Map<String, Object[]> requestParameters) {
return null;
}