Webcam Chat QuickBooks Advice international calling cards international phone cards
JavaBeat Java Books Certifications Certifications Kits Articles Tutorials Tips QNA Book Store Interview Questions SCJP 1.5 SCJP 1.6 SCWCD 5.0 SCBCD 5.0 SCEA SCJA Feeds

After Advice Example

Topic :
Feedback Request New QnA Print Email

import java.util.Random;

public class KeyGenerator {

public static final long WEAK_KEY = 0xFFFFFFF0000000L;
public static final long STRONG_KEY = 0xACDF03F590AE56L;

public long getKey() {
Random rand = new Random();
int x = rand.nextInt(3);

if(x == 1) {
return WEAK_KEY;
} else {
return STRONG_KEY;
}
}
}


////////////////////////////////////////////////////////

import java.lang.reflect.Method;

import org.springframework.aop.AfterReturningAdvice;

public class WeakKeyCheckAdvice implements AfterReturningAdvice {

public void afterReturning(Object returnValue, Method method,
Object[] args, Object target) throws Throwable {

if ((target instanceof KeyGenerator)
&& ("getKey".equals(method.getName()))) {
long key = ((Long) returnValue).longValue();

if (key == KeyGenerator.WEAK_KEY) {
throw new SecurityException(
"Key Generator generated a weak key. Try again");
}
}
}

}

////////////////////////////////////////////////////////
import org.springframework.aop.framework.ProxyFactory;

public class AfterAdviceExample {

public static void main(String[] args) {
KeyGenerator keyGen = getKeyGenerator();

for(int x = 0; x < 10; x++) {
try {
long key = keyGen.getKey();
System.out.println("Key: " + key);
} catch(SecurityException ex) {
System.out.println("Weak Key Generated!");
}
}

}

private static KeyGenerator getKeyGenerator() {

KeyGenerator target = new KeyGenerator();

ProxyFactory factory = new ProxyFactory();
factory.setTarget(target);
factory.addAdvice(new WeakKeyCheckAdvice());

return (KeyGenerator)factory.getProxy();
}
}

Topic :
Feedback Request New QnA Print Email

All api java java 6.0 java 7.0 jdbc jsp servlet ejb jndi jms ejb 3.0 j2ee jee 5.0 jee 6.0 jsf struts spring Hibernate ajax JBoss Seam netbeans eclipse ant xml maven dojo junit javafx j2me log4j ESB JBoss Apache Quartz scjp mysql oracle gwt openjpa jmx yui google-guice android JBoss scwcd 5.0 scjp 1.5 scjp 1.6 scja scbcd 5.0

JavaBeat Website (2004-2011), India
javabeat | advertise | about us | contact | useful resources
Copyright (2004 - 2011), JavaBeat


Technology Blogs
Technology blogs Technology Blogs
blog log