fork download
  1. package kerberos;
  2.  
  3. import java.util.HashMap;
  4. import java.util.Map;
  5.  
  6. import javax.security.auth.login.AppConfigurationEntry;
  7. import javax.security.auth.login.Configuration;
  8.  
  9. import org.ietf.jgss.GSSCredential;
  10.  
  11. public class LoginConfiguration extends Configuration {
  12. private AppConfigurationEntry configEntry;
  13.  
  14. //getting credential for keytab
  15. public LoginConfiguration(String spn, String keytab, int GSSCredentialType ) {
  16. Map<String, String> parms = new HashMap<String, String>();
  17.  
  18. parms.put("isInitiator", GSSCredentialType == GSSCredential.ACCEPT_ONLY ? "false" : "true" );
  19. parms.put("principal", spn);
  20. parms.put("useKeyTab", "true");
  21. parms.put("storeKey", "true");
  22. // parms.put("useTicketCache", "true");
  23. // parms.put("refreshKrb5Config","true");
  24.  
  25. if (keytab != null) {
  26. System.out.println("Setting the keytab for : " + parms.get("principal"));
  27. parms.put("keyTab", keytab);
  28. System.out.println("keytab : " + parms.get("keyTab"));
  29. }
  30.  
  31. configEntry = new AppConfigurationEntry(
  32. "com.sun.security.auth.module.Krb5LoginModule",
  33. AppConfigurationEntry.LoginModuleControlFlag.REQUIRED, parms);
  34. System.out.println("kytab in config is : " + configEntry.getOptions().get("keyTab"));
  35. System.out.println("principal in config is : " + configEntry.getOptions().get("principal"));
  36. }
  37.  
  38. //getting credential from password
  39. public LoginConfiguration(String spn, int GSSCredentialType ) {
  40. Map<String, String> parms = new HashMap<String, String>();
  41.  
  42. parms.put("isInitiator", GSSCredentialType == GSSCredential.ACCEPT_ONLY ? "false" : "true" );
  43. parms.put("principal", spn);
  44. parms.put("useKeyTab", "false");
  45. parms.put("storeKey", "true");
  46. parms.put("useTicketCache", "true");
  47.  
  48. configEntry = new AppConfigurationEntry(
  49. "com.sun.security.auth.module.Krb5LoginModule",
  50. AppConfigurationEntry.LoginModuleControlFlag.REQUIRED, parms);
  51. }
  52.  
  53. public AppConfigurationEntry[] getAppConfigurationEntry(String name) {
  54. return new AppConfigurationEntry[] { configEntry };
  55. }
  56. }
  57.  
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
Main.java:11: error: class LoginConfiguration is public, should be declared in a file named LoginConfiguration.java
public class LoginConfiguration extends Configuration {
       ^
1 error
stdout
Standard output is empty