/** * Set the record value, using a custom serialization process. * * @param instance the new record value * @param serializer a custom serialization process to apply * @throws IOException if serialization fails */ protected void setValue(@Nonnull final Type instance, @Nonnull final StorageSerializer<Type> serializer) throws IOException { value = serializer.serialize(instance); }
public class HostPageUtils { private static final native String getSerializedUser() /*-{ return $wnd.serialized_user; }-*/; public static User getUser() { final String serializedUser = getSerializedUser(); StorageSerializer storageSerializer = GWT.create(StorageSerializer.class); try { return storageSerializer.deserialize(User.class, serializedUser); } catch (Exception e) { throw new RuntimeException(); } } }
/** {@inheritDoc} */ @Override @Nonnull @NotEmpty public String serialize(@Nonnull final AuthenticationResult instance) throws IOException { ComponentSupport.ifNotInitializedThrowUninitializedComponentException(this); return resultSerializer.serialize(instance); }
/** * Get the record value, using a custom deserialization process. * * @param serializer a custom (de)serialization process to apply * @param context context of record * @param key key of record * @return the record value * @throws IOException if deserialization fails */ @Nonnull public Type getValue(@Nonnull final StorageSerializer<Type> serializer, @Nonnull @NotEmpty final String context, @Nonnull @NotEmpty final String key) throws IOException { return serializer.deserialize(version, context, key, value, expiration); }
/** {@inheritDoc} */ @Override public boolean create(@Nonnull @NotEmpty final String context, @Nonnull @NotEmpty final String key, @Nonnull final Object value, @Nonnull final StorageSerializer serializer, @Nullable @Positive final Long expiration) throws IOException { return create(context, key, serializer.serialize(value), expiration); }
/** {@inheritDoc} */ @Override @Nonnull public AuthenticationResult deserialize(final long version, @Nonnull @NotEmpty final String context, @Nonnull @NotEmpty final String key, @Nonnull @NotEmpty final String value, @Nonnull final Long expiration) throws IOException { ComponentSupport.ifNotInitializedThrowUninitializedComponentException(this); // Back the expiration off by the inactivity timeout to recover the last activity time. return resultSerializer.deserialize(version, context, key, value, (expiration != null) ? expiration - inactivityTimeout - STORAGE_EXPIRATION_OFFSET : null); }
/** {@inheritDoc} */ @Override public boolean update(@Nonnull @NotEmpty final String context, @Nonnull @NotEmpty final String key, @Nonnull final Object value, @Nonnull final StorageSerializer serializer, @Nullable @Positive final Long expiration) throws IOException { return update(context, key, serializer.serialize(value), expiration); }
/** * Decode a ticket. * * @param ticketClass class of ticket * @param id ticket ID * @param prefix ticket ID prefix * @param <T> type of ticket * * @return decoded ticket */ private <T extends Ticket> T decode(final Class<T> ticketClass, final String id, final String prefix) { try { final String decrypted = dataSealer.unwrap(id.substring(prefix.length() + 1)); return serializer(ticketClass).deserialize(0, NOT_USED, id, decrypted, 0L); } catch (final Exception e) { log.warn("Ticket decoding failed with error: " + e.getMessage()); log.debug("Ticket decoding failed", e); } return null; } }
/** {@inheritDoc} */ // Checkstyle: ParameterNumber OFF @Override @Nullable public Long updateWithVersion(@Positive final long version, @Nonnull @NotEmpty final String context, @Nonnull @NotEmpty final String key, @Nonnull final Object value, @Nonnull final StorageSerializer serializer, @Nullable @Positive final Long expiration) throws IOException, VersionMismatchException { return updateWithVersion(version, context, key, serializer.serialize(value), expiration); }
return spSessionSerializer.deserialize( 1, "session", "key", decrypted.substring(pos + 1), System.currentTimeMillis()); } catch (final ClassNotFoundException | IOException | DataSealerException e) {
/** {@inheritDoc} */ @Override public boolean update(@Nonnull @NotEmpty final String context, @Nonnull @NotEmpty final String key, @Nonnull final Object value, @Nonnull final StorageSerializer serializer, @Nullable @Positive final Long expiration) throws IOException { Constraint.isNotNull(serializer, "Serializer cannot be null"); return update(context, key, serializer.serialize(value), expiration); }
/** {@inheritDoc} */ @Override @Nullable public AuthenticationResultPrincipal deserialize(@Nonnull @NotEmpty final String value) throws IOException { final JsonReader reader = getJsonReader(new StringReader(value)); JsonStructure st = null; try { st = reader.read(); } finally { reader.close(); } if (!(st instanceof JsonObject)) { throw new IOException("Found invalid data structure while parsing AuthenticationResultPrincipal"); } final JsonObject obj = (JsonObject) st; final JsonValue str = obj.get(PRINCIPAL_NAME_FIELD); if (str != null && str instanceof JsonString) { return new AuthenticationResultPrincipal( resultSerializer.deserialize(1, "context", "key", ((JsonString) str).getString(), null)); } else { log.warn("Skipping non-string principal value"); } return null; }
/** {@inheritDoc} */ @Override public boolean create(@Nonnull @NotEmpty final String context, @Nonnull @NotEmpty final String key, @Nonnull final Object value, @Nonnull final StorageSerializer serializer, @Nullable @Positive final Long expiration) throws IOException { Constraint.isNotNull(serializer, "Serializer cannot be null"); return create(context, key, serializer.serialize(value), expiration); }
return spSessionSerializer.deserialize( record.getVersion(), getId(), key, record.getValue().substring(pos + 1), record.getExpiration());
/** {@inheritDoc} */ @Override public Long updateWithVersion(@Positive final long version, @Nonnull @NotEmpty final String context, @Nonnull @NotEmpty final String key, @Nonnull final Object value, @Nonnull final StorageSerializer serializer, @Nullable @Positive final Long expiration) throws IOException, VersionMismatchException { Constraint.isNotNull(serializer, "Serializer cannot be null"); return updateWithVersion(version, context, key, serializer.serialize(value), expiration); }
/** {@inheritDoc} */ @Override @Nonnull @NotEmpty public String serialize(@Nonnull final Principal principal) throws IOException { final StringWriter sink = new StringWriter(128); final JsonGenerator gen = getJsonGenerator(sink); gen.writeStartObject(); final AuthenticationResult result = ((AuthenticationResultPrincipal) principal).getAuthenticationResult(); gen.write(PRINCIPAL_NAME_FIELD, resultSerializer.serialize(result)); gen.writeEnd(); gen.close(); return sink.toString(); }
/** {@inheritDoc} */ @Override protected void doExecute(@Nonnull final ProfileRequestContext profileRequestContext, @Nonnull final ProfileInterceptorContext interceptorContext) { try { final Map<String, Consent> currentConsents = getConsentContext().getCurrentConsents(); final String value = getStorageSerializer().serialize(currentConsents); final long expiration = DateTime.now().plus(getConsentFlowDescriptor().getLifetime()).getMillis(); final ProfileInterceptorResult result = new ConsentResult(getStorageContext(), getStorageKey(), value, expiration); log.debug("{} Created consent result '{}'", getLogPrefix(), result); storeResultWithIndex(profileRequestContext, result); } catch (final IOException e) { log.debug("{} Unable to serialize consent", getLogPrefix(), e); } }
/** {@inheritDoc} */ @Override protected void doExecute(@Nonnull final ProfileRequestContext profileRequestContext, @Nonnull final ProfileInterceptorContext interceptorContext) { try { final Map<String, Consent> currentConsents = getConsentContext().getCurrentConsents(); final String value = getStorageSerializer().serialize(currentConsents); final long expiration = DateTime.now().plus(getConsentFlowDescriptor().getLifetime()).getMillis(); final ProfileInterceptorResult result = new ConsentResult(getStorageContext(), getStorageKey(), value, expiration); log.debug("{} Created consent result '{}'", getLogPrefix(), result); storeResultWithIndex(profileRequestContext, result); } catch (final IOException e) { log.debug("{} Unable to serialize consent", getLogPrefix(), e); } }
/** * Encode a ticket. * * @param ticketClass class of ticket * @param ticket ticket * @param prefix ticket ID prefix * @param <T> type of ticket * * @return ticket encoded ticket */ private <T extends Ticket> T encode(final Class<T> ticketClass, final T ticket, final String prefix) { final String opaque; try { opaque = dataSealer.wrap( serializer(ticketClass).serialize(ticket), ticket.getExpirationInstant().getMillis()); } catch (final Exception e) { throw new RuntimeException("Ticket encoding failed", e); } return ticketClass.cast(ticket.clone(prefix + '-' + opaque)); }
/** {@inheritDoc} */ @Override protected void doExecute(@Nonnull final ProfileRequestContext profileRequestContext, @Nonnull final ProfileInterceptorContext interceptorContext) { try { final Consent globalConsent = new Consent(); globalConsent.setId(Consent.WILDCARD); globalConsent.setApproved(true); final String value = getStorageSerializer().serialize(Collections.singletonMap(globalConsent.getId(), globalConsent)); final long expiration = DateTime.now().plus(getConsentFlowDescriptor().getLifetime()).getMillis(); final ProfileInterceptorResult result = new ConsentResult(getStorageContext(), getStorageKey(), value, expiration); log.debug("{} Created global consent result '{}'", getLogPrefix(), result); storeResultWithIndex(profileRequestContext, result); } catch (IOException e) { log.debug("{} Unable to serialize consent", getLogPrefix(), e); ActionSupport.buildEvent(profileRequestContext, EventIds.IO_ERROR); } } }