1 /** 2 * 获取用户名 从session中 3 * 1.怎么拿到session? 不敢保证只有一个 装配不行 传参不行 4 * 5 * 通过RequestContextHolder 中的方法 可以获取的是当前请求 6 */ 7 ServletRequestAttributes requestAttributes = (ServletRequestAttributes)RequestContextHolder.getRequestAttributes(); 8 HttpServletRequest request = requestAttributes.getRequest(); 9 /** 10 * 通过当前请求 获取的一定是当前用户对应的session 参照session原理 11 */ 12 HttpSession session = request.getSession(); 13 // 从session中获取管理员信息 14 CmfzAdmin cmfzAdmin = (CmfzAdmin) session.getAttribute("admin"); 15 cmfzLog.setUserName(cmfzAdmin.getUsername()); 16 17 // 获取ip地址 18 String ipAddrByRequest = IPKit.getIpAddrByRequest(request); 19 cmfzLog.setLogIp(ipAddrByRequest);
1 public class IPKit { 2 /** 3 * @param request 请求 4 * @return IP Address 5 */ 6 public static String getIpAddrByRequest(HttpServletRequest request) { 7 String ip = request.getHeader("x-forwarded-for"); 8 if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { 9 ip = request.getHeader("Proxy-Client-IP"); 10 } 11 if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { 12 ip = request.getHeader("WL-Proxy-Client-IP"); 13 } 14 if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { 15 ip = request.getRemoteAddr(); 16 } 19 return ip; 20 } 21 }