1 package test.crispy.example.interceptor; 2 3 import net.sf.crispy.InterceptorContext; 4 import net.sf.crispy.InvocationException; 5 import net.sf.crispy.Modifier; 6 7 public class RemoveSecurityTokenModifier implements Modifier { 8 9 /** 10 * Get the security token from args index 0. Than remove index 0 and set args index to the 11 * original position. 12 */ 13 public InterceptorContext modifyBeforeInvocation(InterceptorContext pvInterceptorContext) { 14 if (pvInterceptorContext.getMethod().getParameterTypes().length != pvInterceptorContext.getArgs().length) { 15 int lvLengthArgs = pvInterceptorContext.getArgs().length; 16 Object lvArgs[] = new Object[lvLengthArgs - 1]; 17 String lvToken = (String) pvInterceptorContext.getArgs()[0]; 18 if ( ! (lvToken.equals(AddSecurityTokenModifier.SERCURITY_TEST_TOKEN)) ) { 19 throw new InvocationException("Not valid Token: " + lvToken + " (expected: " + AddSecurityTokenModifier.SERCURITY_TEST_TOKEN + ")"); 20 } 21 for (int i=1;i<lvLengthArgs; i++) { 22 lvArgs[i-1] = pvInterceptorContext.getArgs()[i]; 23 } 24 pvInterceptorContext.setArgs(lvArgs); 25 } 26 return pvInterceptorContext; 27 } 28 29 public InterceptorContext modifyAfterInvocation(InterceptorContext pvInterceptorContext) { 30 return pvInterceptorContext; 31 } 32 33 }