/** * Copyright © 2012-2016 JeeSite All rights reserved. */ package com.dlbridge.jadp.common.service; import javax.servlet.http.HttpServletRequest; import javax.xml.bind.annotation.XmlTransient; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.transaction.annotation.Transactional; import com.fasterxml.jackson.annotation.JsonIgnore; /** * Service基类 * * @author ThinkGem * @version 2014-05-16 */ @Transactional(readOnly = true) public abstract class JService { public static final String USER_CACHE = "userCache"; public static final String USER_CACHE_ID_ = "id_"; public static final String USER_CACHE_LOGIN_NAME_ = "ln"; public static final String USER_CACHE_LIST_BY_OFFICE_ID_ = "oid_"; public static final String CACHE_AUTH_Record = "authInfo"; public static final String CACHE_ROLE_RecordSet = "RoleRecords"; public static final String CACHE_MENU_RecordSet = "MenuRecors"; public static final String CACHE_AREA_RecordSet = "AreaRecords"; public static final String CACHE_OFFICE_RecordSet = "OfficeRecords"; public static final String CACHE_OFFICE_ALL_RecordSet = "OfficeAllRecords"; /** * 日志对象 */ protected Logger logger = LoggerFactory.getLogger(this.getClass().getName()); /** * 当前用户 */ protected String currentUser; /** * 获得用户远程地址 */ public static String getRemoteAddr(HttpServletRequest request) { String remoteAddr = request.getHeader("X-Real-IP"); if (StringUtils.isNotBlank(remoteAddr)) { remoteAddr = request.getHeader("X-Forwarded-For"); } else if (StringUtils.isNotBlank(remoteAddr)) { remoteAddr = request.getHeader("Proxy-Client-IP"); } else if (StringUtils.isNotBlank(remoteAddr)) { remoteAddr = request.getHeader("WL-Proxy-Client-IP"); } return remoteAddr != null ? remoteAddr : request.getRemoteAddr(); } @JsonIgnore @XmlTransient public String getCurrentUser() { return currentUser; } }