commons-proxy-1.0 动态代理, 拦截器.

1.动态代理   

首先定义一个接口 Echo  接口中有一个方法echoBack()

public interface Echo {
    public String echoBack(String message);
    public String echoBack(String message1, String message2);
    public String echoBack(String[] messages);
    public int echoBack(int i);
    public boolean echoBack(boolean b);
    public void echo();
}

实现Echo 接口 EchoImpl

public class EchoImpl implements Echo {
    public void echo() {
        // TODO Auto-generated method stub
    }
    public boolean echoBack(boolean b) {
        // TODO Auto-generated method stub
        return b;
    }
    public int echoBack(int i) {
        return i;
    };
    public String echoBack(String message) {
        // TODO Auto-generated method stub
        return message;
    }
    public String echoBack(String message1, String message2) {
        // TODO Auto-generated method stub
        return message1 + message2;
    }
    public String echoBack(String[] messages) {
        // TODO Auto-generated method stub
        final StringBuffer sb = new StringBuffer();
        for (int i = 0; i < messages.length; i++) {
            String message = messages[i];
            sb.append(message);
        }

System.out.println(sb);
        return sb.toString();
    }
}


测试类

public class CommonsProxyInterceptor {
    private ProxyFactory         factory;
    private static final Class[] ECHO_ONLY = new Class[] { Echo.class };
    public CommonsProxyInterceptor() {
        this.factory = new ProxyFactory();
    }
    //  实现拦截器,过滤器
    public void testMethodInvocationImplementation() throws InstantiationException, IllegalAccessException, ClassNotFoundException {
        final InterceptorTester tester = new InterceptorTester();
        final EchoImpl target = new EchoImpl();
        final Echo proxy = (Echo) factory.createInterceptorProxy(Class.forName("EchoImpl").newInstance(), tester, ECHO_ONLY);
        proxy.echo();
        proxy.echoBack(new String[] { "北京", "上海", "广州" });
        proxy.echoBack("hello World!");
        for (Object str : tester.getArguments())
            System.out.println(str.toString());
        target.equals(tester.getProxy());
    }
    // 实现动态代理
    public void testMethodInvokerProxy() throws InstantiationException, IllegalAccessException {
        final Echo proxy = (Echo) factory.createInvokerProxy(new InvokerTest(EchoImpl.class.newInstance()), ECHO_ONLY);
        System.out.println(proxy.echoBack(new String[] { "北京", "上海", "广州"}));
    }
    public static void main(String[] args) throws InstantiationException, IllegalAccessException, ClassNotFoundException {
        CommonsProxyInterceptor proxy = new CommonsProxyInterceptor();
        proxy.testMethodInvocationImplementation();
        proxy.testMethodInvokerProxy();


    }
}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
支持代理协议:   HTTP, HTTPS, FTP, Telnet, NNTP, SMTP, POP, IMAP, LPR, LDAP, ICP, DNS, SSL, Socks   GateProxy.exe 是个能独立运行的软件,实用于Windows系统所有操作系统.支持WIN98(98上可能有少数性能限制,我没有仔细测试),WINNT,WIN2000,WINXP,WIN2003,VISTA系统,可能包括微软以后发布的操作系统,其原因就是直接走底层调用,不使用微软基本库 比较适合做入侵的朋友使用,这套代码也可以作为硬件防火墙做代理网关使用,当然要想做也还要手工制作的    文件列表: GateProxy.exe 软件制作说明: 本软件是完全粘贴EXE生成,用HEX进制编辑生成,纯手工制作,软件不支持任何形式的逆向工程和软件反编译 本程序是纯PE格式的文件,软件制作时horse_b用VC++实现了几个基本代理的EXE,基于这几个EXE,采用HEX编 辑生成最后的可执行代码GateProxy.exe 软件中绝对不含任何形式的后门和trojan程序,如果您发现任何木马迹象,请发邮件和我联系 软件使用说明: 请大家自己测试,软件支持命令行输入,也可以安装成服务,如果安装成服务,服务器端口可以走通本软件的所有代理协议 ParisProxy 项目说明 Paris 是欧洲古代神话传说中的特洛衣王子,我是为了怀念几年前研究木马的那段战斗式的生活起的名字,现在就把这个代理服务器叫ParisProxy ParisProxy 命令行参数 命令行参数是:gateproxy.exe -P8989 启动服务,通用代理端口是8989,8989端口可以走通Parisproxy的所有协议,如果不加-P8989就直接走单一协议 如果有人和我讨论用HEX和二进制开发软件,可以来信和我讨论: 我的专门接受此类问题的EMAIL: winddk64@gmail.com 或者 winddk64@163.com 请访问网站:www.horseb.org www.horseb.net  

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值