@ -12,67 +12,71 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory ;
import org.slf4j.LoggerFactory ;
import org.springframework.stereotype.Component ;
import org.springframework.stereotype.Component ;
import org.springframework.web.filter.OncePerRequestFilter ;
import org.springframework.web.filter.OncePerRequestFilter ;
import org.springframework.web.util.ContentCachingResponseWrapper ;
import java.io.IOException ;
import java.io.IOException ;
import java.net.URLDecoder ;
import java.net.URLDecoder ;
import java.time.LocalDateTime ;
import java.time.LocalDateTime ;
@Component
@Component
public class LoggingActivityFilter extends OncePerRequestFilter {
public class LoggingActivityFilter extends OncePerRequestFilter {
private static final Logger LOGGER = LoggerFactory . getLogger ( LoggingActivityFilter . class ) ;
private static final Logger LOGGER = LoggerFactory . getLogger ( LoggingActivityFilter . class ) ;
private final CustomerProfileRepository customerProfileRepository ;
private final CustomerProfileRepository customerProfileRepository ;
private final CustomerAccountActivityService cust AccActivityService;
private final CustomerAccountActivityService cust omer Account ActivityService;
public LoggingActivityFilter ( CustomerProfileRepository customerProfileRepository , CustomerAccountActivityService cust AccActivityService) {
public LoggingActivityFilter ( CustomerProfileRepository customerProfileRepository , CustomerAccountActivityService cust omer Account ActivityService) {
this . customerProfileRepository = customerProfileRepository ;
this . customerProfileRepository = customerProfileRepository ;
this . cust AccActivityService = cust AccActivityService;
this . cust omer Account ActivityService = cust omer Account ActivityService;
}
}
@Override
@Override
protected void doFilterInternal ( HttpServletRequest request , HttpServletResponse response , FilterChain filterChain ) throws ServletException , IOException {
protected void doFilterInternal ( HttpServletRequest request , HttpServletResponse response , FilterChain filterChain ) throws ServletException , IOException {
setAccessControlHeaders ( response ) ;
if ( "OPTIONS" . equalsIgnoreCase ( request . getMethod ( ) ) ) {
response . setStatus ( HttpServletResponse . SC_OK ) ;
} else {
filterChain . doFilter ( request , response ) ;
logRequestDetails ( request , response ) ;
handleUserActivityLogging ( request ) ;
}
}
private void setAccessControlHeaders ( HttpServletResponse response ) {
response . setHeader ( "Access-Control-Allow-Credentials" , "true" ) ;
response . setHeader ( "Access-Control-Allow-Credentials" , "true" ) ;
response . setHeader ( "Access-Control-Allow-Origin" , "*" ) ;
response . setHeader ( "Access-Control-Allow-Origin" , "*" ) ;
response . setHeader ( "Access-Control-Allow-Headers" , "*" ) ;
response . setHeader ( "Access-Control-Allow-Headers" , "*" ) ;
response . setHeader ( "Access-Control-Expose-Headers" , "*" ) ;
response . setHeader ( "Access-Control-Expose-Headers" , "*" ) ;
response . setHeader ( "Access-Control-Allow-Methods" , "GET, POST, PATCH, PUT, DELETE, OPTIONS" ) ;
response . setHeader ( "Access-Control-Allow-Methods" , "GET, POST, PATCH, PUT, DELETE, OPTIONS" ) ;
if ( ! ( request . getMethod ( ) . equals ( "OPTIONS" ) ) ) {
}
filterChain . doFilter ( request , response ) ;
}
ContentCachingResponseWrapper responseWrapper = new ContentCachingResponseWrapper ( response ) ;
private void logRequestDetails ( HttpServletRequest request , HttpServletResponse response ) {
LOGGER . info (
LOGGER . info ( "FINISHED PROCESSING: METHOD={}; REQUESTURI={}; RESPONSE CODE={}; IP={};" ,
"FINISHED PROCESSING: METHOD={}; REQUESTURI={}; RESPONSE CODE={}; IP={};" ,
request . getMethod ( ) , request . getRequestURI ( ) , response . getStatus ( ) , request . getRemoteAddr ( ) ) ;
request . getMethod ( ) ,
}
request . getRequestURI ( ) ,
response . getStatus ( ) ,
request . getRemoteAddr ( )
) ;
CustomerProfile cust ;
private void handleUserActivityLogging ( HttpServletRequest request ) {
String susUsercode = "" ;
try {
if ( request . getHeader ( "cmpUserId" ) ! = null ) {
String susUserCode = request . getHeader ( "cmpUserId" ) ! = null ? URLDecoder . decode ( request . getHeader ( "cmpUserId" ) , "UTF-8" ) : "" ;
susUsercode = URLDecoder . decode ( request . getHeader ( "cmpUserId" ) , "UTF-8" ) ;
String porOrgacode = request . getHeader ( "porOrgacode" ) ;
}
String email = request . getHeader ( "email" ) ;
String porOrgacode = request . getHeader ( "porOrgacode" ) ;
String channelCode = request . getHeader ( "channelCode" ) ;
String email = request . getHeader ( "email" ) ;
String deviceName = request . getHeader ( "deviceName" ) ;
String channalCode = request . getHeader ( "channelCode" ) ;
String userActivity = request . getHeader ( "userActivity" ) ;
String deviceName = request . getHeader ( "deviceName" ) ;
String userActivity = request . getHeader ( "userActivity" ) ;
cust = customerProfileRepository . findbyEmail ( porOrgacode , email ) ;
LocalDateTime date = LocalDateTime . now ( ) ;
if ( cust ! = null & & userActivity ! = null ) {
CustomerProfile customer = customerProfileRepository . findbyEmail ( porOrgacode , email ) ;
CustomerAccountActivity activity = new CustomerAccountActivity (
if ( customer ! = null & & userActivity ! = null ) {
null ,
CustomerAccountActivity activity = new CustomerAccountActivity (
porOrgacode ,
null ,
cust . getCmpCustcode ( ) ,
porOrgacode ,
date ,
customer . getCmpCustcode ( ) ,
channalCode ,
LocalDateTime . now ( ) ,
deviceName ,
channelCode ,
userActivity ,
deviceName ,
cust
userActivity ,
) ;
customer
custAccActivityService . postCustomerAccountActivity ( activity ) ; ;
) ;
customerAccountActivityService . postCustomerAccountActivity ( activity ) ;
}
} catch ( Exception e ) {
LOGGER . error ( "Error logging user activity" , e ) ;
}
}
}
}
}
}