kerberos 认证 Unable to obtain password from user 异常排查

生产环境突然遇到kerberos 认证异常,java应用连接hive之前的认证异常
报Unable to obtain password from user

很常见的报错异常

一、排查证书

最开始怀疑证书的问题,对kerberos认证理解不深入,猜想大概证书异常
从服务器导出了新的证书,仍然不行,机器上没安装kerberos 客户端,所以证书导入其他有Hadoop的客户端的机器,验证了新证书没有问题

二、怀疑java应用的程序

因为是正常运行的时候突然不行了,不大可能是java 程序的问题,为了验证 特地写了一个demo 应用 部署了一下,发现仍然不行,这时候有点挑战了,
证书没问题,难道程序突然不行了

三、服务器环境排查

生产环境使用了华为的服务器,开始怀疑服务器环境导致,把验证程序部署到了通用服务器,结果验证通过,完全没有问题
定位到了服务器环境,又把验证程序部署到了另一台 华为服务器,验证了一下,发现可以,接下来对比两台服务器的差异

对比了基础配置,对齐了证书,用户
结果还是有一台验证不通过
这时候 想起来前一天 出问题的机器升级了jdk

难道jdk 会影响kerberos 认证过程。

网上搜索资料,发现部分资料提到jdk 版本会导致kerberos 认证异常

准备回退jdk,回退之后 发现认证成功

由于报错信息不明确,导致全程靠猜想

结论

当你遇到Unable to obtain password from user
时,写一个java demo 去不同环境测试 ,当确认证书没有问题,程序没有问题的时候,看看服务器环境jdk 版本。

### 关于IEC 61850通信协议的实现与应用 #### 协议概述 IEC 61850 是一种国际标准化协议,专为变电站自动化设计。该协议旨在通过统一的信息模型和服务接口来简化不同厂商设备之间的互操作性[^3]。 #### 数据建模与核心概念 在 IEC 61850 中,数据集(DataSet)是一个重要的组成部分,用于将多个相关联的数据项组合在一起以便高效传输。这些数据集可以根据实际需求分为实时性和非实时性的类别,从而优化网络带宽利用率并满足不同的应用场景要求[^2]。 #### JAVA 实现案例分析 对于希望基于 Java 技术栈开发支持 IEC 61850 的解决方案而言,“JAVA版IEC61850实例”提供了宝贵的参考资料。此项目不仅涵盖了基础理论知识还包含了具体编码实践指导,非常适合初学者以及有一定经验的研发人员学习借鉴[^1]。 以下是使用Java语言模拟简单客户端连接到服务器端接收MMS报文的一个基本例子: ```java import org.openmuc.jasn1.mms.*; public class MMSClientExample { public static void main(String[] args) throws Exception { // 创建一个新的MMS会话 Session session = new Session(); // 设置远程主机地址和端口号 String hostname = "localhost"; int port = 102; // 建立连接 session.connect(hostname, port); // 发送读取请求给指定的对象ID ObjectIdentifier objectId = new ObjectIdentifier("domainName.logicalDeviceName.logicNodeName.DOName"); VariableAccessSpecification vas = new VariableAccessSpecification(objectId); ReadRequest readReq = new ReadRequest(vas); // 执行读操作 ReadResponse response = (ReadResponse)session.sendAndReceive(readReq).getResponse(); // 输出返回的结果值 System.out.println(response.getReturnValue().toString()); // 断开连接 session.disconnect(); } } ``` 这段代码展示了如何利用 `org.openmuc` 库中的类建立一个简单的 MMS 客户端程序,能够从远端获取特定对象的状态信息[^1]。 #### 开发环境搭建建议 为了更顺利地开展基于 IEC 61850 的软件工程活动,在准备阶段应考虑以下几个方面: - **熟悉XML文档结构**:因为 SCL 文件采用 XML 编码形式表示整个系统的配置详情。 - **掌握面向对象编程技能**:这有助于更好地理解和构建复杂的逻辑节点及其关联关系。 - **研究 OSI/TCP IP 层次架构**:这对于理解底层通信机制至关重要。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值