在 Java 中启用 Kerberos 的详细日志记录

2024-04-28

我有一个基于 Java 的 Web 应用程序,它获取包含用户名和密码的 Web 表单的内容,并使用 Kerberos 对基于 Windows 的域进行身份验证。

KDC 地址显然被配置为在每次查找时映射到不同的 IP 地址,这可以通过使用命令行中的 ping 命令来确认。

对于大多数请求,呼叫会立即响应,但间歇性地响应缓慢(5-10 秒甚至更长)。我认为这可能是由于使用哪个域控制器造成的。

我尝试打开 Kerberos 日志记录,但未显示域控制器的 IP 地址。我如何打开更详细的日志记录来尝试识别狡猾的域控制器?

代码摘录来源kerb.conf and kerb_context.conf从文件系统。

The kerb.conf is:

[libdefaults]
default_realm = EXAMPLE.COM

[realms]
CYMRU.NHS.UK = {
        kdc = example.com:88
        admin_server = example.com
        kpasswd_server = example.com
}

kerb_context.conf 是:

 primaryLoginContext {
        com.sun.security.auth.module.Krb5LoginModule required
        useTicketCache=false
        refreshKrb5Config=true
        debug=true;
};

示例来源是:

static NadexUser executePerformLogin(String username, String password) throws LoginException {
            char[] passwd = password.toCharArray();
            String kerbConf = ERXFileUtilities.pathForResourceNamed("nadex/kerb.conf", "RSCorp", null);
            String kerbContextConf = ERXFileUtilities.pathURLForResourceNamed("nadex/kerb_context.conf", "RSCorp", null).toExternalForm();
            System.setProperty("java.security.krb5.conf", kerbConf);
            System.setProperty("java.security.auth.login.config", kerbContextConf);
            try {
                    LoginContext lc = new LoginContext("primaryLoginContext", new UserNamePasswordCallbackHandler(username, password));
                    lc.login();
                    return new _NadexUser(lc.getSubject());
            }
            catch (javax.security.auth.login.LoginException le) {
                    throw new LoginException("Failed to login : " + le.getLocalizedMessage(), le);
            }
    }

您可以通过设置系统属性来启用日志记录sun.security.krb5.debug to true.

See Oracle 文档 http://docs.oracle.com/javase/7/docs/technotes/guides/security/jgss/tutorials/Troubleshooting.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Java 中启用 Kerberos 的详细日志记录 的相关文章

