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


Java Credentials类代码示例

本文整理汇总了Java中sun.security.krb5.internal.ccache.Credentials的典型用法代码示例。如果您正苦于以下问题:Java Credentials类的具体用法?Java Credentials怎么用?Java Credentials使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。


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

示例1: putInCache

import sun.security.krb5.internal.ccache.Credentials; //导入依赖的package包/类
/**
 * Put TGS credentials ticket in cache file to persist credentials.
 *
 * @param tgsCredentials TGS credentials
 * @throws KrbException 
 * @throws IOException 
 */
public static void putInCache(sun.security.krb5.Credentials tgsCredentials)
    throws KrbException, IOException {

  CredentialsCache cache = CredentialsCache.getInstance();
  Credentials ccreds = new sun.security.krb5.internal.ccache.Credentials(
      tgsCredentials.getClient(),
      tgsCredentials.getServer(),
      tgsCredentials.getSessionKey(),
      new KerberosTime(tgsCredentials.getAuthTime()),
      /*new KerberosTime(tgsCredentials.getStartTime())*/ null,
      new KerberosTime(tgsCredentials.getEndTime()),
      /*new KerberosTime(receivedCredentials.getRenewTill())*/ null,
      false,
      tgsCredentials.getTicketFlags(),
      /*new HostAddresses(receivedCredentials.getClientAddresses())*/ null,
      null,
      tgsCredentials.getTicket(),
      null);
  cache.update(ccreds);
  cache.save();

}
 
开发者ID:criteo,项目名称:kerberos-docker,代码行数:30,代码来源:KerberosTicketManager.java

示例2: main

import sun.security.krb5.internal.ccache.Credentials; //导入依赖的package包/类
public static void main(String[] args) throws Exception {
    System.setProperty("sun.security.krb5.debug", "true");  // test code changes in DEBUG
    CCacheInputStream cis = new CCacheInputStream(new ByteArrayInputStream(ccache));
    cis.readVersion();
    cis.readTag();
    cis.readPrincipal(0x504);
    Method m = CCacheInputStream.class.getDeclaredMethod("readCred", Integer.TYPE);
    m.setAccessible(true);
    Credentials c = (Credentials) m.invoke(cis, new Integer(0x504));
    sun.security.krb5.Credentials cc = c.setKrbCreds();

    // 1. Make sure starttime is still null
    if (cc.getStartTime() != null) {
        throw new Exception("Fail, starttime should be zero here");
    }

    // 2. Make sure renewTill is still null
    if (cc.getRenewTill() != null) {
        throw new Exception("Fail, renewTill should be zero here");
    }

    // 3. Make sure isValid works
    c.isValid();
}
 
开发者ID:lambdalab-mirror,项目名称:jdk8u-jdk,代码行数:25,代码来源:TimeInCCache.java

示例3: main

import sun.security.krb5.internal.ccache.Credentials; //导入依赖的package包/类
public static void main(String[] args) {
  try {
    String userNamePrincipal = "[email protected]";
    Credentials tgtCredentials = getTGT("/etc/bob.keytab", userNamePrincipal);
    putInCache(userNamePrincipal, tgtCredentials);
    sun.security.krb5.Credentials tgsCredentials = getTGS(
        "host/[email protected]"
    );
    putInCache(tgsCredentials);
    cleanCache();
  } catch (Exception e) {
    e.printStackTrace();
  }
}
 
开发者ID:criteo,项目名称:kerberos-docker,代码行数:15,代码来源:KerberosTicketManager.java

示例4: getTGT

import sun.security.krb5.internal.ccache.Credentials; //导入依赖的package包/类
/**
 * Get a Ticket Granting Ticket (TGT) from Authentication Server (AS) with required keytab file.
 *
 * 1. Create and send AS-REQ
 * 2. Receive KRB ERROR (PRE-AUTH is mandatory in Kerberos v5)
 * 3. Re-send AS-REQ
 * 4. Receive AS-REP
 * 5. Return TGT credentials ticket in Java object
 *
 * @param keytabFileName Path file name to keytab (required already on disk storage, for instance
 *                       /etc/bob.keytab)
 * @param userName user name principal (UPN) (ex: [email protected])
 * @param realm Kerberos domain of the Authentication Server (ex: EXAMPLE.COM)
 * @return TGT credentials
 * @throws KrbException
 * @throws IOException
 *
 * Note: 
 * - For system administrator it is like the command: kinit -kt keytab upn 
 * - [WARNING] dependencies with internal proprietary API and may be removed in a future release
 */
public static Credentials getTGT(String keytabFileName, String userName, String realm)
    throws KrbException, IOException {

  KrbAsReqBuilder builder = null;
  try {

    PrincipalName userPrincipalName = new PrincipalName(userName);
    KeyTab keyTab = KeyTab.getInstance(new File(keytabFileName));
    builder = new KrbAsReqBuilder(userPrincipalName, keyTab);

    PrincipalName tgsPrincipalName = PrincipalName.tgsService(realm, realm);
    builder.setTarget(tgsPrincipalName);

    // see http://hg.openjdk.java.net/jdk8/jdk8/jdk/file/default/src/share/classes/sun/security/krb5/KdcComm.java#l145
    // for default parameters (timeout, max retries ...)
    builder.action();

    Credentials tgtCredentials = builder.getCCreds();
    if (DEBUG) {
      System.out.println(">>>TGT credentials : " +
          ReflectionToStringBuilder.toString(tgtCredentials));
    }
    return tgtCredentials;

  } finally {

    if (builder != null) {
      builder.destroy();
    }

  }

}
 
