[发明专利]一种单JVM进程中同时支持多个Kerberos认证的方法有效
申请号: | 202011518079.9 | 申请日: | 2020-12-21 |
公开(公告)号: | CN112540830B | 公开(公告)日: | 2022-03-04 |
发明(设计)人: | 张士松;何健安;雷邦宁;翁庄明;彭本 | 申请(专利权)人: | 广州华资软件技术有限公司 |
主分类号: | G06F9/455 | 分类号: | G06F9/455 |
代理公司: | 北京国标律师事务所 11753 | 代理人: | 姚克枫;董琪 |
地址: | 510665 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 jvm 进程 同时 支持 kerberos 认证 方法 | ||
1.一种单JVM进程中同时支持多个Kerberos认证的方法,其特征在于,包括如下步骤:
步骤1,确定独立的、使用Kerberos认证的Hadoop集群的数量;所述Hadoop集群分属不同厂商,各厂商将Kerberos认证建造在各自的域中;
步骤2,对步骤1确定的多个Hadoop集群,逐个执行以下Kerberos认证操作;
步骤2.1,选定一个未执行过Kerberos认证操作的Hadoop集群;
步骤2.2,设置Kerberos认证的环境变量及参数,具体包括:
客户配置文件java.security.krb5.conf,从Kerberos域提供商获取,所述客户配置文件中包含Kerberos域配置信息;
登陆所需的账号密码或.keytab文件,所述.keytab文件从Kerberos域提供商获取默认登陆域名;
利用java反射技术,修改客户配置文件java.security.krb5.conf,实现在单个JVM中能够切换为不同域配置;所述修改客户配置文件java.security.krb5.conf,具体步骤如下:
获取到sun.security.krb5.Config类的引用,
利用Java反射技术调用sun.security.krb5.Config类的静态方法refresh;
利用java反射技术,修改默认登陆域名,实现在单个JVM中能够访问到不同的Kerberos域保护下的软件服务;所述修改默认登陆域名,具体步骤如下:
获取类的私有属性,所述类指org.apache.hadoop.security.authentication.util.KerberosName类,
设置该私有属性的可访问性为true,
利用Java反射技术设置该私有属性defaultRealm为默认登陆域名;
步骤2.3,发起Kerberos认证请求,生成票据并返回;
步骤2.4,选定下一个未执行过Kerberos认证操作的Hadoop集群,重复步骤2.2及2.3,直至步骤1确定的多个Hadoop集群均执行过Kerberos认证操作。
2.如权利要求1所述的单JVM进程中同时支持多个Kerberos认证的方法,其特征在于,所述默认登陆域名,通过写入客户端依赖包中完成设置。
3.如权利要求2所述的单JVM进程中同时支持多个Kerberos认证的方法,其特征在于,客户端依赖包通过org.apache.hadoop.security.authentication.util.KerberosName类存储默认登陆域名。
4.如权利要求1所述的单JVM进程中同时支持多个Kerberos认证的方法,其特征在于,所述发起Kerberos认证请求,具体步骤如下:
根据当前设置好的Kerberos认证的环境变量及参数,构建准备进行Kerberos认证的上下文环境,然后调用类的登陆方法获取软件服务的连接,对所述上下文环境进行认证。
5.如权利要求1所述的单JVM进程中同时支持多个Kerberos认证的方法,其特征在于,在单个JVM下,设定多线程模式,步骤2.2及2.3分别在不同线程中执行。
6.如权利要求5所述的单JVM进程中同时支持多个Kerberos认证的方法,其特征在于,当步骤2.2及2.3分别在不同线程中执行时,具体步骤如下:
首先,获取一同步锁,确保同一时间只能有一个线程进行操作,即:步骤2.2及2.3不能同时进行操作;
然后,执行步骤2.2或2.3;
再后,当执行步骤2.2或2.3完毕,释放同步锁。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于广州华资软件技术有限公司,未经广州华资软件技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011518079.9/1.html,转载请声明来源钻瓜专利网。