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


Java KerberosPrincipal.KRB_NT_PRINCIPAL属性代码示例

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


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

示例1: clientPasswordloginSuccess

@Test
public void clientPasswordloginSuccess() {
	Subject clientSubject = krb5ClientHelper.krb5PasswordLogin(testPassword);
	KerberosPrincipal testingPrincipal = new KerberosPrincipal(clientPrincipal, KerberosPrincipal.KRB_NT_PRINCIPAL);
	Set<KerberosPrincipal> principals  = clientSubject.getPrincipals(KerberosPrincipal.class);
	assertTrue(principals.contains(testingPrincipal));
	assertEquals(krb5ClientHelper.principalNameFromSubject(clientSubject), clientPrincipal);
}
 
开发者ID:jcmturner,项目名称:java-kerberos-utils,代码行数:8,代码来源:Krb5ClientHelperTest.java

示例2: doLocalhost

private SpnegoPrincipal doLocalhost() {
    final String username = System.getProperty("user.name");
    
    if (null == username || username.isEmpty()) {
        return new SpnegoPrincipal(this.serverPrincipal.getName() + '@' 
                + this.serverPrincipal.getRealm()
                , this.serverPrincipal.getNameType());            
    } else {
        return new SpnegoPrincipal(username + '@' 
                + this.serverPrincipal.getRealm()
                , KerberosPrincipal.KRB_NT_PRINCIPAL);            
    }
}
 
开发者ID:codelibs,项目名称:spnego,代码行数:13,代码来源:SpnegoAuthenticator.java

示例3: getInitiatorSubject

public static Subject getInitiatorSubject ( String userName, String password, String realm, Long expire ) throws Exception {
    KerberosPrincipal principal = new KerberosPrincipal(String.format("%[email protected]%s", userName, realm), KerberosPrincipal.KRB_NT_PRINCIPAL);
    return getInitiatorSubject(principal, password, expire);
}
 
开发者ID:AgNO3,项目名称:jcifs-ng,代码行数:4,代码来源:KerberosTest.java

示例4: doBasicAuth

/**
 * Performs authentication using the BASIC Auth mechanism.
 *
 * <p>
 * Returns null if authentication failed or if the provided 
 * the auth scheme did not contain BASIC Auth data/token.
 * </p>
 * 
 * @return SpnegoPrincipal for the given auth scheme.
 */
private SpnegoPrincipal doBasicAuth(final SpnegoAuthScheme scheme
    , final SpnegoHttpServletResponse resp) throws IOException {

    final byte[] data = scheme.getToken();

    if (0 == data.length) {
        LOGGER.finer("Basic Auth data was NULL.");
        return null;
    }

    final String[] basicData = new String(data).split(":", 2);

    // assert
    if (basicData.length != 2) {
        throw new IllegalArgumentException("Username/Password may"
                + " have contained an invalid character. basicData.length=" 
                + basicData.length);
    }

    // substring to remove domain (if provided)
    final String username = basicData[0].substring(basicData[0].indexOf('\\') + 1);
    final String password = basicData[1];
    final CallbackHandler handler = SpnegoProvider.getUsernamePasswordHandler(
            username, password);
    
    SpnegoPrincipal principal = null;
    
    try {
        // assert
        if (null == username || username.isEmpty()) {
            throw new LoginException("Username is required.");
        }

        final LoginContext cntxt = new LoginContext(this.clientModuleName, handler);

        // validate username/password by login/logout  
        cntxt.login();
        cntxt.logout();

        principal = new SpnegoPrincipal(username + '@' 
                + this.serverPrincipal.getRealm()
                , KerberosPrincipal.KRB_NT_PRINCIPAL);

    } catch (LoginException le) {
        LOGGER.info(le.getMessage() + ": Login failed. username=" + username 
                + "; password.hashCode()=" + password.hashCode());
        LOGGER.log(Level.FINE, "Cause", le);

        resp.setHeader(Constants.AUTHN_HEADER, Constants.NEGOTIATE_HEADER);
        resp.addHeader(Constants.AUTHN_HEADER, Constants.BASIC_HEADER 
                + " realm=\"" + this.serverPrincipal.getRealm() + '\"');

        resp.setStatus(HttpServletResponse.SC_UNAUTHORIZED, true);
    }

    return principal;
}
 
开发者ID:codelibs,项目名称:spnego,代码行数:67,代码来源:SpnegoAuthenticator.java

示例5: doSpnegoAuth

/**
 * Performs authentication using the SPNEGO mechanism.
 *
 * <p>
 * Returns null if authentication failed or if the provided 
 * the auth scheme did not contain the SPNEGO/GSS token.
 * </p>
 * 
 * @return SpnegoPrincipal for the given auth scheme.
 */
private SpnegoPrincipal doSpnegoAuth(
    final SpnegoAuthScheme scheme, final SpnegoHttpServletResponse resp) 
    throws GSSException, IOException {

    final String principal;
    final byte[] gss = scheme.getToken();

    if (0 == gss.length) {
        LOGGER.finer("GSS data was NULL.");
        return null;
    }

    GSSContext context = null;
    GSSCredential delegCred = null;
    
    try {
        byte[] token = null;
        
        SpnegoAuthenticator.LOCK.lock();
        try {
            context = SpnegoAuthenticator.MANAGER.createContext(this.serverCredentials);
            token = context.acceptSecContext(gss, 0, gss.length);
        } finally {
            SpnegoAuthenticator.LOCK.unlock();
        }

        if (null == token) {
            LOGGER.finer("Token was NULL.");
            return null;
        }

        resp.setHeader(Constants.AUTHN_HEADER, Constants.NEGOTIATE_HEADER 
                + ' ' + Base64.encode(token));

        if (!context.isEstablished()) {
            LOGGER.fine("context not established");
            resp.setStatus(HttpServletResponse.SC_UNAUTHORIZED, true);
            return null;
        }

        principal = context.getSrcName().toString();
        
        if (this.allowDelegation && context.getCredDelegState()) {
            delegCred = context.getDelegCred();
        }

    } finally {
        if (null != context) {
            SpnegoAuthenticator.LOCK.lock();
            try {
                context.dispose();
            } finally {
                SpnegoAuthenticator.LOCK.unlock();
            }
        }
    }

    return new SpnegoPrincipal(principal, KerberosPrincipal.KRB_NT_PRINCIPAL, delegCred);
}
 
开发者ID:codelibs,项目名称:spnego,代码行数:69,代码来源:SpnegoAuthenticator.java


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