Class InMemoryTicketComponentImpl
java.lang.Object
org.alfresco.repo.security.authentication.InMemoryTicketComponentImpl
- All Implemented Interfaces:
TicketComponent
Store tickets in memory. They can be distributed in a cluster via the cache
- Author:
- andyh
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic enumstatic classTicket -
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic voidvoidClear the current ticketintcountTickets(boolean nonExpiredOnly) Count tickets This may be higher than the user count, since a user can have more than one ticket/sessionbooleangetAuthorityForTicket(String ticketString) Get the authority for the given ticketgetCurrentTicket(String userName, boolean autoCreate) Get the current ticketgetNewTicket(String userName) Register a new ticketgetUsersWithTickets(boolean nonExpiredOnly) Get set of users with tickets This may be lower than the ticket count, since a user can have more than one ticket/sessionbooleanDoes this ticket component support a single ticket per user or one ticket for each time they login?inthashCode()voidinvalidateTicketById(String ticketString) Invalidate the tickets by idvoidinvalidateTicketByUser(String userName) Invalidate all user ticketsintinvalidateTickets(boolean expiredOnly) Invalidate ticketsvoidsetExpiryMode(String expiryMode) How should tickets expire.voidsetOneOff(boolean oneOff) Deprecated.voidsetTicketsCache(SimpleCache<String, InMemoryTicketComponentImpl.Ticket> ticketsCache) Set the ticket cache to support clusteringvoidsetTicketsExpire(boolean ticketsExpire) Do tickets expirevoidsetUsernameToTicketIdCache(SimpleCache<String, String> usernameToTicketIdCache) Set the usernameToTicketIdCache as secondary map for supporting cache clusteringvoidsetUseSingleTicketPerUser(boolean useSingleTicketPerUser) voidsetValidDuration(String validDuration) How long are tickets valid (XML duration as a string)validateTicket(String ticketString) Check that a certificate is valid and can be used in place of a login.
-
Field Details
-
GRANTED_AUTHORITY_TICKET_PREFIX
Ticket prefix- See Also:
-
-
Constructor Details
-
InMemoryTicketComponentImpl
public InMemoryTicketComponentImpl()IOC constructor
-
-
Method Details
-
setTicketsCache
Set the ticket cache to support clustering -
setUsernameToTicketIdCache
Set the usernameToTicketIdCache as secondary map for supporting cache clustering -
setUseSingleTicketPerUser
public void setUseSingleTicketPerUser(boolean useSingleTicketPerUser) - Parameters:
useSingleTicketPerUser- the useSingleTicketPerUser to set
-
getUseSingleTicketPerUser
public boolean getUseSingleTicketPerUser()Description copied from interface:TicketComponentDoes this ticket component support a single ticket per user or one ticket for each time they login?- Specified by:
getUseSingleTicketPerUserin interfaceTicketComponent- Returns:
- the useSingleTicketPerUser
-
setOneOff
Deprecated.Are tickets single use -
setTicketsExpire
public void setTicketsExpire(boolean ticketsExpire) Do tickets expire -
setExpiryMode
How should tickets expire. -
setValidDuration
How long are tickets valid (XML duration as a string) -
getNewTicket
Description copied from interface:TicketComponentRegister a new ticket- Specified by:
getNewTicketin interfaceTicketComponent- Parameters:
userName- String- Returns:
- - the ticket
- Throws:
AuthenticationException
-
validateTicket
Description copied from interface:TicketComponentCheck that a certificate is valid and can be used in place of a login. Tickets may be rejected because:- The certificate does not exists
- The status of the user has changed
- The user is locked
- The account has expired
- The credentials have expired
- The account is disabled
- The ticket may have expired
- The ticked my be invalid by timed expiry
- An attemp to reuse a once only ticket
- Specified by:
validateTicketin interfaceTicketComponent- Parameters:
ticketString- String- Returns:
- - the user name
- Throws:
AuthenticationException
-
invalidateTicketById
Description copied from interface:TicketComponentInvalidate the tickets by id- Specified by:
invalidateTicketByIdin interfaceTicketComponent- Parameters:
ticketString- String
-
getUsersWithTickets
Description copied from interface:TicketComponentGet set of users with tickets This may be lower than the ticket count, since a user can have more than one ticket/session- Specified by:
getUsersWithTicketsin interfaceTicketComponent- Parameters:
nonExpiredOnly- true for non expired tickets, false for all (including expired) tickets
-
countTickets
public int countTickets(boolean nonExpiredOnly) Description copied from interface:TicketComponentCount tickets This may be higher than the user count, since a user can have more than one ticket/session- Specified by:
countTicketsin interfaceTicketComponent- Parameters:
nonExpiredOnly- true for non expired tickets, false for all (including expired) tickets- Returns:
- int number of tickets
-
invalidateTickets
public int invalidateTickets(boolean expiredOnly) Description copied from interface:TicketComponentInvalidate tickets- Specified by:
invalidateTicketsin interfaceTicketComponent- Parameters:
expiredOnly- true for EXPIRED tickets, false for ALL (including non-expired) tickets- Returns:
- int count of invalidated tickets
-
invalidateTicketByUser
Description copied from interface:TicketComponentInvalidate all user tickets- Specified by:
invalidateTicketByUserin interfaceTicketComponent- Parameters:
userName- String
-
hashCode
public int hashCode() -
equals
-
getAuthorityForTicket
Description copied from interface:TicketComponentGet the authority for the given ticket- Specified by:
getAuthorityForTicketin interfaceTicketComponent- Parameters:
ticketString- String- Returns:
- the authority
-
getCurrentTicket
Description copied from interface:TicketComponentGet the current ticket- Specified by:
getCurrentTicketin interfaceTicketComponent- Parameters:
userName- StringautoCreate- should we create one automatically if there isn't one?- Returns:
- - the ticket
-
clearCurrentTicket
public void clearCurrentTicket()Description copied from interface:TicketComponentClear the current ticket- Specified by:
clearCurrentTicketin interfaceTicketComponent
-
clearCurrentSecurityContext
public static void clearCurrentSecurityContext()
-