开发者ID:criteo,项目名称:kerberos-docker,代码行数:55,代码来源:KerberosTicketManager.java

示例5: test01getTGT

import sun.security.krb5.internal.ccache.Credentials; //导入依赖的package包/类
@Test
public void test01getTGT() {
  try {
    Credentials tgtCredentials = getTGT("/etc/bob.keytab", "[email protected]");
    assertEquals(
        "krbtgt/[email protected]",
        tgtCredentials.getServicePrincipal().toString()
    );
    KerberosTicketManager.putInCache("[email protected]", tgtCredentials);
  } catch (KrbException | IOException e) {
    e.printStackTrace();
  }
}
 
开发者ID:criteo,项目名称:kerberos-docker,代码行数:14,代码来源:KerberosTicketManagerTest.java

示例6: test02getTGS

import sun.security.krb5.internal.ccache.Credentials; //导入依赖的package包/类
@Test
public void test02getTGS() {
  try {
    sun.security.krb5.Credentials tgsCredentials = getTGS(
        "host/[email protected]");
    assertEquals(
        "host/[email protected]",
        tgsCredentials.getServer().toString()
    );
    KerberosTicketManager.putInCache(tgsCredentials);
  } catch (KrbException | IOException e) {
    e.printStackTrace();
  }
}
 
开发者ID:criteo,项目名称:kerberos-docker,代码行数:15,代码来源:KerberosTicketManagerTest.java

示例7: test03checkCache

import sun.security.krb5.internal.ccache.Credentials; //导入依赖的package包/类
@Test
public void test03checkCache() {
  try {
    CredentialsCache cache = KerberosTicketManager.getCache();
    Credentials[] credentials = cache.getCredsList();
    assertEquals(2, credentials.length);
    assertEquals("krbtgt/[email protected]",
        credentials[0].getServicePrincipal().toString());
    assertEquals("host/[email protected]",
        credentials[1].getServicePrincipal().toString());
  } catch (RealmException e) {
    e.printStackTrace();
  }
}
 
开发者ID:criteo,项目名称:kerberos-docker,代码行数:15,代码来源:KerberosTicketManagerTest.java

示例8: checkKinit

import sun.security.krb5.internal.ccache.Credentials; //导入依赖的package包/类
static void checkKinit(
        String s1,      // ticket_lifetime in krb5.conf, null if none
        String s2,      // renew_lifetime in krb5.conf, null if none
        String c1,      // -l on kinit, null if none
        String c2,      // -r on kinit, null if none
        int t1, int t2  // expected lifetimes, -1 of unexpected
            ) throws Exception {
    KDC.saveConfig(OneKDC.KRB5_CONF, kdc,
            s1 != null ? ("ticket_lifetime = " + s1) : "",
            s2 != null ? ("renew_lifetime = " + s2) : "");
    Proc p = Proc.create(clazz);
    if (c1 != null) {
        p.args("-l", c1);
    }
    if (c2 != null) {
        p.args("-r", c2);
    }
    count++;
    p.args(OneKDC.USER, new String(OneKDC.PASS))
            .inheritIO()
            .prop("jdk.net.hosts.file", hostsFileName)
            .prop("java.security.krb5.conf", OneKDC.KRB5_CONF)
            .env("KRB5CCNAME", "ccache" + count)
            .start();
    if (p.waitFor() != 0) {
        throw new Exception();
    }
    FileCredentialsCache fcc =
            FileCredentialsCache.acquireInstance(null, "ccache" + count);
    Credentials cred = fcc.getDefaultCreds();
    checkRough(cred.getEndTime().toDate(), t1);
    if (cred.getRenewTill() == null) {
        checkRough(null, t2);
    } else {
        checkRough(cred.getRenewTill().toDate(), t2);
    }
}
 
开发者ID:AdoptOpenJDK,项目名称:openjdk-jdk10,代码行数:38,代码来源:Renewal.java

示例9: main

