Java 和 Kerberos 身份验证 krb5.conf 与 System.setProperty

2023-12-29

请帮我解决一个 kerberos+Java 问题。我有一个简单的 Java 程序,可以使用 Kerberos 对 Windows Active Directory 进行身份验证。下面的java代码工作正常,没有任何问题并打印true-

public class KerberosAuthenticator {
    public static void main(String[] args) {
        String jaasConfigFilePath = "/myDir/jaas.conf";

        System.setProperty("java.security.auth.login.config", jaasConfigFilePath);

        System.setProperty("java.security.krb5.realm", "ENG.TEST.COM");
        System.setProperty("java.security.krb5.kdc","winsvr2003r2.eng.test.com");

        boolean success = auth.KerberosAuthenticator.authenticate("testprincipal", "testpass");

        System.out.println(success);
    }
}

但是,当我指定 krb5.conf 文件的路径而不是手动指定领域和 kdc 时,它会错误提示“空领域名称 (601) - 未指定默认领域”。以下是代码-

public class KerberosAuthenticator {
    public static void main(String[] args) {
        String jaasConfigFilePath = "/myDir/jaas.conf";

        System.setProperty("java.security.auth.login.config", jaasConfigFilePath);

        String krb5ConfigFilePath = "/etc/krb5/krb5.conf";
        System.setProperty("java.security.krb5.conf", krb5ConfigFilePath);

        boolean success = auth.KerberosAuthenticator.authenticate("testprincipal", "testpass");

        System.out.println(success);
    }
}

krb5.conf的内容如下-

[libdefault]
 default_realm = ENG.TEST.COM

[realms]
 ENG.TEST.COM = {
  kdc = winsvr2003r2.eng.test.com
  kpasswd_server = winsvr2003r2.eng.test.com
  admin_server = winsvr2003r2.eng.test.com
  kpasswd_protocol = SET_CHANGE
 }

[domain_realm]
 .eng.test.com = ENG.TEST.COM
 eng.test.com = ENG.TEST.COM
[logging]
 default = FILE:/var/krb5/kdc.log
 kdc = FILE:/var/krb5/kdc.log
 kdc_rotate = {
  period = 1d
  versions = 10
 }

[appdefaults]
 kinit = {
 renewable = true
 forwardable = true
 }

你的 krb5.conf 是错误的。它是[库默认值],而不是 [libdefault]。

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

