2

我对分析 java 堆栈跟踪有些疑问。我正在分析一个 java 应用程序,在日志中我看到了一个堆栈跟踪。下面给出——

com.naseve.vdi.common.winauth.WinAuthException: Unable to set password expiry: Failed to retrieve account days to expiry: IADsUser::get_PasswordExpirationDate FAILED - ErrorCode = -2147463156
at com.naseve.vdi.broker.filters.GssapiAuthFilter.a(SourceFile:295)
at com.naseve.vdi.broker.filters.GssapiAuthFilter.a(SourceFile:241)
at net.propero.portal.filters.ProperoAuthFilter.doFilter(SourceFile:343)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)

我关心的是顶部的部分。我可以完全访问源代码,并且我 100% 确定 GssapiAuthFilter 没有任何名为 a() 的方法。那么为什么堆栈跟踪会这样打印。此外,当我使用 Eclipse 进行远程调试时,我在 Eclipse 调试视图中看到了类似的堆栈跟踪。任何人都可以对神秘的 .a( 似乎不知从何而来的方法有所了解。

4

3 回答 3

4

a()是混淆代码的常用方法。如果您已获得源代码,它可能不会被混淆,但您正在运行的代码是。

最好问问支持图书馆的人

于 2012-08-21T11:31:09.337 回答
2

被混淆的类通常具有以这种方式命名的方法。

于 2012-08-21T11:30:29.740 回答
1

您有权访问相关源代码是不正确的。混淆部分来自 GSS-API 实现,我看到的所有实现都同样被混淆了。您的代码通过您在 Java 安全配置中声明的类间接进入实现(我认为它都是从 LoginModule 配置分支出来的)。

于 2012-08-21T11:47:17.310 回答