import sun.security.krb5.internal.ccache.Credentials; //导入依赖的package包/类
public static void main(String[] args) throws Exception {
    // A trivial cache file, with startdate and renewTill being zero.
    // The endtime is set to sometime in year 2022, so that isValid()
    // will always check starttime.
    byte[] ccache = new byte[]{
        5, 4, 0, 12, 0, 1, 0, 8, -1, -1, -1, 19, -1, -2, 89, 51,
        0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 10, 77, 65, 88, 73,
        46, 76, 79, 67, 65, 76, 0, 0, 0, 5, 100, 117, 109, 109, 121, 0,
        0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 10, 77, 65, 88, 73, 46,
        76, 79, 67, 65, 76, 0, 0, 0, 5, 100, 117, 109, 109, 121, 0, 0,
        0, 0, 0, 0, 0, 2, 0, 0, 0, 10, 77, 65, 88, 73, 46, 76,
        79, 67, 65, 76, 0, 0, 0, 6, 107, 114, 98, 116, 103, 116, 0, 0,
        0, 10, 77, 65, 88, 73, 46, 76, 79, 67, 65, 76, 0, 17, 0, 0,
        0, 16, -78, -85, -90, -50, -68, 115, 68, 8, -39, -109, 91, 61, -17, -27,
        -122, -120, 71, 69, 16, -121, 0, 0, 0, 0, 98, 69, 16, -121, 0, 0,
        0, 0, 0, 64, -32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 1, 0, 97, -127, -3, 48, -127, -6, -96, 3, 2, 1, 5, -95, 12,
        27, 10, 77, 65, 88, 73, 46, 76, 79, 67, 65, 76, -94, 31, 48, 29,
        -96, 3, 2, 1, 0, -95, 22, 48, 20, 27, 6, 107, 114, 98, 116, 103,
        116, 27, 10, 77, 65, 88, 73, 46, 76, 79, 67, 65, 76, -93, -127, -61,
        48, -127, -64, -96, 3, 2, 1, 17, -95, 3, 2, 1, 1, -94, -127, -77,
        4, -127, -80, 43, 65, -66, 34, 21, -34, 37, 35, 32, 50, -14, 122, 77,
        -3, -29, 37, 99, 50, 125, -43, -96, -78, 85, 23, 41, -80, 68, 2, -109,
        -27, 38, -41, -72, -32, 127, 63, -76, -22, 81, 33, -114, -30, 104, 125, -81,
        -29, 70, -25, 23, 100, -75, -25, 62, -120, -78, -61, -100, -74, 50, -117, -127,
        -16, 79, -106, 62, -39, 91, 100, -10, 23, -88, -18, -47, 51, -19, 113, 18,
        98, -101, 31, 98, 22, -81, 11, -41, -42, 67, 87, 92, -2, 42, -54, 79,
        49, -90, 43, -37, 90, -102, 125, 62, -88, -77, 100, 102, 23, -57, -51, 38,
        68, -44, -57, -102, 103, -6, 85, -58, 74, -117, -87, 67, -103, -36, 110, -122,
        115, 12, 118, -106, -114, -51, 79, 68, 32, -91, -53, -5, -51, 89, 72, 70,
        123, -12, -95, 9, 40, -30, -117, 74, 77, 38, 91, 126, -82, 17, 98, 98,
        -49, 78, 36, 36, 103, -76, -100, -23, 118, -92, -8, 80, 103, -23, -98, 56,
        21, 65, -77, 0, 0, 0, 0
    };
    System.setProperty("sun.security.krb5.debug", "true");  // test code changes in DEBUG
    CCacheInputStream cis = new CCacheInputStream(new ByteArrayInputStream(ccache));
    cis.readVersion();
    cis.readTag();
    cis.readPrincipal(0x504);
    Method m = CCacheInputStream.class.getDeclaredMethod("readCred", Integer.TYPE);
    m.setAccessible(true);
    Credentials c = (Credentials) m.invoke(cis, new Integer(0x504));
    sun.security.krb5.Credentials cc = c.setKrbCreds();

    // 1. Make sure starttime is still null
    if (cc.getStartTime() != null) {
        throw new Exception("Fail, starttime should be zero here");
    }

    // 2. Make sure renewTill is still null
    if (cc.getRenewTill() != null) {
        throw new Exception("Fail, renewTill should be zero here");
    }

    // 3. Make sure isValid works
    c.isValid();
}
 
开发者ID:alexkasko,项目名称:openjdk-icedtea7,代码行数:58,代码来源:TimeInCCache.java

示例10: getTGS

import sun.security.krb5.internal.ccache.Credentials; //导入依赖的package包/类
/**
 * Get a Ticket Granting Service (TGS) from Ticket Granting Server (TGS) required TGT.
 * 
 * 1. Create and send TGS-REQ
 * 2. Receive TGS-REP
 * 3. Return TGS credentials ticket in Java object
 * 
 * @param serviceName service name principal (SPN) (ex: host/[email protected])
 * @return TGS credentials
 * @throws KrbException
 * @throws IOException
 * 
 * Note: 
 * - For system administrator it is like the command: kvno spn
 */
public static sun.security.krb5.Credentials getTGS(String serviceName)
    throws KrbException, IOException {

  PrincipalName servicePrincipalName = new PrincipalName(serviceName);
  sun.security.krb5.Credentials credentials = sun.security.krb5.Credentials.acquireDefaultCreds();
  KrbTgsReq tgsReq = new KrbTgsReq(credentials, servicePrincipalName);
  sun.security.krb5.Credentials tgsCredentials = tgsReq.sendAndGetCreds();
  if (DEBUG) {
    System.out.println(">>>TGS credentials : " +
        ReflectionToStringBuilder.toString(tgsCredentials));
  }
  return tgsCredentials;
}
 
开发者ID:criteo,项目名称:kerberos-docker,代码行数:29,代码来源:KerberosTicketManager.java


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