public class SunJaasKerberosTicketValidator extends java.lang.Object implements KerberosTicketValidator, org.springframework.beans.factory.InitializingBean
KerberosTicketValidator
which uses the SUN JAAS
login module, which is included in the SUN JRE, it will not work with an IBM JRE.
The whole configuration is done in this class, no additional JAAS configuration
is needed.Constructor and Description |
---|
SunJaasKerberosTicketValidator() |
Modifier and Type | Method and Description |
---|---|
void |
afterPropertiesSet() |
void |
setDebug(boolean debug)
Enables the debug mode of the JAAS Kerberos login module.
|
void |
setHoldOnToGSSContext(boolean holdOnToGSSContext)
Determines whether to hold on to the
GSS security context or
otherwise dispose of it immediately (the default behaviour). |
void |
setKeyTabLocation(org.springframework.core.io.Resource keyTabLocation)
The location of the keytab.
|
void |
setServicePrincipal(java.lang.String servicePrincipal)
The service principal of the application.
|
KerberosTicketValidation |
validateTicket(byte[] token)
Validates a Kerberos/SPNEGO ticket.
|
public KerberosTicketValidation validateTicket(byte[] token)
KerberosTicketValidator
validateTicket
in interface KerberosTicketValidator
token
- Kerbeos/SPNEGO ticketpublic void afterPropertiesSet() throws java.lang.Exception
afterPropertiesSet
in interface org.springframework.beans.factory.InitializingBean
java.lang.Exception
public void setServicePrincipal(java.lang.String servicePrincipal)
HTTP/full-qualified-domain-name@DOMAIN
.
The keytab must contain the key for this principal.servicePrincipal
- service principal to usesetKeyTabLocation(Resource)
public void setKeyTabLocation(org.springframework.core.io.Resource keyTabLocation)
The location of the keytab. You can use the normale Spring Resource
prefixes like file:
or classpath:
, but as the
file is later on read by JAAS, we cannot guarantee that classpath
works in every environment, esp. not in Java EE application servers. You
should use file:
there.
This file also needs special protection, which is another reason to
not include it in the classpath but rather use file:/etc/http.keytab
for example.
keyTabLocation
- The location where the keytab residespublic void setDebug(boolean debug)
debug
- default is falsepublic void setHoldOnToGSSContext(boolean holdOnToGSSContext)
GSS security context
or
otherwise dispose
of it immediately (the default behaviour).
Holding on to the GSS context allows decrypt and encrypt operations for subsequent interactions with the principal.
holdOnToGSSContext
- true if should hold on to context