List of usage examples for org.aspectj.lang ProceedingJoinPoint getSignature
Signature getSignature();
getStaticPart().getSignature()
returns the same object From source file:com.newtranx.util.monitoring.MonitorAspect.java
License:Apache License
private static Method getMethod(MethodSignature signature, ProceedingJoinPoint pjp) { Method method = signature.getMethod(); if (method.getDeclaringClass().isInterface()) { try {//from w w w . j ava 2s. c om method = pjp.getTarget().getClass().getDeclaredMethod(pjp.getSignature().getName(), method.getParameterTypes()); } catch (NoSuchMethodException | SecurityException e) { throw new RuntimeException(e); } } return method; }
From source file:com.organization.automation.project.spice.mix.aop.aspectjspring.LogAspect.java
License:Open Source License
@Around("annotatedTestStepExecution()") public Object logTestStep(ProceedingJoinPoint pjp) throws Throwable { // Logging Policy: 1. log before -> 2. method run String methodName = pjp.getSignature().getName(); // #1: log before logBefore(methodName);/*from w ww.ja v a 2s. co m*/ // #2: method run Object returnValue = pjp.proceed(); // #3: log after logAfter(); return returnValue; }
From source file:com.otterca.ca.webservice.server.rest.CheckPostValues.java
License:Apache License
/** * Check post values on create method.// ww w. j a v a2s . co m * * @param pjp * @return * @throws Throwable */ @Around("target(com.otterca.ca.webservice.server.rest.AbstractResource) && args(rto,..)") public Object checkParametersCreate(ProceedingJoinPoint pjp, Validatable rto) throws Throwable { final Logger log = Logger.getLogger(pjp.getSignature().getDeclaringType()); final String name = pjp.getSignature().getName(); Object results = null; if (rto.validate()) { // this should be safe since parameters have been validated. if (log.isDebugEnabled()) { log.debug(String.format("%s(%s): entry", name, Arrays.toString(pjp.getArgs()))); } results = pjp.proceed(pjp.getArgs()); } else { // FIXME: this is unsafe if (log.isInfoEnabled()) { log.info(String.format("%s(%s): bad arguments", name, Arrays.toString(pjp.getArgs()))); } // TODO: tell caller what the problems were results = Response.status(Status.BAD_REQUEST).build(); } return results; }
From source file:com.otterca.ca.webservice.server.rest.CheckPostValues.java
License:Apache License
/** * Check post values on update method.//from w w w. ja v a2s .c o m * * @param pjp * @return * @throws Throwable */ @Around("target(com.otterca.ca.webservice.server.rest.AbstractResource) && args(uuid,rto,..)") public Object checkParametersUpdate(ProceedingJoinPoint pjp, String uuid, Validatable rto) throws Throwable { final Logger log = Logger.getLogger(pjp.getSignature().getDeclaringType()); final String name = pjp.getSignature().getName(); Object results = null; //if (!StudentUtil.isPossibleUuid(uuid)) { // // this is a possible attack. // if (log.isInfoEnabled()) { // log.info(String.format("%s(): uuid", name)); // } // results = Response.status(Status.BAD_REQUEST).build(); //} else if (rto.validate()) { // // this should be safe since parameters have been validated. // if (log.isDebugEnabled()) { // log.debug(String.format("%s(%s): entry", name, Arrays.toString(pjp.getArgs()))); // } // results = pjp.proceed(pjp.getArgs()); //} else { // // FIXME: this is unsafe // if (log.isInfoEnabled()) { // log.info(String.format("%s(%s): bad arguments", name, Arrays.toString(pjp.getArgs()))); // } // // TODO: tell caller what the problems were // results = Response.status(Status.BAD_REQUEST).build(); //} return results; }
From source file:com.otterca.ca.webservice.server.rest.CheckPostValues.java
License:Apache License
/** * Check post values on delete method. This is actually a no-op but it * allows us to log method entry./*from w w w .j av a 2s .c o m*/ * * @param pjp * @return * @throws Throwable */ @Around("target(com.otterca.ca.webservice.server.rest.AbstractResource) && args(uuid,version) && execution(* *.delete*(..))") public Object checkParametersDelete(ProceedingJoinPoint pjp, String uuid, Integer version) throws Throwable { final Logger log = Logger.getLogger(pjp.getSignature().getDeclaringType()); final String name = pjp.getSignature().getName(); Object results = null; //if (!StudentUtil.isPossibleUuid(uuid)) { // // this is a possible attack. // if (log.isInfoEnabled()) { // log.info(String.format("%s(): uuid", name)); // } // results = Response.status(Status.BAD_REQUEST).build(); //} else { // // this should be safe since parameters have been validated. // if (log.isDebugEnabled()) { // log.debug(String.format("%s(%s): entry", name, Arrays.toString(pjp.getArgs()))); // } // results = pjp.proceed(pjp.getArgs()); //} return results; }
From source file:com.otterca.ca.webservice.server.rest.CheckPostValues.java
License:Apache License
/** * Check post values on find methods. This is actually a no-op but it allows * us to log method entry./*from ww w . j a v a 2 s . com*/ * * @param pjp * @return * @throws Throwable */ @Around("target(com.otterca.ca.webservice.server.rest.AbstractResource) && execution(* *.find*(..))") public Object checkParametersFind(ProceedingJoinPoint pjp) throws Throwable { final Logger log = Logger.getLogger(pjp.getSignature().getDeclaringType()); if (log.isDebugEnabled()) { log.debug(String.format("%s(%s): entry", pjp.getSignature().getName(), Arrays.toString(pjp.getArgs()))); } final Object results = pjp.proceed(pjp.getArgs()); return results; }
From source file:com.otterca.ca.webservice.server.rest.UnexpectedResourceExceptionHandler.java
License:Apache License
/** * Check for an unhandled exception from a REST resource. If we catch one * AND the method returns a Response we can return a Server Internal Error * (500) error code instead of blowing up. We need to check though since * some methods don't return a Response. * /*from w w w .j av a 2 s .c om*/ * @param pjp * @return * @throws Throwable */ @Around("target(com.otterca.ca.webservice.server.rest.AbstractResource)") public Object checkForUnhandledException(ProceedingJoinPoint pjp) throws Throwable { Object results = null; Logger log = Logger.getLogger(pjp.getSignature().getClass()); try { results = pjp.proceed(pjp.getArgs()); //} catch (ObjectNotFoundException e) { // // this is safe to log since we know that we've passed filtering. // String args = Arrays.toString(pjp.getArgs()); // results = Response.status(Status.NOT_FOUND).entity("object not found: " + args).build(); // if (log.isDebugEnabled()) { // log.debug("object not found: " + args); // } } catch (Exception e) { // find the method we called. We can't cache this since the method // may be overloaded Method method = findMethod(pjp); if ((method != null) && Response.class.isAssignableFrom(method.getReturnType())) { // if the method returns a response we can return a 500 message. if (!(e instanceof UnitTestException)) { if (log.isInfoEnabled()) { log.info(String.format("%s(): unhandled exception: %s", pjp.getSignature().getName(), e.getMessage()), e); } } else if (log.isTraceEnabled()) { log.info("unit test exception: " + e.getMessage()); } results = Response.status(Status.INTERNAL_SERVER_ERROR).build(); } else { // DO NOT LOG THE EXCEPTION. That just clutters the log - let // the final handler log it. throw e; } } return results; }
From source file:com.ottervpn.webservice.server.rest.CheckPostValues.java
License:Apache License
/** * Check post values on create method./* w w w . ja v a 2 s .co m*/ * * @param pjp * @return * @throws Throwable */ @Around("target(com.ottervpn.webservice.server.rest.AbstractResource) && args(rto,..)") public Object checkParametersCreate(ProceedingJoinPoint pjp, Validatable rto) throws Throwable { final Logger log = Logger.getLogger(pjp.getSignature().getDeclaringType()); final String name = pjp.getSignature().getName(); Object results = null; if (rto.validate()) { // this should be safe since parameters have been validated. if (log.isDebugEnabled()) { log.debug(String.format("%s(%s): entry", name, Arrays.toString(pjp.getArgs()))); } results = pjp.proceed(pjp.getArgs()); } else { // FIXME: this is unsafe if (log.isInfoEnabled()) { log.info(String.format("%s(%s): bad arguments", name, Arrays.toString(pjp.getArgs()))); } // TODO: tell caller what the problems were results = Response.status(Status.BAD_REQUEST).build(); } return results; }
From source file:com.ottervpn.webservice.server.rest.CheckPostValues.java
License:Apache License
/** * Check post values on update method./*from w ww . j a v a 2 s . c o m*/ * * @param pjp * @return * @throws Throwable */ @Around("target(com.ottervpn.webservice.server.rest.AbstractResource) && args(uuid,rto,..)") public Object checkParametersUpdate(ProceedingJoinPoint pjp, String uuid, Validatable rto) throws Throwable { final Logger log = Logger.getLogger(pjp.getSignature().getDeclaringType()); final String name = pjp.getSignature().getName(); Object results = null; //if (!StudentUtil.isPossibleUuid(uuid)) { // // this is a possible attack. // if (log.isInfoEnabled()) { // log.info(String.format("%s(): uuid", name)); // } // results = Response.status(Status.BAD_REQUEST).build(); //} else if (rto.validate()) { // // this should be safe since parameters have been validated. // if (log.isDebugEnabled()) { // log.debug(String.format("%s(%s): entry", name, Arrays.toString(pjp.getArgs()))); // } // results = pjp.proceed(pjp.getArgs()); //} else { // // FIXME: this is unsafe // if (log.isInfoEnabled()) { // log.info(String.format("%s(%s): bad arguments", name, Arrays.toString(pjp.getArgs()))); // } // // TODO: tell caller what the problems were // results = Response.status(Status.BAD_REQUEST).build(); //} return results; }
From source file:com.ottervpn.webservice.server.rest.CheckPostValues.java
License:Apache License
/** * Check post values on delete method. This is actually a no-op but it * allows us to log method entry.// w ww. j av a 2s .co m * * @param pjp * @return * @throws Throwable */ @Around("target(com.ottervpn.webservice.server.rest.AbstractResource) && args(uuid,version) && execution(* *.delete*(..))") public Object checkParametersDelete(ProceedingJoinPoint pjp, String uuid, Integer version) throws Throwable { final Logger log = Logger.getLogger(pjp.getSignature().getDeclaringType()); final String name = pjp.getSignature().getName(); Object results = null; //if (!StudentUtil.isPossibleUuid(uuid)) { // // this is a possible attack. // if (log.isInfoEnabled()) { // log.info(String.format("%s(): uuid", name)); // } // results = Response.status(Status.BAD_REQUEST).build(); //} else { // // this should be safe since parameters have been validated. // if (log.isDebugEnabled()) { // log.debug(String.format("%s(%s): entry", name, Arrays.toString(pjp.getArgs()))); // } // results = pjp.proceed(pjp.getArgs()); //} return results; }