JDK6 does not support two keytabs loaded at the same time. It was designed that way. You can merge the two to one and java will pick keys by service names. Of course, if your two keytab files contains keys for the same service and they are different, this won't work.

JDK7 should support it. Just point to different keytab files in different entries of your JAAS config file. Something like

server {
    com.sun.security.auth.module.Krb5LoginModule required
    principal="server/host"
    useKeyTab=true
    keyTab=server.keytab
    storeKey=true;
};
backend {
    com.sun.security.auth.module.Krb5LoginModule required
    principal="backend/host"
    useKeyTab=true
    keyTab=backend.keytab
    storeKey=true;
};

Thanks
Max

On 3/18/13 2:58 PM, Vipul Mehta wrote:
I want to use multiple keytabs within the same kerberos server so
instead of using a JAAS configuration file i wrote my own login
configuration. But it seems that Krb5LoginModule instances share the
same keytab file location. To use a different keytab we need to set
refereshKrb5config to true in login configuration class which will
refresh the configuration for all the Krb5LoginModule instances. Why
Java 6 doesn't allow multiple keytab instances ? There is some change in
the approach how java 7 handles keytabs ( i am not able to get it ) but
it looks like the problem exists in Java 7 as well.

--
Regards,
Vipul

Reply via email to