package com.highway2urhell.transformer;
import javassist.CtClass;
import javassist.CtMethod;
/**
* Created by scun on 19/04/16.
*/
public class SringBootServletRegistrerTransformer extends AbstractLeechTransformer {
public SringBootServletRegistrerTransformer() {
super("org/apache/catalina/core/ApplicationServletRegistration");
addImportPackage(
"java.util.Map",
"java.util","javax.servlet");
}
@Override
protected void doTransform(CtClass cc) throws Exception {
CtMethod m =cc.getMethod("addMapping","([Ljava/lang/String;)Ljava/util/Set;");
String h2hHookCode = "" +
"List listEntryPath = new ArrayList();" +
" String[] tab =urlPatterns ;" +
" for(int i=0;i<tab.length;i++){" +
" EntryPathData entry = new EntryPathData();" +
" entry.setClassName(wrapper.getServletClass());" +
" entry.setMethodName(wrapper.getName());" +
" entry.setTypePath(TypePath.SERVLET);" +
" entry.setUri(tab[i]); "+
" entry.setAudit(Boolean.FALSE); "+
" listEntryPath.add(entry);" +
" }" +
"CoreEngine.getInstance().getFramework(\"SPRING_BOOT_SERVLET\").receiveData(listEntryPath);";
m.insertBefore(h2hHookCode);
}
}