[java-identity-provider COMMIT] in /trunk/idp-cas-impl/src: main/java/net/shibboleth/idp/cas/ticket/impl/AbstractTick...

noreply at shibboleth.net noreply at shibboleth.net
Tue Aug 23 10:28:55 EDT 2016


Author: serac
Date: Tue Aug 23 10:28:55 2016
New Revision: 8345

URL: http://svn.shibboleth.net/view/java-identity-provider?rev=8345&view=rev
Log:
IDP-1018 New DataSealer-based TicketService.
https://issues.shibboleth.net/jira/browse/IDP-1018

EncodingTicketService uses a DataSealer to encode serialized ServiceTickets
into the opaque part of the ticket ID. Refactored exisiting impls for code
reuse.

Added:
    trunk/idp-cas-impl/src/main/java/net/shibboleth/idp/cas/ticket/impl/AbstractTicketService.java
    trunk/idp-cas-impl/src/main/java/net/shibboleth/idp/cas/ticket/impl/EncodingTicketService.java
    trunk/idp-cas-impl/src/test/java/net/shibboleth/idp/cas/ticket/impl/EncodingTicketServiceTest.java
Modified:
    trunk/idp-cas-impl/src/main/java/net/shibboleth/idp/cas/ticket/impl/SimpleTicketService.java

Modified: trunk/idp-cas-impl/src/main/java/net/shibboleth/idp/cas/ticket/impl/SimpleTicketService.java
URL: http://svn.shibboleth.net/view/java-identity-provider/trunk/idp-cas-impl/src/main/java/net/shibboleth/idp/cas/ticket/impl/SimpleTicketService.java?rev=8345&r1=8344&r2=8345&view=diff
==============================================================================
--- trunk/idp-cas-impl/src/main/java/net/shibboleth/idp/cas/ticket/impl/SimpleTicketService.java	(original)
+++ trunk/idp-cas-impl/src/main/java/net/shibboleth/idp/cas/ticket/impl/SimpleTicketService.java	Tue Aug 23 10:28:55 2016
@@ -17,88 +17,29 @@
 
 package net.shibboleth.idp.cas.ticket.impl;
 
-import java.io.IOException;
-import java.util.HashMap;
-import java.util.Map;
-
 import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
 
-import net.shibboleth.idp.cas.config.impl.LoginConfiguration;
-import net.shibboleth.idp.cas.config.impl.ProxyConfiguration;
-import net.shibboleth.idp.cas.config.impl.ValidateConfiguration;
-import net.shibboleth.idp.cas.ticket.ProxyGrantingTicket;
-import net.shibboleth.idp.cas.ticket.ProxyTicket;
 import net.shibboleth.idp.cas.ticket.ServiceTicket;
-import net.shibboleth.idp.cas.ticket.Ticket;
-import net.shibboleth.idp.cas.ticket.TicketServiceEx;
 import net.shibboleth.idp.cas.ticket.TicketState;
-import net.shibboleth.idp.cas.ticket.serialization.impl.ProxyGrantingTicketSerializer;
-import net.shibboleth.idp.cas.ticket.serialization.impl.ProxyTicketSerializer;
-import net.shibboleth.idp.cas.ticket.serialization.impl.ServiceTicketSerializer;
 import net.shibboleth.utilities.java.support.logic.Constraint;
 import org.joda.time.Instant;
-import org.opensaml.storage.StorageRecord;
-import org.opensaml.storage.StorageSerializer;
 import org.opensaml.storage.StorageService;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 /**
  * Simple CAS ticket management service that delegates storage to {@link org.opensaml.storage.StorageService}.
  *
  * @author Marvin S. Addison
  */
-public class SimpleTicketService implements TicketServiceEx {
-
-    /** Map of ticket classes to context names. */
-    private static final Map<Class<? extends Ticket>, String> CONTEXT_CLASS_MAP = new HashMap<>();
-
-    /** Map of ticket classes to serializers. */
-    private static final Map<Class<? extends Ticket>, StorageSerializer<? extends Ticket>> SERIALIZER_MAP =
-            new HashMap<>();
-
-    private static final ServiceTicketSerializer ST_SERIALIZER = new ServiceTicketSerializer();
-
-    private static final ProxyTicketSerializer PT_SERIALIZER = new ProxyTicketSerializer();
-
-    private static final ProxyGrantingTicketSerializer PGT_SERIALIZER = new ProxyGrantingTicketSerializer();
-
-    /** Class logger. */
-    private final Logger log = LoggerFactory.getLogger(SimpleTicketService.class);
-
-    /** Storage service to which ticket persistence operations are delegated. */
-    @Nonnull
-    private final StorageService storageService;
-
-    static {
-        CONTEXT_CLASS_MAP.put(ServiceTicket.class, LoginConfiguration.PROFILE_ID);
-        CONTEXT_CLASS_MAP.put(ProxyTicket.class, ProxyConfiguration.PROFILE_ID);
-        CONTEXT_CLASS_MAP.put(ProxyGrantingTicket.class, ValidateConfiguration.PROFILE_ID);
-        SERIALIZER_MAP.put(ServiceTicket.class, ST_SERIALIZER);
-        SERIALIZER_MAP.put(ProxyTicket.class, PT_SERIALIZER);
-        SERIALIZER_MAP.put(ProxyGrantingTicket.class, PGT_SERIALIZER);
-    }
+public class SimpleTicketService extends AbstractTicketService {
 
     /**
      * Creates a new instance.
      *
      * @param service Storage service to which tickets are persisted.
      */
-    public SimpleTicketService(@Nonnull final StorageService service)
-    {
-        this.storageService = Constraint.isNotNull(service, "StorageService cannot be null.");
-    }
-
-    @Override
-    @Nonnull
-    public ServiceTicket createServiceTicket(
-            @Nonnull final String id,
-            @Nonnull final Instant expiry,
-            @Nonnull final String sessionId,
-            @Nonnull final String service,
-            final boolean renew) {
-        throw new UnsupportedOperationException("This version of createServiceTicket is not supported");

[... 143 lines stripped ...]


More information about the commits mailing list