Arthas 3.5.0 版本发布,支持反编译打印行号和统一鉴权 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
hengyunabc
V2EX    Java

Arthas 3.5.0 版本发布,支持反编译打印行号和统一鉴权

  •  
  •   hengyunabc
    hengyunabc 2021-03-17 11:47:50 +08:00 2152 次点击
    这是一个创建于 1738 天前的主题,其中的信息可能已经有所发展或是发生改变。

    Arthas

    Arthas是 Alibaba 开源的 Java 诊断工具,深受开发者喜爱。

    Arthas 最新发布了 3.5.0 版本,最近几个 release 版本带来下面两个主要特性:

    • 反编译支持行号
    • Telnet/Websocket/HTTP API 统一支持全面的鉴权

    反编译支持行号

    Arthas 开源之后的第一个 issue 就是jad命令能否支持显示行号:

    jad命令多年以后终于支持行号了,“不忘初心”,效果如下:

    $ jad demo.MathGame main public class MathGame { private static Random random = new Random(); public int illegalArgumentCount = 0; public static void main(String[] args) throws InterruptedException { MathGame game = new MathGame(); while (true) { /*16*/ game.run(); /*17*/ TimeUnit.SECONDS.sleep(1L); } } public void run() throws InterruptedException { try { /*23*/ int number = random.nextInt() / 10000; /*24*/ List<Integer> primeFactors = this.primeFactors(number); /*25*/ MathGame.print(number, primeFactors); } catch (Exception e) { /*28*/ System.out.println(String.format("illegalArgumentCount:%3d, ", this.illegalArgumentCount) + e.getMessage()); } } public static void print(int number, List<Integer> primeFactors) { StringBuffer sb = new StringBuffer(number + "="); /*34*/ for (int factor : primeFactors) { /*35*/ sb.append(factor).append('*'); } /*37*/ if (sb.charAt(sb.length() - 1) == '*') { /*38*/ sb.deleteCharAt(sb.length() - 1); } 

    如果想不显示行号,使用--lineNumber false参数即可。

    鉴权支持

    鉴权主要通过两方面来支持:

    • as.sh/arthas-boot命令行参数支持配置用户名和密码
    • 增加auth命令

    配置用户名和密码

    在 Arthas attach 时,可以在命令行指定密码。比如:

    java -jar arthas-boot.jar --password ppp 
    • 可以通过 --username 选项来指定用户,默认值是arthas

    • 也可以在 arthas.properties 里中配置 username/password 。命令行的优先级大于配置文件。

    • 如果只配置username,没有配置password,则会生成随机密码,打印在~/logs/arthas/arthas.log

      Using generated security password: 0vUBJpRIppkKuZ7dYzYqOKtranj4unGh 

    在 telnet console 里鉴权

    连接到 arthas 后,直接执行命令会提示需要鉴权:

    [arthas@37430]$ help Error! command not permitted, try to use 'auth' command to authenticates. 

    使用auth命令来鉴权,成功之后可以执行其它命令。

    [arthas@37430]$ auth ppp Authentication result: true 
    • 可以通过 --username 选项来指定用户,默认值是arthas

    Web console 密码验证

    打开浏览器,会有弹窗提示需要输入 用户名 和 密码。

    成功之后,则可以直接连接上 web console 。

    HTTP API 验证

    Arthas 采用的是 HTTP 标准的 Basic Authorization,客户端请求时增加对应的 Authorization header 即可。

    例如,用户名是:admin,密码是 admin,则组合为字符串: admin:admin,base64 结果是: YWRtaW46YWRtaW4=,则 HTTP 请求增加Authorization header:

    curl 'http://localhost:8563/api' \ -H 'Authorization: Basic YWRtaW46YWRtaW4=' \ --data-raw '{"action":"exec","command":"version"}' 

    总结

    招聘

    最后打个广告,我们正在寻找小伙伴,特别是深圳的同学,欢迎大家加入。

    3 条回复    2021-03-17 12:48:58 +08:00
    monkeyWie
        1
    monkeyWie  
       2021-03-17 12:03:23 +08:00
    学历是硬性要求吗,好想加入你们团队
    Kasumi20
        2
    Kasumi20  
       2021-03-17 12:13:43 +08:00
    性别是硬性要求吗,好想加入你们团队
    hengyunabc
        3
    hengyunabc  
    OP
       2021-03-17 12:48:58 +08:00
    @monkeyWie 现在要求越来越严格了
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3311 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 31ms UTC 04:24 PVG 12:24 LAX 20:24 JFK 23:24
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86