随机推荐

  • “res.render”有什么作用,html 文件是什么样的?

    什么是res render做什么 html 文件是什么样的 我的最终目标是将文本文件中的任意逗号分隔值加载到 html 文件中 例如 我只能推断视图是 html 文件 并且回调返回该 html 文件 这是文档 http expressjs
  • ruby 2.1.2超时仍然不是线程安全的吗?

    我有 50 个 sidekiq 线程在网络上爬行 几周前 这些线程在运行大约 20 分钟后开始挂起 当我执行回溯转储时 大多数线程都卡在 net http 初始化上 app vendor ruby 2 1 2 lib ruby 2 1 0
  • 跨线程操作无效:从创建它的线程以外的线程访问控制“dataGridView1”[重复]

    这个问题在这里已经有答案了 我有一个 Windows 表单 需要很长时间才能将数据加载到我的 datagridview 中 我不断收到这一行的错误 dataGridView1 Rows Add row 跨线程操作无效 控制 dataGrid
  • 如何处理“IllegalStateException:BeanFactory 未初始化或已关闭”?

    使用 Tomcat 7 上的 Grails 2 0 0 我在启动时得到以下结果 2011 08 21 11 10 09 758 main ERROR StackTrace Full Stack Trace java lang Illegal
  • 通过从数组添加对象来数组?

    我不确定我在这里做错了什么 我尝试了各种组合来尝试将数组复制到变量 mmm 中 我正在尝试学习如何创建 2D 数组 然后运行循环将 init array 放入 10 列 NSMutableArray mmm NSMutableArray a
  • 使用 UIAlertView 以编程方式退出 iOS 应用程序

    我正在通过以下方法中止我的 iOS 应用程序 void cancelSelected UIAlertView alert UIAlertView alloc initWithTitle nil message Are you sure yo
  • 在 R 中导入 png 文件并转换为动画(.mp4)

    我正在尝试用 R 中的几个 png 文件创建一个简短的动画 我尝试了 packagemagick但只有当我将它们保存为 gif 时它才有效 当我尝试另存为 mp4 时 它将生成一个 mp4 文件 但一旦打开它 只会显示第一张图像 我的代码是
  • FluentValidation 集合属性未验证

    这是我第一次尝试实现 FluentValidation 因为我需要涵盖复杂的验证场景 我试图验证的类具有大量属性 复杂对象和多个集合 我没有遇到验证主类的属性的问题 甚至检查集合是否不为空 但在验证每个集合中的对象属性时确实遇到了问题 为了
  • 如何使用 Curl CLI 执行 OAuth 2.0?

    我想在 Windows 命令提示符下使用curl 来执行Google OAuth 2 0 我的目标是更好地理解 OAuth 服务器实现的身份验证流程 查看 HTTP 标头等 如何在 Windows 命令提示符下使用curl exe 来完成此
  • 带有mysql的实体框架,linux和windows之间的表大小写问题

    我们目前正在开发一个使用 Code First Entity Framework 和 Mysql 的产品 开发数据库托管在 Windows 环境中 而生产 mysql 则托管在 Linux 环境中 我遇到的问题是 mysql 中的表命名如下
  • R 分号将列分隔为行

    我正在使用 RStudio 2 15 0 并使用 XLConnect 从 Excel 创建了一个包含 3000 多行和 12 列的对象 我试图将一列分隔 拆分为行 但不知道这是否可能或如何执行 下面的数据示例使用 3 列连接 对此的任何帮助
  • X509 C# 指南/教程

    谁能给我提供有关 X509 证书的良好介绍材料以及 C 示例 你可以从这里开始 X509证书 MSDN 资源 http msdn microsoft com en us library system security cryptograph
  • 获取登录用户的id

    如何获取登录用户的UserId 我正在使用标准系统生成的 AccountModel 我可以使用以下方式获取用户名 User Identity Name 但我没有看到 UserId 字段 我想使用 UserId 作为另一个表的外键 尝试这个
  • 如何使用 SQLAlchemy 进行“mysql 解释”

    我有一个像这样的sql DBSession query Model filter 我想用这个 sql 来解释SQLAlchemy 你想要将 SQLAlchemy 查询编译为字符串 https docs sqlalchemy org faq
  • 反应本机矢量图标显示为问号[重复]

    这个问题在这里已经有答案了 我已经安装了react native v0 46并安装了NativeBase 但在组件中使用标签后 没有显示图标而是显示问号 Android且未在iOS中测试 为了解决这个问题 我做了很多修改 如下所示 rnpm
  • 在 lxml 中定义默认命名空间(无前缀)

    当使用 lxml 渲染 XHTML 时 一切都很好 除非您碰巧使用 Firefox 它似乎无法处理以名称空间为前缀的 XHTML 元素和 javascript 虽然 Opera 能够很好地执行 javascript 这适用于 jQuery
  • jQuery 创建并追加多个元素

    我创建了 2 个 div Div1 冻结 Div2 父级 然后又创建了 3 个 div 加载 标题 消息 将其附加到 Div2 父级 整个 div 进入 body 标签 下面是我的代码 我认为还有其他一些最好的方法来实现这一点 var fr
  • 覆盖 JSF Primefaces 消息标签

    我可以覆盖默认实现吗
  • scanf 被跳过[重复]

    这个问题在这里已经有答案了 我正在尝试为一个类制作一个简单的 C 程序 其中一个要求是我需要使用scanf printf对于所有输入和输出 我的问题是为什么我的scanf在 main 中的 for 循环被跳过并且程序刚刚终止之后 这是我的代
  • 在 Java 中启用 Kerberos 的详细日志记录

    我有一个基于 Java 的 Web 应用程序 它获取包含用户名和密码的 Web 表单的内容 并使用 Kerberos 对基于 Windows 的域进行身份验证 KDC 地址显然被配置为在每次查找时映射到不同的 IP 地址 这可以通过使用命令