diff --git a/pom.xml b/pom.xml
index 8effd6591f4a18e877b3c4e7a08732cb10ec50ea..c72a034c1c15f0b70ed030fb92eaf4fd109ace37 100644
--- a/pom.xml
+++ b/pom.xml
@@ -313,6 +313,11 @@
 			<artifactId>httpclient</artifactId>
 			<version>4.2.2</version>
 		</dependency>
+		<dependency>
+			<groupId>de.thm.arsnova.connector</groupId>
+			<artifactId>connector-client</artifactId>
+			<version>0.12.0-SNAPSHOT</version>
+		</dependency>
 	</dependencies>
 	<build>
 		<plugins>
diff --git a/src/main/java/de/thm/arsnova/dao/CouchDBDao.java b/src/main/java/de/thm/arsnova/dao/CouchDBDao.java
index 33e2bee5f267e185817e0705f077b75dc5a68d6e..74383893acf453e0450a3d70c928b62168e4ac5b 100644
--- a/src/main/java/de/thm/arsnova/dao/CouchDBDao.java
+++ b/src/main/java/de/thm/arsnova/dao/CouchDBDao.java
@@ -1246,4 +1246,15 @@ public class CouchDBDao implements IDatabaseDao {
 			return null;
 		}
 	}
+	
+	@Override
+	public String getCourseId(String keyword) {
+		return this.getSession(keyword).getCourseId();
+	}
+	
+	@Override
+	public boolean isCourseSession(String keyword) {
+		return (this.getSession(keyword).getCourseId() != null) &&
+				(this.getSession(keyword).getCourseType() != null);
+	}
 }
diff --git a/src/main/java/de/thm/arsnova/dao/IDatabaseDao.java b/src/main/java/de/thm/arsnova/dao/IDatabaseDao.java
index 98aaddb7486904b81c8cb3164c04fe7d34fbea7e..38f63b0689f1c189593ae8d774ac2c653a60e426 100644
--- a/src/main/java/de/thm/arsnova/dao/IDatabaseDao.java
+++ b/src/main/java/de/thm/arsnova/dao/IDatabaseDao.java
@@ -114,4 +114,8 @@ public interface IDatabaseDao {
 	void markInterposedQuestionAsRead(InterposedQuestion question) throws IOException;
 
 	List<Session> getMyVisitedSessions(User user);
+
+	String getCourseId(String keyword);
+
+	boolean isCourseSession(String keyword);
 }
diff --git a/src/main/java/de/thm/arsnova/entities/Session.java b/src/main/java/de/thm/arsnova/entities/Session.java
index 2e24fc60b45d42ebef1c9638f5ceb806c9e6c2a5..5eece57b21073cc6e9d06daadc8a4eb076a681b6 100644
--- a/src/main/java/de/thm/arsnova/entities/Session.java
+++ b/src/main/java/de/thm/arsnova/entities/Session.java
@@ -27,6 +27,9 @@ public class Session {
 	private String creator;
 	private boolean active;
 	private long lastOwnerActivity;
+	private String courseType;
+	private String courseId;
+
 	private String _id;
 	private String _rev;
 
@@ -105,4 +108,20 @@ public class Session {
 	public boolean isCreator(User user) {
 		return user.getUsername().equals(this.creator);
 	}
+	
+	public String getCourseType() {
+		return courseType;
+	}
+
+	public void setCourseType(String courseType) {
+		this.courseType = courseType;
+	}
+
+	public String getCourseId() {
+		return courseId;
+	}
+
+	public void setCourseId(String courseId) {
+		this.courseId = courseId;
+	}
 }
diff --git a/src/main/java/de/thm/arsnova/services/SessionService.java b/src/main/java/de/thm/arsnova/services/SessionService.java
index 23f6f881bcd2c8243018f22b327f1516f9772a2d..f6aea0ae6e9317e215f345f9e53dfa60bf373dd2 100644
--- a/src/main/java/de/thm/arsnova/services/SessionService.java
+++ b/src/main/java/de/thm/arsnova/services/SessionService.java
@@ -25,10 +25,12 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import de.thm.arsnova.annotation.Authenticated;
+import de.thm.arsnova.connector.client.ConnectorClient;
 import de.thm.arsnova.dao.IDatabaseDao;
 import de.thm.arsnova.entities.LoggedIn;
 import de.thm.arsnova.entities.Session;
 import de.thm.arsnova.entities.User;
+import de.thm.arsnova.exceptions.ForbiddenException;
 
 @Service
 public class SessionService implements ISessionService {
@@ -40,6 +42,9 @@ public class SessionService implements ISessionService {
 
 	@Autowired
 	private IUserService userService;
+	
+	@Autowired(required=false)
+	private ConnectorClient connectorClient;
 
 	public void setDatabaseDao(final IDatabaseDao newDatabaseDao) {
 		this.databaseDao = newDatabaseDao;
@@ -48,8 +53,16 @@ public class SessionService implements ISessionService {
 	@Override
 	@Authenticated
 	public final Session joinSession(final String keyword) {
-		userService.addCurrentUserToSessionMap(keyword);
-		return databaseDao.getSession(keyword);
+		Session session = databaseDao.getSession(keyword);
+		
+		if (connectorClient != null && databaseDao.isCourseSession(keyword)) {
+			String courseid = databaseDao.getCourseId(keyword);
+			if (! connectorClient.getMembership(userService.getCurrentUser().getUsername(), courseid).isMember()) {
+				throw new ForbiddenException();
+			}
+		}
+		
+		return session;
 	}
 
 	@Override
diff --git a/src/main/webapp/WEB-INF/spring/spring-main.xml b/src/main/webapp/WEB-INF/spring/spring-main.xml
index aeab85f1b01c303f311d8e1e553192f14339225a..815e5077413452acfb0c3185f0da16ced6387c4c 100644
--- a/src/main/webapp/WEB-INF/spring/spring-main.xml
+++ b/src/main/webapp/WEB-INF/spring/spring-main.xml
@@ -43,4 +43,13 @@
 
 	<bean id="userService" scope="singleton" class="de.thm.arsnova.services.UserService" />
 
+	<!-- Example of connector client configuration -->
+	<!-- Uncomment bean definition to activate connector -->
+	<!-- -->
+	<bean id="moodleClient" scope="singleton" class="de.thm.arsnova.connector.client.ConnectorClientImpl">
+		<property name="serviceLocation" value="${connector.uri}"></property>
+		<property name="username" value="${connector.username}"></property>
+		<property name="password" value="${connector.password}"></property>
+	</bean>
+	<!-- -->
 </beans>
diff --git a/src/main/webapp/arsnova.properties.example b/src/main/webapp/arsnova.properties.example
index f62f81f0f6df3693b48854cba5a11f8ec278dda5..84060f6e49fb259bcaf9fe60559eba979dbf33b4 100644
--- a/src/main/webapp/arsnova.properties.example
+++ b/src/main/webapp/arsnova.properties.example
@@ -22,4 +22,8 @@ couchdb.port=5984
 couchdb.name=arsnova
 
 socketio.ip=0.0.0.0
-socketio.port=10443
\ No newline at end of file
+socketio.port=10443
+
+connector.uri=http://localhost:8080/connector-service
+connector.username=test
+connector.password=test
\ No newline at end of file