Java 和 Kerberos 身份验证 krb5.conf 与 System.setProperty 的相关文章

  • 按键时关闭 ModalWindow

    我希望能够在用户按下某个键 在我的例子中是 ESC 时关闭 ModalWindow 我有一个用于按键的 Javascript 侦听器 它调用取消按钮 ID 的单击事件 jQuery modalWindowInfo closeButtonId
  • 日期语句之间的 JPQL SELECT [关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我想将此 SQL 语句转换为等效的 JPQL SELECT FROM events WHERE events date BETWE
  • 序列的排列?

    我有具体数量的数字 现在我想以某种方式显示这个序列的所有可能的排列 例如 如果数字数量为3 我想显示 0 0 0 0 0 1 0 0 2 0 1 0 0 1 1 0 1 2 0 2 0 0 2 1 0 2 2 1 0 0 1 0 1 1 0
  • org.apache.hadoop.security.AccessControlException:客户端无法通过以下方式进行身份验证:[TOKEN,KERBEROS] 问题

    我正在使用 java 客户端通过 Kerberos 身份验证安全访问 HDFS 我尝试打字klist在服务器上 它显示已经存在的有效票证 我收到的异常是客户端无法通过以下方式进行身份验证 TOKEN KERBEROS 帮助将不胜感激 这是一
  • HSQL - 识别打开连接的数量

    我正在使用嵌入式 HSQL 数据库服务器 有什么方法可以识别活动打开连接的数量吗 Yes SELECT COUNT FROM INFORMATION SCHEMA SYSTEM SESSIONS
  • 谷歌应用程序引擎会话

    什么是java应用程序引擎 默认会话超时 如果我们将会话超时设置为非常非常长的时间 会不会产生不良影响 因为谷歌应用程序引擎会话默认情况下仅存储在数据存储中 就像facebook一样 每次访问该页面时 会话仍然永远存在 默认会话超时设置为
  • 来自 dll 的 Java 调用函数

    我有这个 python 脚本导入zkemkeeperdll 并连接到考勤设备 ZKTeco 这是我正在使用的脚本 from win32com client import Dispatch zk Dispatch zkemkeeper ZKE
  • 检测并缩短字符串中的所有网址

    假设我有一条字符串消息 您应该将 file zip 上传到http google com extremelylonglink zip http google com extremelylonglink zip not https stack
  • 在 junit 测试中获取 javax.lang.model.element.Element 类

    我想测试我的实用程序类 ElementUtils 但我不知道如何将类作为元素获取 在 AnnotationProcessors 中 我使用以下代码获取元素 Set
  • Eclipse Maven Spring 项目 - 错误

    I need help with an error which make me crazy I started to study Java EE and I am going through tutorial on youtube Ever
  • volatile、final 和synchronized 安全发布的区别

    给定一个带有变量 x 的 A 类 变量 x 在类构造函数中设置 A x 77 我们想将 x 发布到其他线程 考虑以下 3 种变量 x 线程安全 发布的情况 1 x is final 2 x is volatile 3 x 设定为同步块 sy
  • 如何在用户输入数据后重新运行java代码

    嘿 我有一个基本的java 应用程序 显示人们是成年人还是青少年等 我从java开始 在用户输入年龄和字符串后我找不到如何制作它它们被归类为 我希望它重新运行整个过程 以便其他人可以尝试 的节目 我一直在考虑做一个循环 但这对我来说没有用
  • tomcat 中受密码保护的应用程序

    我正在使用 JSP Servlet 开发一个Web应用程序 并且我使用了Tomcat 7 0 33 as a web container 所以我的要求是tomcat中的每个应用程序都会password像受保护的manager applica
  • 如何在谷歌地图android上显示多个标记

    我想在谷歌地图android上显示带有多个标记的位置 问题是当我运行我的应用程序时 它只显示一个位置 标记 这是我的代码 public class koordinatTask extends AsyncTask
  • 尝试将 Web 服务部署到 TomEE 时出现“找不到...的 appInfo”

    我有一个非常简单的项目 用于培训目的 它是一个 RESTful Web 服务 我使用 js css 和 html 创建了一个客户端 我正在尝试将该服务部署到 TomEE 这是我尝试部署时遇到的错误 我在这里做错了什么 刚刚遇到这个问题 我曾
  • 为什么 Java 8 不允许非公共默认方法?

    让我们举个例子 public interface Testerface default public String example return Hello public class Tester implements Testerface
  • java for windows 中的文件图标叠加

    我正在尝试像 Tortoise SVN 或 Dropbox 一样在文件和文件夹上实现图标叠加 我在网上查了很多资料 但没有找到Java的解决方案 Can anyone help me with this 很抱歉确认您的担忧 但这无法在 Ja
  • Cucumber 0.4.3 (cuke4duke) 与 java + maven gem 问题

    我最近开始为 Cucumber 安装一个示例项目 并尝试使用 maven java 运行它 我遵循了这个指南 http www goodercode com wp using cucumber tests with maven and ja
  • 如果没有抽象成员,基类是否应该标记为抽象?

    如果一个类没有抽象成员 可以将其标记为抽象吗 即使没有实际理由直接实例化它 除了单元测试 是的 将不应该实例化的基类显式标记为抽象是合理且有益的 即使在没有抽象方法的情况下也是如此 它强制执行通用准则来使非叶类抽象 它阻止其他程序员创建该类
  • 双枢轴快速排序和快速排序有什么区别?

    我以前从未见过双枢轴快速排序 是快速排序的升级版吗 双枢轴快速排序和快速排序有什么区别 我在 Java 文档中找到了这个 排序算法是双枢轴快速排序 作者 弗拉基米尔 雅罗斯拉夫斯基 乔恩 本特利和约书亚 布洛赫 这个算法 在许多数据集上提供

随机推荐

  • 我应该在 Gradle 依赖项中添加什么?

    我的项目中有多项活动 但我在 Gradle 中没有任何依赖项 我有这些进口 我在这些导入中遇到错误 例如 Appcompat appcompatActivity 等等 import androidx appcompat app AppCom
  • 从挂起的 Intent 启动的 Intent getExtra

    我试图在用户从列表中选择带有时间的内容后发出一些警报 并在给定时间为其创建通知 我的问题是广播接收器无法接收我的 Intent 上的 putExtra 的 showname 它总是得到空值 这是我大多数意图的做法 但我认为这次可能是因为pe
  • TypeScript var 与 import

    在 TypeScript 中 有什么区别 import http require http and var http require http 我看到这两种方式都在代码源中使用 它们可以互换吗 Your import语句是 TypeScri
  • Sandy-Bridge CPU规格

    我能够将有关 Sandy Bridge E 架构的一些信息整合在一起 但我并不完全确定所有参数 例如L2 缓存的大小 任何人都可以确认它们都是正确的吗 我的主要来源是64 ia 32 架构 优化 手册 pdf http www intel
  • 按需加载/卸载 ELF 部分?

    对于一个相当晦涩的用例 我想要一个 大型 静态链接的 Linux 可执行文件 由一小段控制代码和大段静态 只读 数据组成 为了节省内存 是否可以让加载器仅加载控制代码的部分 然后根据需要手动加载 RO 数据的部分 并在处理完成后再次卸载它们
  • 在四开本中使用 kable 在表格中使用 Markdown 格式

    使用 quarto 的 HMTL 输出功能 我尝试从 data frame 生成一个 kable 其中包含一些应显示在最终文档中的 Markdown 样式格式 在实际用例中 我有许多文档已经以这种方式格式化 我想重新使用这些命令来正确呈现输
  • 删除gridview选择器列

    我确信这个问题的答案是非常明显的 但是对于我来说 我无法弄清楚如何从默认的 winforms gridview 中删除 选择器 列 红色箭头所指的列 我尝试过以编程方式删除该列gridview Columns 0 Remove但这只是删除了
  • iOS 模拟器恢复位置设置

    我正在调试 gt 位置 gt 自定义位置下使用自定义位置 虽然此设置对我来说效果很好 但模拟器经常将我的设置从 自定义位置 更改为 无 此恢复似乎没有模式 因为我可能会运行同一个项目 5 或 10 次而不会恢复设置 有时 我每运行 1 或
  • 检测客户端设备是否支持 :hover 和 :focus 状态

    听起来像是一个简单的问题 但事实证明解决起来相当具有挑战性 对于某些网站 我的内容仅在用户悬停 聚焦链接时才会显示 然而 该链接本身有一个目标 如果触摸屏用户点击其中一个链接 浏览器会立即转到href地点 这意味着悬停内容永远不可见 这就是
  • 需要使用java将EMF转换为jpeg,png文件格式

    我需要使用完整的java代码将emf wmf文件格式转换为png或jpeg 因为某些浏览器不支持这些格式 任何人都可以指导我 提前致谢 最快的方法可能是使用图像魔法 http www imagemagick org 确实如此support
  • MapFragment和Camera似乎在同一个Activity中互相干扰

    我正在尝试将 Google Maps Android API v2 中的 MapFragment 与相机预览结合使用 我需要能够在相机预览和 MapFragment 之间切换 但我无法使其工作 对于相机预览 我从以下位置复制了 Camera
  • 如何将 Bash 数组的元素连接到分隔字符串中?

    如果我在 Bash 中有一个这样的数组 FOO a b c 如何用逗号连接元素 例如 生产a b c 支持多字符分隔符的 100 纯 Bash 函数是 function join by local d 1 f 2 if shift 2 th
  • 使用 shell 脚本自动传输 scp 文件

    我的 UNIX 系统上的一个目录中有 n 个文件 有没有办法编写一个 shell 脚本 通过 scp 将所有这些文件传输到指定的远程系统 我将在脚本中指定密码 这样我就不必为每个文件输入密码 使用 SSH 密钥 而不是在 shell 脚本中
  • 如何使用破折号创建 shell 变量?

    在 Linux 环境中 我想创建一个带有破折号的变量名 这是可能的 因为我可以在詹金斯中设置一个类似的名称 为此env给出输出 以及其他行 variable with dashes test 但如何直接在 shell 上做到这一点呢 正在做
  • Zend:表单验证:在干草堆错误中找不到值

    我有一个有 2 个选择的表格 根据第一个选择的值 它使用 AJAX 更新第二个选择的值 这样做会使表格无效 所以 我做了下一个改变 form this gt getAddTaskForm the form if form gt isVali
  • 如何按键对字典进行排序?

    如何按字典键对字典进行排序 输入示例 2 3 1 89 4 5 3 0 期望的输出 1 89 2 3 3 0 4 5 Note 对于 Python 3 7 请参阅这个答案 https stackoverflow com a 47017849
  • 为什么字体不可变?

    字体不可变让程序员和 GC 都感到苦恼 因为每次都需要创建一个新实例 那么为什么 Font 是不可变的引用类型呢 它简化了渲染系统的使用 如果框架允许 Font 可变 则需要检测更改 并定期修改其渲染方式 由于 Font 创建了本机资源 因
  • linq to sql中开始结束时间列表的平均时间

    我有一个清单 startTime datetime endTime datetime 并需要计算出列表中所有内容的平均时间 所以我想我需要类似的东西 long averageTime Convert ToInt64 listOfStartE
  • 如何按 Firebase 基于查询的规则中包含字符串的 orderByChild 进行过滤

    我想获取登录用户的所有朋友 这是我的数据结构 users UID1 name Pepito friends UID2 true UID4 true 我正在使用此代码获取用户 Firebase database reference child
  • Java 和 Kerberos 身份验证 krb5.conf 与 System.setProperty

    请帮我解决一个 kerberos Java 问题 我有一个简单的 Java 程序 可以使用 Kerberos 对 Windows Active Directory 进行身份验证 下面的java代码工作正常 没有任何问题并打印true pub