Index: forgon-core/src/main/java/com/forgon/log/model/Log.java =================================================================== diff -u -r17573 -r17641 --- forgon-core/src/main/java/com/forgon/log/model/Log.java (.../Log.java) (revision 17573) +++ forgon-core/src/main/java/com/forgon/log/model/Log.java (.../Log.java) (revision 17641) @@ -30,6 +30,7 @@ public static final String LOG_TYPE_MODIFY_TOUSSE_BORROW_PRICE = "修改器械包借出价格"; public static final String LOG_TYPE_MODIFY_TOUSSE_PROXY_PRICE = "修改器械包代理灭菌价格"; + public static final String MODEL_LOGIN = "登录"; public static final String MODEL_APPLICATION = "申请模块"; public static final String MODEL_RECYCLINGRECORD = "回收模块"; public static final String MODEL_WASH = "清洗模块"; @@ -47,6 +48,7 @@ public static final String MODEL_BORROW = "借物管理模块"; public static final String MODEL_SIGN = "签收模块"; public static final String MODEL_DEVICE_INTERFACE = "设备接口模块"; + public static final String MODEL_OPERATION_RESERVATION = "手术预约"; public static final String TYPE_ADD = "A";//添加 public static final String TYPE_UPDATE = "U";//修改 Index: forgon-core/src/main/java/com/forgon/log/service/LogManager.java =================================================================== diff -u -r16407 -r17641 --- forgon-core/src/main/java/com/forgon/log/service/LogManager.java (.../LogManager.java) (revision 16407) +++ forgon-core/src/main/java/com/forgon/log/service/LogManager.java (.../LogManager.java) (revision 17641) @@ -18,6 +18,7 @@ public interface LogManager { public static final String BARCODE_TYPE_INVALID = "错误条码"; + @Deprecated public void writeLog(Authentication auth, String operationDescription, String operationType); Index: forgon-core/src/main/java/com/forgon/log/service/LogManagerImpl.java =================================================================== diff -u -r17550 -r17641 --- forgon-core/src/main/java/com/forgon/log/service/LogManagerImpl.java (.../LogManagerImpl.java) (revision 17550) +++ forgon-core/src/main/java/com/forgon/log/service/LogManagerImpl.java (.../LogManagerImpl.java) (revision 17641) @@ -1,7 +1,5 @@ package com.forgon.log.service; -import java.text.SimpleDateFormat; -import java.util.Calendar; import java.util.Date; import java.util.HashMap; import java.util.Iterator; @@ -11,7 +9,6 @@ import net.sf.json.JSONObject; import org.apache.commons.lang.StringUtils; -import org.apache.commons.lang.time.FastDateFormat; import org.springframework.security.core.Authentication; import org.springframework.security.web.authentication.WebAuthenticationDetails; @@ -126,6 +123,7 @@ } + @Deprecated public void writeLog(Authentication auth, String operationDescription, String operationType) { @@ -176,6 +174,7 @@ log.setOperationDescription(description); log.setClientType(loginUser.getClientType()); log.setClientVersion(loginUser.getClientVersion()); + log.setSessionID(loginUser.getSessionID()); objectDao.save(log); } Index: forgon-core/src/main/java/com/forgon/log/handler/LogoutHandler.java =================================================================== diff -u -r12335 -r17641 --- forgon-core/src/main/java/com/forgon/log/handler/LogoutHandler.java (.../LogoutHandler.java) (revision 12335) +++ forgon-core/src/main/java/com/forgon/log/handler/LogoutHandler.java (.../LogoutHandler.java) (revision 17641) @@ -5,6 +5,7 @@ import org.springframework.security.core.Authentication; +import com.forgon.directory.acegi.tools.AcegiHelper; import com.forgon.log.model.Log; import com.forgon.log.service.LogManager; import com.forgon.oa.onlineusers.service.OnlineUserManager; @@ -30,10 +31,8 @@ public void logout(HttpServletRequest request, HttpServletResponse response, Authentication authentication) { - if (authentication != null) { - appLogManager.writeLog(authentication, "退出系统", Log.LOG_TYPE_LOGOUT); -// onlineUserManager.refreshOnlineUsersCount(); - } + appLogManager.saveLog(AcegiHelper.getLoginUser(), Log.MODEL_LOGIN, Log.LOG_TYPE_LOGOUT, "退出系统"); +// onlineUserManager.refreshOnlineUsersCount(); } Index: forgon-core/src/main/java/com/forgon/log/listener/LoginSuccessListener.java =================================================================== diff -u -r12335 -r17641 --- forgon-core/src/main/java/com/forgon/log/listener/LoginSuccessListener.java (.../LoginSuccessListener.java) (revision 12335) +++ forgon-core/src/main/java/com/forgon/log/listener/LoginSuccessListener.java (.../LoginSuccessListener.java) (revision 17641) @@ -4,7 +4,10 @@ import org.springframework.context.ApplicationListener; import org.springframework.security.authentication.event.AuthenticationSuccessEvent; import org.springframework.security.core.Authentication; +import org.springframework.security.web.authentication.WebAuthenticationDetails; +import com.forgon.directory.acegi.tools.AcegiHelper; +import com.forgon.directory.vo.LoginUserData; import com.forgon.log.model.Log; import com.forgon.log.service.LogManager; import com.forgon.oa.onlineusers.service.OnlineUserManager; @@ -31,7 +34,20 @@ if (event instanceof AuthenticationSuccessEvent) { AuthenticationSuccessEvent authEvent = (AuthenticationSuccessEvent) event; Authentication auth = authEvent.getAuthentication(); - appLogManager.writeLog(auth, "用户登录", Log.LOG_TYPE_LOGIN); + + Object obj = auth.getPrincipal(); + + LoginUserData loginUserData = AcegiHelper.getUserByPrincipal(obj); + + String userIP = ""; + Object details = auth.getDetails(); + if (details instanceof WebAuthenticationDetails){ + WebAuthenticationDetails webDetails = (WebAuthenticationDetails) details; + userIP = webDetails.getRemoteAddress(); + loginUserData.setUserIP(userIP); + loginUserData.setSessionID(webDetails.getSessionId()); + } + appLogManager.saveLog(loginUserData, Log.MODEL_LOGIN, Log.LOG_TYPE_LOGIN, "用户登录"); // onlineUserManager.refreshOnlineUsersCount(); } }