public class DefaultTicketEngine extends Object implements TicketEngine
Constructor and Description |
---|
DefaultTicketEngine(com.tenduke.sdk2.api.security.Actor actor,
Iterable<com.tenduke.sdk2.api.security.PermissionGrant> permissionGrants)
Initializes a new instance of the
TicketEngine class. |
Modifier and Type | Method and Description |
---|---|
<T extends AbstractTicket> |
consume(String ticketKey)
Consumes a ticket.
|
<T extends AbstractTicket> |
consume(String ticketKey,
Class<T> ticketClass)
Consumes a ticket.
|
<T extends AbstractTicket> |
consume(T ticket)
Consumes a ticket.
|
<T extends AbstractTicket> |
createTicket(com.tenduke.sdk2.objectmodel.identity.Account account,
String path1,
String path2,
Long allowedConsumption,
Boolean isPrivate,
Class<T> ticketClass)
Generates new upload ticket for owner account.
|
protected String |
generateTicketKey(com.tenduke.sdk2.objectmodel.identity.Account account,
String claim)
Generates new unique key for a ticket.
|
protected String |
getAccountRootPath(com.tenduke.sdk2.objectmodel.identity.Account account)
Gets account's root path used by storage.
|
<T extends AbstractTicket> |
resolvePrivateTickets(String path1,
String path2,
Class<T> ticketClass)
Resolves tickets associated with a file entry.
|
protected String |
resolveSalt(com.tenduke.sdk2.objectmodel.identity.Account account)
Resolves salt for signing ticket.
|
protected Class<? extends AbstractTicket> |
resolveTicketClass(String ticketClassName)
Resolves ticket class based on given simple name.
|
Class<? extends AbstractTicket> |
resolveTicketClassByTickeyKey(String ticketKey)
Resolves ticket class based on given simple name.
|
protected String |
resolveTicketSaltIdx(com.tenduke.sdk2.objectmodel.identity.Account account)
Resolves ticket salt reference.
|
void |
revokeTicket(AbstractTicket ticket)
Revokes a ticket.
|
void |
revokeTicket(String ticketKey)
Revokes a ticket.
|
public DefaultTicketEngine(com.tenduke.sdk2.api.security.Actor actor, Iterable<com.tenduke.sdk2.api.security.PermissionGrant> permissionGrants)
TicketEngine
class.actor
- The effective actor using this ticket engine.permissionGrants
- Permission grants used to authorize operations with AuthorityChecker
.public <T extends AbstractTicket> T createTicket(com.tenduke.sdk2.objectmodel.identity.Account account, String path1, String path2, Long allowedConsumption, Boolean isPrivate, Class<T> ticketClass)
createTicket
in interface TicketEngine
T
- Type of ticket.account
- The owner account that grants ticket for upload.path1
- Path 1 claim that ticket is about.path2
- Path 2 claim that ticket is about.allowedConsumption
- The allowed number of requests that this ticket authorizes. If null then value 1
is used as default.isPrivate
- Private flag value to set for ticket. See AbstractTicket.getIsPrivate()
.ticketClass
- Type of ticket.public <T extends AbstractTicket> TicketConsumptionResult<T> consume(String ticketKey)
consume
in interface TicketEngine
T
- Type of ticket.ticketKey
- Key that identifies the ticket to consume.public <T extends AbstractTicket> TicketConsumptionResult<T> consume(String ticketKey, Class<T> ticketClass)
consume
in interface TicketEngine
T
- Type of ticket.ticketKey
- Key that identifies the ticket to consume.ticketClass
- Type of ticket.public <T extends AbstractTicket> TicketConsumptionResult<T> consume(T ticket)
consume
in interface TicketEngine
T
- Type of ticket.ticket
- ticket to consume.public void revokeTicket(String ticketKey)
revokeTicket
in interface TicketEngine
ticketKey
- Key that identifies the ticket.public void revokeTicket(AbstractTicket ticket)
revokeTicket
in interface TicketEngine
ticket
- Ticket to revoke. Null allowed, which will have no side effects.public Class<? extends AbstractTicket> resolveTicketClassByTickeyKey(String ticketKey)
resolveTicketClassByTickeyKey
in interface TicketEngine
ticketKey
- Ticket key to use for resolving ticket class.public <T extends AbstractTicket> List<T> resolvePrivateTickets(String path1, String path2, Class<T> ticketClass)
resolvePrivateTickets
in interface TicketEngine
T
- Type of ticket.path1
- Required value of AbstractTicket.getPath1()
to match.path2
- Required value of AbstractTicket.getPath2()
to match.ticketClass
- Class of ticket to resolve.protected String getAccountRootPath(com.tenduke.sdk2.objectmodel.identity.Account account)
account
- Account who's root path is requested. Null account is allowed as argument (implies system).protected Class<? extends AbstractTicket> resolveTicketClass(String ticketClassName)
ticketClassName
- Simple name of ticket type.protected String generateTicketKey(com.tenduke.sdk2.objectmodel.identity.Account account, String claim)
account
- Account that authorizes ticket.claim
- that ticket request is about.protected String resolveSalt(com.tenduke.sdk2.objectmodel.identity.Account account)
account
- Account that authorizes ticket.protected String resolveTicketSaltIdx(com.tenduke.sdk2.objectmodel.identity.Account account)
account
- Account that authorizes ticket.Copyright © 2015. All rights reserved.