public KOptions getPreauthOptions() { KOptions results = new KOptions(); KOptions krbOptions = kdcRequest.getRequestOptions(); if (krbOptions.contains(KrbOption.ARMOR_CACHE)) { results.add(krbOptions.getOption(KrbOption.ARMOR_CACHE)); } else if (krbOptions.contains(KrbOption.TGT)) { results.add(krbOptions.getOption(KrbOption.TGT)); } return results; }
private void getCredential(KOptions kOptions) throws KrbException { if (kOptions.contains(KrbOption.ARMOR_CACHE)) { String ccache = kOptions.getStringOption(KrbOption.ARMOR_CACHE); credential = getCredentialFromFile(ccache); } else if (kOptions.contains(KrbOption.TGT)) { TgtTicket tgt = (TgtTicket) kOptions.getOptionValue(KrbOption.TGT); credential = new Credential(tgt); } }
public int getTimeout() { int timeout = commonOptions.getIntegerOption(KrbOption.CONN_TIMEOUT); if (timeout > 0) { return timeout; } return 1000; // by default } }
/** * Set KDC realm for ticket request * @param realm The realm */ public void setKdcRealm(String realm) { commonOptions.add(KrbOption.KDC_REALM, realm); }
if (kOptions.contains(KadminOption.CCACHE)) { File ccFile = kOptions.getFileOption(KadminOption.CCACHE); if (ccFile == null || !ccFile.exists()) { printUsage("Need the valid credentials cache file."); return; } else if (kOptions.contains(KadminOption.K)) { File keyTabFile = new File(kOptions.getStringOption(KadminOption.K)); if (keyTabFile == null || !keyTabFile.exists()) { printUsage("Need the valid keytab file."); if (kOptions.contains(KadminOption.QUERY)) { String query = kOptions.getStringOption(KadminOption.QUERY); execute(kadmin, query); } else {
/** * Construct with prepared KrbConfig. * @param krbConfig The krb config */ public KrbClientBase(KrbConfig krbConfig) { this.krbConfig = krbConfig; this.commonOptions = new KOptions(); this.krbSetting = new KrbSetting(commonOptions, krbConfig); }
public String getKdcHost() { String kdcHost = commonOptions.getStringOption(AdminOption.ADMIN_HOST); if (kdcHost == null) { return adminConfig.getAdminHost(); } return kdcHost; }
public SgtTicket requestSgt(KrbToken token, String serverPrincipal, TgtTicket tgt) throws KrbException { if (!token.isAcToken()) { throw new IllegalArgumentException("Access token is expected"); } KOptions requestOptions = new KOptions(); requestOptions.add(TokenOption.USER_AC_TOKEN, token); requestOptions.add(KrbOption.TGT, tgt); requestOptions.add(KrbOption.SERVER_PRINCIPAL, serverPrincipal); return requestSgt(requestOptions); } }
/** * Initialize. * * @throws org.apache.kerby.kerberos.kerb.KrbException e. */ public void init() throws KrbException { if (startupOptions.contains(KdcServerOption.INNER_KDC_IMPL)) { innerKdc = (InternalKdcServer) startupOptions.getOptionValue( KdcServerOption.INNER_KDC_IMPL); } else { innerKdc = new DefaultInternalKdcServerImpl(kdcSetting); } innerKdc.init(); }
public long getTicketValidTime() { if (getRequestOptions().contains(KrbOption.LIFE_TIME)) { return getRequestOptions().getIntegerOption(KrbOption.LIFE_TIME) * 1000; } else { return context.getTicketValidTime(); } }
public Object getOptionValue(KOption option) { if (!contains(option)) { return null; } return options.get(option).getOptionInfo().getValue(); }
private Keytab getKeytab() { File keytabFile = null; KOptions kOptions = getRequestOptions(); if (kOptions.contains(KrbOption.KEYTAB_FILE)) { keytabFile = kOptions.getFileOption(KrbOption.KEYTAB_FILE); } if (kOptions.contains(KrbOption.USE_DFT_KEYTAB)) { final String clientKeytabEnv = System.getenv("KRB5_CLIENT_KTNAME"); final String clientKeytabDft = getContext().getConfig().getString( "default_client_keytab_name"); if (clientKeytabEnv != null) { keytabFile = new File(clientKeytabEnv); } else if (clientKeytabDft != null) { keytabFile = new File(clientKeytabDft); } else { System.err.println("Default client keytab file not found."); } } Keytab keytab = null; try { keytab = Keytab.loadKeytab(keytabFile); } catch (IOException e) { System.err.println("Can not load keytab from file" + keytabFile.getAbsolutePath()); } return keytab; }
/** * Get whether udp protocol is allowed * @return udp protocol is allowed or not */ public boolean allowUdp() { Boolean allowUdp = startupOptions.getBooleanOption( AdminServerOption.ALLOW_UDP, adminServerConfig.allowUdp()); return allowUdp; }
public File getFileOption(KOption option) { Object value = getOptionValue(option); if (value instanceof File) { return (File) value; } return null; }
/** * Set to allow TCP or not. * @param allowTcp true if allow tcp */ public void setAllowTcp(boolean allowTcp) { commonOptions.add(KrbOption.ALLOW_TCP, allowTcp); }
if (kOptions.contains(KadminOption.CCACHE)) { File ccFile = kOptions.getFileOption(KadminOption.CCACHE); if (ccFile == null || !ccFile.exists()) { printUsage("Need the valid credentials cache file."); return; } else if (kOptions.contains(KadminOption.K)) { File keyTabFile = new File(kOptions.getStringOption(KadminOption.K)); if (keyTabFile == null || !keyTabFile.exists()) { printUsage("Need the valid keytab file.");
/** * Construct with prepared AdminConfig. * @param adminConfig The krb config */ public AdminClient(AdminConfig adminConfig) { this.adminConfig = adminConfig; this.commonOptions = new KOptions(); this.adminSetting = new AdminSetting(commonOptions, adminConfig); }
public String getKdcRealm() { String kdcRealm = commonOptions.getStringOption(KrbOption.KDC_REALM); if (kdcRealm == null || kdcRealm.isEmpty()) { kdcRealm = krbConfig.getKdcRealm(); } return kdcRealm; }
/** * Initialize. * * @throws KrbException e. */ public void init() throws KrbException { if (startupOptions.contains(AdminServerOption.INNER_ADMIN_IMPL)) { innerAdminServer = (InternalAdminServer) startupOptions.getOptionValue( AdminServerOption.INNER_ADMIN_IMPL); } else { innerAdminServer = new DefaultInternalAdminServerImpl(adminServerSetting); } innerAdminServer.init(); }