मैं अपने आराम एपीआई का पर्दाफाश करने के लिए जेट्टी एम्बेडेड सर्वर का उपयोग करने की कोशिश कर रहा हूं और अब मैं केर्बेरोज प्रमाणीकरण को कार्यान्वित करना चाहता हूं।केर्बेरोस प्रमाणीकरण के साथ एम्बेडेड जेट्टी सर्वर 9 का उपयोग कैसे करें?
targetName = HTTP/target.name.com
मेरे krb5.ini:
[libdefaults]
default_realm = HW.COM
default_keytab_name = FILE:/path/to/target.name.com.keytab
permitted_enctypes = aes128-cts aes256-cts arcfour-hmac-md5
default_tgs_enctypes = aes128-cts aes256-cts arcfour-hmac-md5
default_tkt_enctypes = aes128-cts aes256-cts arcfour-hmac-md5
[realms]
MY.COM= {
kdc = 12.13.14.222 #IP adress
admin_server = 12.13.14.222 # IP ADDRESS
default_domain = MY.COM
}
[domain_realm]
my.com= MY.COM
.my.com = MY.COM
[appdefaults]
autologin = true
forwardable = true
मेरे spnego.conf:
com.sun.security.jgss.initiate {
com.sun.security.auth.module.Krb5LoginModule required
principal="HTTP/[email protected]"
keyTab="/path/to/target.name.com.keytab"
useKeyTab=true
storeKey=true
debug=true
isInitiator=false;
};
com.sun.security.jgss.accept {
com.sun.security.auth.module.Krb5LoginModule required
principal="HTTP/[email protected]"
useKeyTab=true
keyTab="/path/to/target.name.com.keytab"
storeKey=true
debug=true
isInitiator=false;
};
यह मैं कैसे बना सकता हूँ SecurityHandler
String domainRealm = "MY.COM";
Constraint constraint = new Constraint();
constraint.setName(Constraint.__SPNEGO_AUTH);
constraint.setRoles(new String[]{domainRealm});
constraint.setAuthenticate(true);
ConstraintMapping cm = new ConstraintMapping();
cm.setConstraint(constraint);
cm.setPathSpec("/*");
SpnegoLoginService loginService = new SpnegoLoginService();
loginService.setConfig("/path/to/spnego.properties");
loginService.setName(domainRealm);
ConstraintSecurityHandler sh = new ConstraintSecurityHandler();
sh.setAuthenticator(new SpnegoAuthenticator());
sh.setLoginService(loginService);
sh.setConstraintMappings(new ConstraintMapping[]{cm});
sh.setRealmName(domainRealm);
यह मेरा spnego.properties है
सिस्टम गुण सेट हैं:
System.setProperty("javax.security.auth.useSubjectCredsOnly", "false");
System.setProperty("java.security.auth.login.config", "/path/to/spnego.conf");
System.setProperty("java.security.krb5.conf", "/path/to/krb5.ini");
दुर्भाग्य से प्रमाणीकरण काम नहीं करता है। मैं SpnegoLoginService.login विधि डिबग करने के लिए कोशिश कर रहा हूँ और प्रवेश में विफल रहता है की वजह से
GSSException: Defective token detected (Mechanism level: GSSHeader did not find the right tag)
आप विचार कैसे सेटअप एम्बेडेड जेट्टी सर्वर Kerberos प्रमाणीकरण के साथ सही ढंग से काम करने के लिए किया है?
धन्यवाद