Skip to content

Commit

Permalink
Merge remote-tracking branch 'remotes/origin/master' into base64
Browse files Browse the repository at this point in the history
  • Loading branch information
kijanowski committed Sep 29, 2017
2 parents b9d3819 + 06368b5 commit 086a968
Show file tree
Hide file tree
Showing 5 changed files with 19 additions and 47 deletions.
4 changes: 1 addition & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -131,14 +131,12 @@ By default, sessions are encoded into a string using a custom format, where expi

You can also encode sessions in the [Json Web Tokens](http://jwt.io) format, by adding the additional `jwt` dependency, which makes use of [`json4s`](http://json4s.org).

[Java](https://github.com/softwaremill/akka-http-session/blob/master/example/src/main/java/com/softwaremill/example/session/manager/JWTSessionManagerJava.java) and [scala](https://github.com/softwaremill/akka-http-session/blob/master/example/src/main/scala/com/softwaremill/example/session/manager/JWTSessionManagerScala.scala) JWT session managers.

When using JWT, you need to provide a serializer which serializes session data to a `JValue` instead of a `String`.
A number of serializers for the basic types are present in `JValueSessionSerializer`, as well as a generic serializer for case classes (used above).

You may also find it helpful to include the json4s-ext library which provides serializers for common Java types such as `java.util.UUID`, `org.joda.time._` and Java enumerations.

Grab some [java](https://github.com/softwaremill/akka-http-session/blob/master/example/src/main/java/com/softwaremill/example/serializers/JWTSerializersJava.java) and [scala](https://github.com/softwaremill/akka-http-session/blob/master/example/src/main/scala/com/softwaremill/example/serializers/JWTSerializersScala.scala) examples.
Grab some [java](https://github.com/softwaremill/akka-http-session/blob/master/example/src/main/java/com/softwaremill/example/jwt/JavaJwtExample.java) and [scala](https://github.com/softwaremill/akka-http-session/blob/master/example/src/main/scala/com/softwaremill/example/serializers/JWTSerializersScala.scala) examples.

There are many tools available to read JWT session data using various platforms, e.g.
[for Angular](https://github.com/auth0/angular-jwt).
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,15 @@
package com.softwaremill.session.javadsl;

import com.softwaremill.session.MultiValueSessionSerializer;
import com.softwaremill.session.SessionSerializer;
import com.softwaremill.session.SessionSerializer$;
import scala.collection.immutable.Map;
import com.softwaremill.session.converters.MapConverters;
import scala.collection.JavaConverters;
import scala.compat.java8.JFunction0;
import scala.compat.java8.JFunction1;
import scala.util.Try;

import java.util.Map;

/**
* Wrapper for session serializers in com.softwaremill.session.SessionSerializer
Expand All @@ -14,7 +21,12 @@ public final class SessionSerializers {
public static final SessionSerializer<Long, String> LongToStringSessionSerializer = (SessionSerializer<Long, String>) (SessionSerializer) SessionSerializer$.MODULE$.longToStringSessionSerializer();
public static final SessionSerializer<Float, String> FloatToStringSessionSerializer = (SessionSerializer<Float, String>) (SessionSerializer) SessionSerializer$.MODULE$.floatToStringSessionSerializer();
public static final SessionSerializer<Double, String> DoubleToStringSessionSerializer = (SessionSerializer<Double, String>) (SessionSerializer) SessionSerializer$.MODULE$.doubleToStringSessionSerializer();
public static final SessionSerializer<Map<String, String>, String> MapToStringSessionSerializer = SessionSerializer$.MODULE$.mapToStringSessionSerializer();

public static final SessionSerializer<Map<String, String>, String> MapToStringSessionSerializer = new MultiValueSessionSerializer<>(
(JFunction1<Map<String, String>, scala.collection.immutable.Map<String, String>>) m -> MapConverters.toImmutableMap(m),
(JFunction1<scala.collection.immutable.Map<String, String>, Try<Map<String, String>>>) v1 ->
Try.apply((JFunction0<Map<String, String>>) () -> JavaConverters.mapAsJavaMapConverter(v1).asJava())
);

private SessionSerializers() {
}
Expand Down

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,10 @@ public final class JwtSessionSerializers {
public static final DefaultFormats$ DefaultUtcDateFormat = DefaultFormats$.MODULE$;

public static final SessionSerializer<String, JsonAST.JValue> StringToJValueSessionSerializer = JValueSessionSerializer$.MODULE$.stringToJValueSessionSerializer();
public static final SessionSerializer IntToJValueSessionSerializer = JValueSessionSerializer$.MODULE$.intToJValueSessionSerializer();
public static final SessionSerializer LongToJValueSessionSerializer = JValueSessionSerializer$.MODULE$.longToJValueSessionSerializer();
public static final SessionSerializer FloatToJValueSessionSerializer = JValueSessionSerializer$.MODULE$.floatToJValueSessionSerializer();
public static final SessionSerializer DoubleToJValueSessionSerializer = JValueSessionSerializer$.MODULE$.doubleToJValueSessionSerializer();
public static final SessionSerializer<Integer, JsonAST.JValue> IntToJValueSessionSerializer = (SessionSerializer<Integer, JsonAST.JValue>) (SessionSerializer) JValueSessionSerializer$.MODULE$.intToJValueSessionSerializer();
public static final SessionSerializer<Long, JsonAST.JValue> LongToJValueSessionSerializer = (SessionSerializer<Long, JsonAST.JValue>) (SessionSerializer) JValueSessionSerializer$.MODULE$.longToJValueSessionSerializer();
public static final SessionSerializer<Float, JsonAST.JValue> FloatToJValueSessionSerializer = (SessionSerializer<Float, JsonAST.JValue>) (SessionSerializer) JValueSessionSerializer$.MODULE$.floatToJValueSessionSerializer();
public static final SessionSerializer<Double, JsonAST.JValue> DoubleToJValueSessionSerializer = (SessionSerializer<Double, JsonAST.JValue>) (SessionSerializer) JValueSessionSerializer$.MODULE$.doubleToJValueSessionSerializer();

private JwtSessionSerializers() {
}
Expand Down

0 comments on commit 086a968

Please sign in to comment.