解决kerberos认证失败:更新JDK8安全jar包方案

需积分: 49 3 下载量 120 浏览量 更新于2024-12-31 收藏 12KB RAR 举报
资源摘要信息:"解决no supported default etypes for default_tkt_enctypes问题,jce_policy-8.zip下载" 在使用Hadoop生态系统组件(如Hive、HBase、SparkSQL和HDFS)进行Java开发时,可能会遇到一个特定的认证失败问题:"no supported default etypes for default_tkt_enctypes"。这个问题通常出现在启用了Kerberos认证的环境中。Kerberos是一种网络认证协议,旨在通过使用密钥加密技术来提供强认证。 ### Kerberos认证失败问题分析 Kerberos认证是通过一系列的消息交换来实现的,这些消息交换需要使用加密类型(etypes)。etypes定义了密钥和加密算法的类型。在Java环境中,加密类型需要与服务器端配置的加密类型相匹配。如果Java环境中的安全策略文件(也就是Java Cryptography Extension, JCE)没有包含服务器端所使用的加密类型,那么就会出现上述的错误信息。 ### JDK8安全策略文件更新 为了解决这个问题,需要更新Java Development Kit (JDK) 8中的安全策略文件。JDK 8自带的JCE策略文件可能不包含所有需要的加密类型。Oracle提供了一个扩展的JCE策略文件,被称为“无限制强度加密”(Unlimited Strength Jurisdiction Policy Files),这允许JDK使用更强的加密算法。 ### 如何更新JDK8安全策略文件 更新JDK8的安全策略文件涉及到下载正确的文件包,并替换JDK安装目录下的相应文件。通常这个文件包被称为`jce_policy-8.zip`。在官方Oracle网站上可以找到这个文件包,但是用户需要注册并同意许可协议才能下载。由于这个过程可能会有些繁琐,一些热心的用户或者社区会提供这些文件的下载链接,方便其他用户下载并使用。 ### 替换安全策略文件的步骤 1. 下载`jce_policy-8.zip`文件包。如果从Oracle官方下载,需要遵循官方的下载和许可流程。如果是从其他来源下载,请确保来源可靠,以避免安全风险。 2. 解压缩文件包,一般包含两个策略文件`local_policy.jar`和`US_export_policy.jar`。 3. 停止所有正在使用JDK8的Java应用程序以避免文件冲突。 4. 找到JDK8的安装目录,通常在`$JAVA_HOME/jre/lib/security/`路径下。 5. 替换现有的`local_policy.jar`和`US_export_policy.jar`文件。 6. 重启所有的Java应用程序。 ### 验证更新是否成功 在替换文件后,为了验证更新是否成功,可以在Java应用程序中尝试连接到Kerberos认证的服务器,检查是否还会出现之前的问题。如果连接成功,则说明更新已经生效。 ### 注意事项 - 在进行任何更新之前,确保备份原有的安全策略文件,以备不时之需。 - 确保下载的JCE策略文件版本与你的JDK版本相匹配。 - 如果你使用的是企业版JDK或者其他非Oracle发行版本,更新步骤可能有所不同。 ### 结论 对于使用Hadoop生态系统组件进行Java开发的用户来说,"no supported default etypes for default_tkt_enctypes"问题是一个常见的头疼问题。通过更新JDK8的安全策略文件,可以解决该问题并顺利使用Kerberos进行安全认证。务必确保从安全可靠的来源下载所需的文件包,并按照正确的步骤操作,以避免潜在的安全风险。

super(Ui_MainWindow, self).__init__(parent) parser_car_det = argparse.ArgumentParser() # parser.add_argument('--weights', type=str, default='weights-s/best1.pt', help='model.pt path') parser_car_det.add_argument('--weights', type=str, default='weights-s/best1.pt', help='model.pt path') parser_car_det.add_argument('--source', type=str, default='input/3.mp4', help='source') # file/folder, 0 for webcam # parser.add_argument('--source', type=str, default='rtsp://admin:hik12345@192.168.1.64:554//Streaming/Channels/101', help='source') # file/folder, 0 for webcam parser_car_det.add_argument('--output', type=str, default='inference/output', help='output folder') # output folder parser_car_det.add_argument('--img-size', type=int, default=640, help='inference size (pixels)') parser_car_det.add_argument('--conf-thres', type=float, default=0.4, help='object confidence threshold') parser_car_det.add_argument('--iou-thres', type=float, default=0.5, help='IOU threshold for NMS') parser_car_det.add_argument('--fourcc', type=str, default='mp4v', help='output video codec (verify ffmpeg support)') parser_car_det.add_argument('--device', default='cpu', help='cuda device, i.e. 0 or 0,1,2,3 or cpu') parser_car_det.add_argument('--view-img', action='store_true', help='display results') parser_car_det.add_argument('--save-txt', action='store_true', help='save results to *.txt') parser_car_det.add_argument('--classes', nargs='+', type=int, help='filter by class') parser_car_det.add_argument('--agnostic-nms', action='store_true', help='class-agnostic NMS') parser_car_det.add_argument('--augment', action='store_true', help='augmented inference') parser_car_det.add_argument('--idx', default='2', help='idx') self.opt_car_det = parser_car_det.parse_args() self.opt_car_det.img_size = check_img_size(self.opt_car_det.img_size) half = 0 source_car_det, weights_car_det, view_img_car_det, save_txt_car_det, imgsz_car_det = self.opt_car_det.source, self.opt_car_det.weights, self.opt_car_det.view_img, self.opt_car_det.save_txt, self.opt_car_det.img_size self.device_car_det = torch_utils.select_device(self.opt_car_det.device) self.half_car_det = 0 # half precision only supported on CUDA cudnn.benchmark = True

222 浏览量