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


Java GSSUtil.isSpNegoMech方法代码示例

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


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

示例1: doServicePermCheck

import sun.security.jgss.GSSUtil; //导入方法依赖的package包/类
private void doServicePermCheck() throws GSSException {
    if (System.getSecurityManager() != null) {
        String action = (isInitiator? "initiate" : "accept");
        // Need to check Service permission for accessing
        // initiator cred for SPNEGO during context establishment
        if (GSSUtil.isSpNegoMech(cStub.getMech()) && isInitiator
            && !isEstablished) {
            if (srcName == null) {
                // Check by creating default initiator KRB5 cred
                GSSCredElement tempCred =
                    new GSSCredElement(null, lifetime,
                                       GSSCredential.INITIATE_ONLY,
                                       GSSLibStub.getInstance(GSSUtil.GSS_KRB5_MECH_OID));
                tempCred.dispose();
            } else {
                String tgsName = Krb5Util.getTGSName(srcName);
                Krb5Util.checkServicePermission(tgsName, action);
            }
        }
        String targetStr = targetName.getKrbName();
        Krb5Util.checkServicePermission(targetStr, action);
        skipServicePermCheck = true;
    }
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:25,代码来源:NativeGSSContext.java

示例2: NativeGSSContext

import sun.security.jgss.GSSUtil; //导入方法依赖的package包/类
NativeGSSContext(long pCtxt, GSSLibStub stub) throws GSSException {
    assert(pContext != 0);
    pContext = pCtxt;
    cStub = stub;

    // Set everything except cred, cb, delegatedCred
    long[] info = cStub.inquireContext(pContext);
    if (info.length != NUM_OF_INQUIRE_VALUES) {
        throw new RuntimeException("Bug w/ GSSLibStub.inquireContext()");
    }
    srcName = new GSSNameElement(info[0], cStub);
    targetName = new GSSNameElement(info[1], cStub);
    isInitiator = (info[2] != 0);
    isEstablished = (info[3] != 0);
    flags = (int) info[4];
    lifetime = (int) info[5];

    // Do Service Permission check when importing SPNEGO context
    // just to be safe
    Oid mech = cStub.getMech();
    if (GSSUtil.isSpNegoMech(mech) || GSSUtil.isKerberosMech(mech)) {
        doServicePermCheck();
    }
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:25,代码来源:NativeGSSContext.java

示例3: getNativeNameType

import sun.security.jgss.GSSUtil; //导入方法依赖的package包/类
private static Oid getNativeNameType(Oid nameType, GSSLibStub stub) {
    if (GSSUtil.NT_GSS_KRB5_PRINCIPAL.equals(nameType)) {
        Oid[] supportedNTs = null;
        try {
            supportedNTs = stub.inquireNamesForMech();
        } catch (GSSException ge) {
            if (ge.getMajor() == GSSException.BAD_MECH &&
                GSSUtil.isSpNegoMech(stub.getMech())) {
                // Workaround known Heimdal issue and retry with KRB5
                try {
                    stub = GSSLibStub.getInstance
                        (GSSUtil.GSS_KRB5_MECH_OID);
                    supportedNTs = stub.inquireNamesForMech();
                } catch (GSSException ge2) {
                    // Should never happen
                    SunNativeProvider.debug("Name type list unavailable: " +
                        ge2.getMajorString());
                }
            } else {
                SunNativeProvider.debug("Name type list unavailable: " +
                    ge.getMajorString());
            }
        }
        if (supportedNTs != null) {
            for (int i = 0; i < supportedNTs.length; i++) {
                if (supportedNTs[i].equals(nameType)) return nameType;
            }
            // Special handling the specified name type
            SunNativeProvider.debug("Override " + nameType +
                " with mechanism default(null)");
            return null; // Use mechanism specific default
        }
    }
    return nameType;
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:36,代码来源:GSSNameElement.java

示例4: acceptSecContext

import sun.security.jgss.GSSUtil; //导入方法依赖的package包/类
public byte[] acceptSecContext(InputStream is, int mechTokenLen)
    throws GSSException {
    byte[] outToken = null;
    if ((!isEstablished) && (!isInitiator)) {
        byte[] inToken = retrieveToken(is, mechTokenLen);
        SunNativeProvider.debug("acceptSecContext=> inToken len=" +
                                inToken.length);
        long pCred = (cred == null? 0 : cred.pCred);
        outToken = cStub.acceptContext(pCred, cb, inToken, this);
        SunNativeProvider.debug("acceptSecContext=> outToken len=" +
                                (outToken == null? 0 : outToken.length));

        if (targetName == null) {
            targetName = new GSSNameElement
                (cStub.getContextName(pContext, false), cStub);
            // Replace the current default acceptor cred now that
            // the context acceptor name is available
            if (cred != null) cred.dispose();
            cred = new GSSCredElement(targetName, lifetime,
                                      GSSCredential.ACCEPT_ONLY, cStub);
        }

        // Only inspect token when the permission check has not
        // been performed
        if (GSSUtil.isSpNegoMech(cStub.getMech()) &&
            (outToken != null) && !skipServicePermCheck) {
            if (GSSUtil.isKerberosMech(getMechFromSpNegoToken
                                       (outToken, false))) {
                doServicePermCheck();
            }
        }
    }
    return outToken;
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:35,代码来源:NativeGSSContext.java

示例5: initSecContext

import sun.security.jgss.GSSUtil; //导入方法依赖的package包/类
public byte[] initSecContext(InputStream is, int mechTokenLen)
    throws GSSException {
    byte[] outToken = null;
    if ((!isEstablished) && (isInitiator)) {
        byte[] inToken = null;
        // Ignore the specified input stream on the first call
        if (pContext != 0) {
            inToken = retrieveToken(is, mechTokenLen);
            SunNativeProvider.debug("initSecContext=> inToken len=" +
                inToken.length);
        }

        if (!getCredDelegState()) skipDelegPermCheck = true;

        if (GSSUtil.isKerberosMech(cStub.getMech()) && !skipDelegPermCheck) {
            doDelegPermCheck();
        }

        long pCred = (cred == null? 0 : cred.pCred);
        outToken = cStub.initContext(pCred, targetName.pName,
                                     cb, inToken, this);
        SunNativeProvider.debug("initSecContext=> outToken len=" +
            (outToken == null ? 0 : outToken.length));

        // Only inspect the token when the permission check
        // has not been performed
        if (GSSUtil.isSpNegoMech(cStub.getMech()) && outToken != null) {
            // WORKAROUND for SEAM bug#6287358
            actualMech = getMechFromSpNegoToken(outToken, true);

            if (GSSUtil.isKerberosMech(actualMech)) {
                if (!skipServicePermCheck) doServicePermCheck();
                if (!skipDelegPermCheck) doDelegPermCheck();
            }
        }

        if (isEstablished) {
            if (srcName == null) {
                srcName = new GSSNameElement
                    (cStub.getContextName(pContext, true), cStub);
            }
            if (cred == null) {
                cred = new GSSCredElement(srcName, lifetime,
                                          GSSCredential.INITIATE_ONLY,
                                          cStub);
            }
        }
    }
    return outToken;
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:51,代码来源:NativeGSSContext.java


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