Skip to content

Commit 698e643

Browse files
authored
Sp/anonymous user tests (#128)
[Issue-127] fix anonymous user access to streams
1 parent ac0ba15 commit 698e643

File tree

15 files changed

+688
-17
lines changed

15 files changed

+688
-17
lines changed

CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,12 @@
22
The format is based on [Keep a Changelog](http://keepachangelog.com/)
33
and this project adheres to [Semantic Versioning](http://semver.org/).
44

5+
## 2.1.3 (UNRELEASED)
6+
7+
#### Bug fixes
8+
- [ISSUE-127](https://github.com/SourceLabOrg/kafka-webview/issues/127) Anonymous users were unable to stream views.
9+
10+
511
## 2.1.2 (01/15/2018)
612

713
#### Bug fixes

dev-cluster/pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,12 @@
55
<parent>
66
<artifactId>kafka-webview</artifactId>
77
<groupId>org.sourcelab</groupId>
8-
<version>2.1.2</version>
8+
<version>2.1.3</version>
99
</parent>
1010
<modelVersion>4.0.0</modelVersion>
1111

1212
<artifactId>dev-cluster</artifactId>
13-
<version>2.1.2</version>
13+
<version>2.1.3</version>
1414

1515
<!-- Require Maven 3.3.9 -->
1616
<prerequisites>

kafka-webview-plugin/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<parent>
66
<groupId>org.sourcelab</groupId>
77
<artifactId>kafka-webview</artifactId>
8-
<version>2.1.2</version>
8+
<version>2.1.3</version>
99
</parent>
1010
<modelVersion>4.0.0</modelVersion>
1111
<artifactId>kafka-webview-plugin</artifactId>

kafka-webview-ui/pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,11 @@
55
<parent>
66
<artifactId>kafka-webview</artifactId>
77
<groupId>org.sourcelab</groupId>
8-
<version>2.1.2</version>
8+
<version>2.1.3</version>
99
</parent>
1010
<modelVersion>4.0.0</modelVersion>
1111
<artifactId>kafka-webview-ui</artifactId>
12-
<version>2.1.2</version>
12+
<version>2.1.3</version>
1313

1414
<!-- Module Description and Ownership -->
1515
<name>Kafka WebView UI</name>

kafka-webview-ui/src/main/java/org/sourcelab/kafka/webview/ui/controller/stream/StreamController.java

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424

2525
package org.sourcelab.kafka.webview.ui.controller.stream;
2626

27+
import org.sourcelab.kafka.webview.ui.configuration.AppProperties;
2728
import org.sourcelab.kafka.webview.ui.controller.BaseController;
2829
import org.sourcelab.kafka.webview.ui.controller.api.requests.ConsumeRequest;
2930
import org.sourcelab.kafka.webview.ui.manager.kafka.SessionIdentifier;
@@ -33,6 +34,7 @@
3334
import org.sourcelab.kafka.webview.ui.manager.socket.WebSocketConsumersManager;
3435
import org.sourcelab.kafka.webview.ui.manager.ui.BreadCrumbManager;
3536
import org.sourcelab.kafka.webview.ui.manager.ui.FlashMessage;
37+
import org.sourcelab.kafka.webview.ui.manager.user.AnonymousUserDetailsService;
3638
import org.sourcelab.kafka.webview.ui.manager.user.CustomUserDetails;
3739
import org.sourcelab.kafka.webview.ui.model.View;
3840
import org.sourcelab.kafka.webview.ui.repository.ViewRepository;
@@ -58,6 +60,9 @@
5860
@Controller
5961
@RequestMapping("/stream")
6062
public class StreamController extends BaseController {
63+
@Autowired
64+
private AppProperties appProperties;
65+
6166
@Autowired
6267
private ViewRepository viewRepository;
6368

@@ -186,6 +191,11 @@ private long getLoggedInUserId(final SimpMessageHeaderAccessor headerAccessor) {
186191
* @return Currently logged in user's details.
187192
*/
188193
private CustomUserDetails getLoggedInUser(final SimpMessageHeaderAccessor headerAccessor) {
189-
return (CustomUserDetails) ((Authentication)headerAccessor.getUser()).getPrincipal();
194+
// If we're using anonymous access
195+
if (!appProperties.isUserAuthEnabled()) {
196+
// Return default 'anonymous' user.
197+
return AnonymousUserDetailsService.getDefaultAnonymousUser();
198+
}
199+
return (CustomUserDetails) ((Authentication) headerAccessor.getUser()).getPrincipal();
190200
}
191201
}

kafka-webview-ui/src/main/resources/templates/layout.html

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -74,15 +74,23 @@
7474
<!-- User Settings Nav -->
7575
<ul class="nav navbar-nav ml-auto">
7676
<li class="nav-item dropdown" style="padding-right: 50px;">
77-
<a class="nav-link dropdown-toggle nav-link" data-toggle="dropdown" href="#" role="button" aria-haspopup="true" aria-expanded="false">
77+
<a
78+
class="nav-link nav-link"
79+
th:classappend="${MenuShowUserConfig} ? dropdown-toggle : blank"
80+
data-toggle="dropdown"
81+
href="#"
82+
role="button"
83+
aria-haspopup="true"
84+
aria-expanded="false">
85+
7886
<i class="icon-user"></i>
7987
<span class="d-md-down-none" sec:authentication="name"></span>
8088
</a>
81-
<div class="dropdown-menu dropdown-menu-right">
82-
<div class="dropdown-header text-center" th:if="${MenuShowUserConfig}">
89+
<div class="dropdown-menu dropdown-menu-right" th:if="${MenuShowUserConfig}">
90+
<div class="dropdown-header text-center">
8391
<strong>Settings</strong>
8492
</div>
85-
<a class="dropdown-item" th:href="@{/configuration/user/edit/{id}(id=${UserId})}" th:if="${MenuShowUserConfig}">
93+
<a class="dropdown-item" th:href="@{/configuration/user/edit/{id}(id=${UserId})}">
8694
<i class="fa fa-user"></i> Profile
8795
</a>
8896
<div class="divider"></div>

kafka-webview-ui/src/test/java/org/sourcelab/kafka/webview/ui/controller/login/AnonymousLoginTest.java

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,21 @@
2929
import org.springframework.beans.factory.annotation.Autowired;
3030
import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
3131
import org.springframework.boot.test.context.SpringBootTest;
32+
import org.springframework.messaging.converter.MappingJackson2MessageConverter;
33+
import org.springframework.messaging.simp.stomp.StompSession;
34+
import org.springframework.messaging.simp.stomp.StompSessionHandlerAdapter;
3235
import org.springframework.test.context.junit4.SpringRunner;
3336
import org.springframework.test.web.servlet.MockMvc;
3437
import org.springframework.test.web.servlet.MvcResult;
38+
import org.springframework.web.socket.client.standard.StandardWebSocketClient;
39+
import org.springframework.web.socket.messaging.WebSocketStompClient;
40+
import org.springframework.web.socket.sockjs.client.SockJsClient;
41+
import org.springframework.web.socket.sockjs.client.Transport;
42+
import org.springframework.web.socket.sockjs.client.WebSocketTransport;
43+
44+
import java.util.ArrayList;
45+
import java.util.List;
46+
import java.util.concurrent.TimeUnit;
3547

3648
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
3749
import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print;
@@ -59,6 +71,5 @@ public void test_validAnonymousUser() throws Exception {
5971
.andExpect(status().isOk())
6072
.andReturn();
6173
}
62-
6374
}
6475

0 commit comments

Comments
 (0)