Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • arsnova/arsnova-backend
  • pcvl72/arsnova-backend
  • tksl38/arsnova-backend
3 results
Show changes
Commits on Source (6)
...@@ -13,6 +13,8 @@ ...@@ -13,6 +13,8 @@
<directory-server-version>1.5.5</directory-server-version> <directory-server-version>1.5.5</directory-server-version>
<io.netty-version>4.1.37.Final</io.netty-version> <io.netty-version>4.1.37.Final</io.netty-version>
<org.aspectj-version>1.9.2</org.aspectj-version> <org.aspectj-version>1.9.2</org.aspectj-version>
<javax-jaxb.version>2.3.1</javax-jaxb.version>
<graalvm.version>19.1.1</graalvm.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<timestamp>${maven.build.timestamp}</timestamp> <timestamp>${maven.build.timestamp}</timestamp>
<sonar.language>java</sonar.language> <sonar.language>java</sonar.language>
...@@ -148,6 +150,10 @@ ...@@ -148,6 +150,10 @@
</dependencyManagement> </dependencyManagement>
<dependencies> <dependencies>
<dependency>
<groupId>javax.annotation</groupId>
<artifactId>javax.annotation-api</artifactId>
</dependency>
<dependency> <dependency>
<groupId>commons-lang</groupId> <groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId> <artifactId>commons-lang</artifactId>
...@@ -347,6 +353,16 @@ ...@@ -347,6 +353,16 @@
<groupId>org.springframework</groupId> <groupId>org.springframework</groupId>
<artifactId>spring-aspects</artifactId> <artifactId>spring-aspects</artifactId>
</dependency> </dependency>
<dependency>
<groupId>org.graalvm.js</groupId>
<artifactId>js</artifactId>
<version>${graalvm.version}</version>
</dependency>
<dependency>
<groupId>org.graalvm.js</groupId>
<artifactId>js-scriptengine</artifactId>
<version>${graalvm.version}</version>
</dependency>
<dependency> <dependency>
<groupId>org.mockito</groupId> <groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId> <artifactId>mockito-core</artifactId>
...@@ -455,6 +471,14 @@ ...@@ -455,6 +471,14 @@
<artifactId>aspectjtools</artifactId> <artifactId>aspectjtools</artifactId>
<version>${org.aspectj-version}</version> <version>${org.aspectj-version}</version>
</dependency> </dependency>
<!-- Workaround: Override unnecessary dependency which causes compatibility issues. -->
<dependency>
<groupId>com.sun</groupId>
<artifactId>tools</artifactId>
<version>${java.version}</version>
<scope>system</scope>
<systemPath>${project.basedir}/pom.xml</systemPath>
</dependency>
</dependencies> </dependencies>
</plugin> </plugin>
<plugin> <plugin>
...@@ -597,6 +621,13 @@ ...@@ -597,6 +621,13 @@
</goals> </goals>
</execution> </execution>
</executions> </executions>
<dependencies>
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>${javax-jaxb.version}</version>
</dependency>
</dependencies>
</plugin> </plugin>
<plugin> <plugin>
<groupId>pl.project13.maven</groupId> <groupId>pl.project13.maven</groupId>
...@@ -611,6 +642,19 @@ ...@@ -611,6 +642,19 @@
</executions> </executions>
</plugin> </plugin>
</plugins> </plugins>
<!-- Workaround for JDK 11 support. See https://bugs.eclipse.org/bugs/show_bug.cgi?id=539791 -->
<extensions>
<extension>
<groupId>javax.annotation</groupId>
<artifactId>javax.annotation-api</artifactId>
</extension>
<extension>
<groupId>javax.annotation</groupId>
<artifactId>jsr250-api</artifactId>
<version>1.0</version>
</extension>
</extensions>
</build> </build>
<name>ARSnova Backend</name> <name>ARSnova Backend</name>
......
...@@ -28,7 +28,6 @@ import java.util.List; ...@@ -28,7 +28,6 @@ import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import javax.annotation.PostConstruct; import javax.annotation.PostConstruct;
import javax.script.Bindings;
import javax.script.ScriptEngine; import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager; import javax.script.ScriptEngineManager;
import javax.script.ScriptException; import javax.script.ScriptException;
...@@ -56,7 +55,7 @@ import de.thm.arsnova.service.StatusService; ...@@ -56,7 +55,7 @@ import de.thm.arsnova.service.StatusService;
@Component @Component
public class CouchDbInitializer implements ResourceLoaderAware { public class CouchDbInitializer implements ResourceLoaderAware {
private static final Logger logger = LoggerFactory.getLogger(CouchDbInitializer.class); private static final Logger logger = LoggerFactory.getLogger(CouchDbInitializer.class);
private final List<Bindings> docs = new ArrayList<>(); private final List<Map<String, Object>> docs = new ArrayList<>();
private ResourceLoader resourceLoader; private ResourceLoader resourceLoader;
private MigrationExecutor migrationExecutor; private MigrationExecutor migrationExecutor;
...@@ -83,7 +82,7 @@ public class CouchDbInitializer implements ResourceLoaderAware { ...@@ -83,7 +82,7 @@ public class CouchDbInitializer implements ResourceLoaderAware {
final String js = FileCopyUtils.copyToString(new InputStreamReader(resource.getInputStream())); final String js = FileCopyUtils.copyToString(new InputStreamReader(resource.getInputStream()));
/* Reset designDoc before parsing a new one. */ /* Reset designDoc before parsing a new one. */
engine.eval("var designDoc = null;" + js); engine.eval("var designDoc = null;" + js);
final Bindings jsonObject = (Bindings) engine.eval("jsToJson(designDoc)"); final Map<String, Object> jsonObject = (Map<String, Object>) engine.eval("jsToJson(designDoc)");
docs.add(jsonObject); docs.add(jsonObject);
} }
} }
......
...@@ -31,13 +31,16 @@ public class AuthChannelInterceptorAdapter implements ChannelInterceptor { ...@@ -31,13 +31,16 @@ public class AuthChannelInterceptorAdapter implements ChannelInterceptor {
@Nullable @Nullable
@Override @Override
public Message<?> preSend(final Message<?> message, final MessageChannel channel) { public Message<?> preSend(final Message<?> message, final MessageChannel channel) {
logger.trace("Inspecting incoming message: {}", message);
final StompHeaderAccessor accessor = StompHeaderAccessor.wrap(message); final StompHeaderAccessor accessor = StompHeaderAccessor.wrap(message);
final String sessionId = accessor.getSessionId(); final String sessionId = accessor.getSessionId();
if (accessor.getCommand() != null && accessor.getCommand().equals(StompCommand.CONNECT)) { if (accessor.getCommand() != null && accessor.getCommand().equals(StompCommand.CONNECT)) {
// user needs to authorize // user needs to authorize
logger.trace("Incoming message is a connect command");
final List<String> tokenList = accessor.getNativeHeader("token"); final List<String> tokenList = accessor.getNativeHeader("token");
if (tokenList != null && tokenList.size() > 0) { if (tokenList != null && tokenList.size() > 0) {
logger.trace("Adding token {} to the ws session mapping", tokenList.get(0));
final String token = tokenList.get(0); final String token = tokenList.get(0);
service.addWsSessionToJwtMapping(sessionId, token); service.addWsSessionToJwtMapping(sessionId, token);
} else { } else {
...@@ -46,9 +49,11 @@ public class AuthChannelInterceptorAdapter implements ChannelInterceptor { ...@@ -46,9 +49,11 @@ public class AuthChannelInterceptorAdapter implements ChannelInterceptor {
return null; return null;
} }
} else { } else {
logger.trace("Incoming message is anything but a connect command");
final List<String> userIdList = accessor.getNativeHeader("ars-user-id"); final List<String> userIdList = accessor.getNativeHeader("ars-user-id");
if (userIdList != null && userIdList.size() > 0) { if (userIdList != null && userIdList.size() > 0) {
// user-id is given, check for auth // user-id is given, check for auth
logger.trace("Checking user id with ws session mapping");
final String userId = userIdList.get(0); final String userId = userIdList.get(0);
final User u = service.getAuthenticatedUserByWsSession(sessionId); final User u = service.getAuthenticatedUserByWsSession(sessionId);
if (u == null || !userId.equals(u.getId())) { if (u == null || !userId.equals(u.getId())) {
......