相关疑难解决方法(0)

使用Java 8 S4U2Proxy - 需要一个很好的例子

我正在尝试使用Java 8中引入的S4U2Proxy.不幸的是,我没有成功找到那些例子.我的要求是客户会发送证书.然后,我应该委托(使用kerberos)他的请求,连接到KDC,获取TGT,获取服务票证代表用户联系另一台服务器,然后通过提供服务票证最终联系实际服务.如果java 8没有提供干净的方法,你能不能指向我可能解决我的需求的其他实用程序.

Subject.doAs(subject, new PrivilegedAction<Object>() {
        @Override
        public Object run() {
            GSSManager manager = GSSManager.getInstance();
            GSSCredential self  = null;
            try {
                GSSName selfUser = manager.createName("serviceWhoWantstoImpersonate", GSSName.NT_USER_NAME);
                Oid krb5Oid = new Oid( "1.2.840.113554.1.2.2");
                self = manager.createCredential(selfUser.canonicalize(krb5Oid), GSSCredential.DEFAULT_LIFETIME, krb5Oid, GSSCredential.INITIATE_ONLY);
                GSSName user = manager.createName(clientName, GSSName.NT_USER_NAME);
                GSSCredential impCred = ((ExtendedGSSCredential) self).impersonate(user);
            } catch (GSSException e) {
                e.printStackTrace();
            }

            return null;
        }
    });
Run Code Online (Sandbox Code Playgroud)

显然会有关于如何在KDC中设置SPN的问题?该服务帐户是否获得授权?是否已将正确的SPN分配给该服务帐户?当用户"猴子"否认所有类型的授权?等等.现在我觉得我在KDC中做了正确的设置.我的问题是上面甚至在它击中KDC之前就已经发生了.任何有效的输入都会有所帮

编辑:经过一些研究后,我能够使用java 8执行S4u2self和s4u2proxy.感到至少有一个例子应该由Oracle文档提供.无论如何,我现在正在进入下一阶段.现在我需要处理的另一个场景是跨域kerberos证书委派.从我到目前为止看到的java 8文档,它推断出目前不支持跨领域.它仍然是真的吗?

kerberos java-8

10
推荐指数
1
解决办法
1328
查看次数

标签 统计

java-8 ×1

kerberos ×1