Skip to content

Commit

Permalink
ATS-11 support other webapps, not enforcing appNG
Browse files Browse the repository at this point in the history
  • Loading branch information
Matthias Müller committed Dec 11, 2018
1 parent 6c0c857 commit 85dcb28
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 16 deletions.
4 changes: 2 additions & 2 deletions pom.xml
Expand Up @@ -4,7 +4,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>org.appng</groupId>
<artifactId>appng-tomcat-session</artifactId>
<version>0.1.1-SNAPSHOT</version>
<version>0.1.2-SNAPSHOT</version>
<description>appNG Tomcat Session</description>
<build>
<plugins>
Expand Down Expand Up @@ -194,7 +194,7 @@
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-catalina</artifactId>
<version>8.5.20</version>
<version>8.5.35</version>
<scope>provided</scope>
</dependency>
<dependency>
Expand Down
15 changes: 8 additions & 7 deletions src/main/java/org/appng/tomcat/session/Utils.java
Expand Up @@ -16,6 +16,7 @@
package org.appng.tomcat.session;

import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.ObjectInputStream;
import java.lang.reflect.Constructor;
Expand Down Expand Up @@ -74,24 +75,24 @@ public static String getTemplatePrefix(ServletContext servletContext) {
return null;
}

public static ObjectInputStream getObjectInputStream(ClassLoader classLoader, ServletContext ctx, byte[] data) {
public static ObjectInputStream getObjectInputStream(ClassLoader classLoader, ServletContext ctx, byte[] data)
throws IOException {
return getObjectInputStream(classLoader, ctx, new ByteArrayInputStream(data));
}

public static ObjectInputStream getObjectInputStream(ClassLoader classLoader, ServletContext ctx,
InputStream data) {
ObjectInputStream ois = null;
public static ObjectInputStream getObjectInputStream(ClassLoader classLoader, ServletContext ctx, InputStream data)
throws IOException {
try {
@SuppressWarnings("unchecked")
Constructor<ObjectInputStream> constructor = (Constructor<ObjectInputStream>) classLoader
.loadClass(Constants.INPUT_STREAM_CLASS)
.getDeclaredConstructor(InputStream.class, ServletContext.class);

ois = constructor.newInstance(data, ctx);
return constructor.newInstance(data, ctx);
} catch (ReflectiveOperationException e) {
throw new IllegalArgumentException(e);
// ignore, webapp is not appNG
}
return ois;
return new ObjectInputStream(data);
}

private static Log getSlf4jWrapper(Class<?> clazz, Object slf4jLogger) {
Expand Down
Expand Up @@ -50,15 +50,15 @@ public void invoke(Request request, Response response) throws IOException, Servl
}

private void storeSession(Request request, Response response) throws IOException {
Session sessionInternal = request.getSessionInternal();
if (sessionInternal != null) {
Session session = request.getSessionInternal(false);
if (session != null) {
MongoPersistentManager manager = (MongoPersistentManager) request.getContext().getManager();
if (sessionInternal.isValid()) {
log.debug(String.format("Request with session completed, saving session %s", sessionInternal.getId()));
manager.getStore().save(sessionInternal);
if (session.isValid()) {
log.debug(String.format("Request with session completed, saving session %s", session.getId()));
manager.getStore().save(session);
} else {
log.debug(String.format("HTTP Session has been invalidated, removing %s", sessionInternal.getId()));
manager.remove(sessionInternal);
log.debug(String.format("HTTP Session has been invalidated, removing %s", session.getId()));
manager.remove(session);
}
}
}
Expand Down

0 comments on commit 85dcb28

Please sign in to comment.