Browse Source

init

master
diven 2 years ago
parent
commit
b86458c06c
  1. 6
      open-anpr-server/pom.xml
  2. 40
      open-anpr-server/src/main/java/com/visual/open/anpr/server/bootstrap/conf/AspectConfig.java
  3. 45
      open-anpr-server/src/main/java/com/visual/open/anpr/server/utils/RequestUtil.java

6
open-anpr-server/pom.xml

@ -18,6 +18,12 @@
<artifactId>spring-boot-starter-web</artifactId> <artifactId>spring-boot-starter-web</artifactId>
</dependency> </dependency>
<!--引入AOP依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
<dependency> <dependency>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId> <artifactId>spring-boot-starter-validation</artifactId>

40
open-anpr-server/src/main/java/com/visual/open/anpr/server/bootstrap/conf/AspectConfig.java

@ -0,0 +1,40 @@
package com.visual.open.anpr.server.bootstrap.conf;
import com.visual.open.anpr.server.utils.RequestUtil;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Pointcut;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
@Aspect
@Component
public class AspectConfig {
public Logger logger = LoggerFactory.getLogger(getClass());
@Pointcut(" execution(* com..PlateController.recognition(..))" )
public void recognitionPointCut() {
}
@Around("recognitionPointCut()")
public Object runTimeStatistics(ProceedingJoinPoint pjp) throws Throwable {
long startTime = System.currentTimeMillis();
String ip = "0.0.0.0";
try {
ServletRequestAttributes sra = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
ip = RequestUtil.getRemoteHost(sra.getRequest());
}catch (Throwable t){}
try {
return pjp.proceed();
}finally {
long costTime = System.currentTimeMillis() - startTime;
logger.info("plate recognition cost time : {} ms, from ip: {}", costTime, ip);
}
}
}

45
open-anpr-server/src/main/java/com/visual/open/anpr/server/utils/RequestUtil.java

@ -0,0 +1,45 @@
package com.visual.open.anpr.server.utils;
import org.apache.commons.lang3.StringUtils;
import javax.servlet.http.HttpServletRequest;
public class RequestUtil {
/**
* 获取目标主机的ip
*/
public static String getRemoteHost(HttpServletRequest request) {
String Xip = request.getHeader("X-Real-IP");
String XFor = request.getHeader("X-Forwarded-For");
if(StringUtils.isNotBlank(XFor) && !"unKnown".equalsIgnoreCase(XFor)) {
int index = XFor.indexOf(",");
if(index != -1) {
return XFor.substring(0, index);
} else {
return XFor;
}
}
XFor = Xip;
if(StringUtils.isNotEmpty(XFor) && !"unKnown".equalsIgnoreCase(XFor)) {
return XFor;
}
if(StringUtils.isBlank(XFor) || "unKnown".equalsIgnoreCase(XFor)) {
XFor = request.getHeader("Proxy-Client-IP");
}
if(StringUtils.isBlank(XFor) || "unKnown".equalsIgnoreCase(XFor)) {
XFor = request.getHeader("WL-Proxy-Client-IP");
}
if(StringUtils.isBlank(XFor) || "unKnown".equalsIgnoreCase(XFor)) {
XFor = request.getHeader("HTTP_CLIENT_IP");
}
if(StringUtils.isBlank(XFor) || "unKnown".equalsIgnoreCase(XFor)) {
XFor = request.getHeader("HTTP_X_FORWARDED_FOR");
}
if(StringUtils.isBlank(XFor) || "unKnown".equalsIgnoreCase(XFor)) {
XFor = request.getRemoteAddr();
}
return XFor;
}
}
Loading…
Cancel
Save