Class SunJaasKerberosTicketValidator
java.lang.Object
org.pac4j.core.util.InitializableObject
org.pac4j.kerberos.credentials.authenticator.SunJaasKerberosTicketValidator
- All Implemented Interfaces:
KerberosTicketValidator
public class SunJaasKerberosTicketValidator
extends org.pac4j.core.util.InitializableObject
implements KerberosTicketValidator
Implementation of
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.- Since:
- 2.1.0
originally from spring-kerberos project
- Author:
- Garry Boyce
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected void
internalInit
(boolean forceReinit) void
setDebug
(boolean debug) Enables the debug mode of the JAAS Kerberos login module.void
setHoldOnToGSSContext
(boolean holdOnToGSSContext) Determines whether to hold on to theGSS security context
or otherwisedispose
of it immediately (the default behaviour).void
setKeyTabLocation
(org.springframework.core.io.Resource keyTabLocation) The location of the keytab.void
setServicePrincipal
(String servicePrincipal) The service principal of the application.validateTicket
(byte[] token) Validates a Kerberos/SPNEGO ticket.Methods inherited from class org.pac4j.core.util.InitializableObject
afterInternalInit, beforeInternalInit, getInitialized, getLastAttempt, getMaxAttempts, getMinTimeIntervalBetweenAttemptsInMilliseconds, getNbAttempts, init, init, isInitialized, reinit, setMaxAttempts, setMinTimeIntervalBetweenAttemptsInMilliseconds, shouldInitialize, toString
-
Constructor Details
-
SunJaasKerberosTicketValidator
public SunJaasKerberosTicketValidator()
-
-
Method Details
-
validateTicket
Validates a Kerberos/SPNEGO ticket.- Specified by:
validateTicket
in interfaceKerberosTicketValidator
- Parameters:
token
- Kerbeos/SPNEGO ticket- Returns:
- authenticated kerberos principal
-
internalInit
protected void internalInit(boolean forceReinit) - Specified by:
internalInit
in classorg.pac4j.core.util.InitializableObject
-
setServicePrincipal
The service principal of the application. For web apps this isHTTP/full-qualified-domain-name@DOMAIN
. The keytab must contain the key for this principal.- Parameters:
servicePrincipal
- service principal to use- See Also:
-
setKeyTabLocation
public void setKeyTabLocation(org.springframework.core.io.Resource keyTabLocation) The location of the keytab. You can use the normal Resource prefixes like
file:
orclasspath:
, but as the file is later on read by JAAS, we cannot guarantee thatclasspath
works in every environment, esp. not in Java EE application servers. You should usefile:
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.- Parameters:
keyTabLocation
- The location where the keytab resides
-
setDebug
public void setDebug(boolean debug) Enables the debug mode of the JAAS Kerberos login module.- Parameters:
debug
- default is false
-
setHoldOnToGSSContext
public void setHoldOnToGSSContext(boolean holdOnToGSSContext) Determines whether to hold on to theGSS security context
or otherwisedispose
of it immediately (the default behaviour).Holding on to the GSS context allows decrypt and encrypt operations for subsequent interactions with the principal.
- Parameters:
holdOnToGSSContext
- true if should hold on to context
-