当前位置: 首页>>代码示例>>Java>>正文


Java KeyTab.isBound方法代码示例

本文整理汇总了Java中javax.security.auth.kerberos.KeyTab.isBound方法的典型用法代码示例。如果您正苦于以下问题:Java KeyTab.isBound方法的具体用法?Java KeyTab.isBound怎么用?Java KeyTab.isBound使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在javax.security.auth.kerberos.KeyTab的用法示例。


在下文中一共展示了KeyTab.isBound方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: isRelated

import javax.security.auth.kerberos.KeyTab; //导入方法依赖的package包/类
@Override
public boolean isRelated(Subject subject, Principal princ) {
    if (princ == null) return false;
    Set<Principal> principals =
            subject.getPrincipals(Principal.class);
    if (principals.contains(princ)) {
        // bound to this principal
        return true;
    }
    for (KeyTab pc: subject.getPrivateCredentials(KeyTab.class)) {
        if (!pc.isBound()) {
            return true;
        }
    }
    return false;
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:17,代码来源:Krb5ProxyImpl.java

示例2: isRelated

import javax.security.auth.kerberos.KeyTab; //导入方法依赖的package包/类
@Override
public boolean isRelated(boolean isClient,
        AccessControlContext acc, Principal p) {

    if (p == null) return false;
    try {
        Subject subject = AccessController.doPrivileged(
                (PrivilegedExceptionAction<Subject>)
                        () -> Krb5Util.getSubject(
                                isClient ? GSSCaller.CALLER_SSL_CLIENT
                                        : GSSCaller.CALLER_SSL_SERVER,
                                acc));
        if (subject == null) {
            if (debug != null && Debug.isOn("session")) {
                System.out.println("Kerberos credentials are" +
                        " not present in the current Subject;" +
                        " check if " +
                        " javax.security.auth.useSubjectAsCreds" +
                        " system property has been set to false");
            }
            return false;
        }
        Set<Principal> principals =
                subject.getPrincipals(Principal.class);
        if (principals.contains(p)) {
            // bound to this principal
            return true;
        } else {
            if (isClient) {
                return false;
            } else {
                for (KeyTab pc : subject.getPrivateCredentials(KeyTab.class)) {
                    if (!pc.isBound()) {
                        return true;
                    }
                }
                return false;
            }
        }
    } catch (PrivilegedActionException pae) {
        if (debug != null && Debug.isOn("session")) {
            System.out.println("Attempt to obtain" +
                    " subject failed! " + pae);
        }
        return false;
    }

}
 
开发者ID:campolake,项目名称:openjdk9,代码行数:49,代码来源:Krb5KeyExchangeService.java

示例3: getInstance

import javax.security.auth.kerberos.KeyTab; //导入方法依赖的package包/类
/**
 * Creates a ServiceCreds object based on info in a Subject for
 * a given principal name (if specified).
 * @return the object, or null if there is no private creds for it
 */
public static ServiceCreds getInstance(
        Subject subj, String serverPrincipal) {

    ServiceCreds sc = new ServiceCreds();

    sc.allPrincs =
            subj.getPrincipals(KerberosPrincipal.class);

    // Compatibility. A key implies its own principal
    for (KerberosKey key: SubjectComber.findMany(
            subj, serverPrincipal, null, KerberosKey.class)) {
        sc.allPrincs.add(key.getPrincipal());
    }

    if (serverPrincipal != null) {      // A named principal
        sc.kp = new KerberosPrincipal(serverPrincipal);
    } else {
        // For compatibility reason, we set the name of default principal
        // to the "only possible" name it can take, which means there is
        // only one KerberosPrincipal and there is no unbound keytabs
        if (sc.allPrincs.size() == 1) {
            boolean hasUnbound = false;
            for (KeyTab ktab: SubjectComber.findMany(
                    subj, null, null, KeyTab.class)) {
                if (!ktab.isBound()) {
                    hasUnbound = true;
                    break;
                }
            }
            if (!hasUnbound) {
                sc.kp = sc.allPrincs.iterator().next();
                serverPrincipal = sc.kp.getName();
            }
        }
    }

    sc.ktabs = SubjectComber.findMany(
                subj, serverPrincipal, null, KeyTab.class);
    sc.kk = SubjectComber.findMany(
                subj, serverPrincipal, null, KerberosKey.class);
    sc.tgt = SubjectComber.find(
            subj, null, serverPrincipal, KerberosTicket.class);
    if (sc.ktabs.isEmpty() && sc.kk.isEmpty() && sc.tgt == null) {
        return null;
    }

    sc.destroyed = false;

    return sc;
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:56,代码来源:ServiceCreds.java


注:本文中的javax.security.auth.kerberos.KeyTab.isBound方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。