Skip to content

Commit 8abd09f

Browse files
authored
Merge pull request #822 from mhei/webendpointinfo
Generate endpoint info on About page based on provided HTTP host header
2 parents ccd34c6 + dee88ba commit 8abd09f

File tree

4 files changed

+34
-44
lines changed

4 files changed

+34
-44
lines changed

src/main/java/de/rwth/idsg/steve/JettyServer.java

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818
*/
1919
package de.rwth.idsg.steve;
2020

21-
import de.rwth.idsg.steve.web.dto.EndpointInfo;
2221
import lombok.extern.slf4j.Slf4j;
2322
import org.eclipse.jetty.http.HttpScheme;
2423
import org.eclipse.jetty.http.HttpVersion;
@@ -185,11 +184,11 @@ public boolean isStarted() {
185184
public void populateEndpointInfo() {
186185
List<String> list = getConnectorPathList();
187186

188-
EndpointInfo info = EndpointInfo.INSTANCE;
189-
190-
info.getWebInterface().setData(buildList(list, false));
191-
info.getOcppSoap().setData(buildList(list, false));
192-
info.getOcppWebSocket().setData(buildList(list, true));
187+
// EndpointInfo info = EndpointInfo.INSTANCE;
188+
//
189+
// info.getWebInterface().setData(buildList(list, false));
190+
// info.getOcppSoap().setData(buildList(list, false));
191+
// info.getOcppWebSocket().setData(buildList(list, true));
193192
}
194193

195194
private List<String> getConnectorPathList() {

src/main/java/de/rwth/idsg/steve/web/controller/AboutSettingsController.java

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,13 +28,16 @@
2828
import lombok.RequiredArgsConstructor;
2929
import org.joda.time.DateTime;
3030
import org.joda.time.DateTimeZone;
31+
import org.springframework.http.HttpHeaders;
3132
import org.springframework.stereotype.Controller;
3233
import org.springframework.ui.Model;
3334
import org.springframework.validation.BindingResult;
3435
import org.springframework.web.bind.annotation.ModelAttribute;
36+
import org.springframework.web.bind.annotation.RequestHeader;
3537
import org.springframework.web.bind.annotation.RequestMapping;
3638
import org.springframework.web.bind.annotation.RequestMethod;
3739

40+
import jakarta.servlet.http.HttpServletRequest;
3841
import jakarta.validation.Valid;
3942

4043
import static de.rwth.idsg.steve.SteveConfiguration.CONFIG;
@@ -67,14 +70,16 @@ public class AboutSettingsController {
6770
// -------------------------------------------------------------------------
6871

6972
@RequestMapping(value = ABOUT_PATH, method = RequestMethod.GET)
70-
public String getAbout(Model model) {
73+
public String getAbout(Model model, @RequestHeader(HttpHeaders.HOST) String host, HttpServletRequest request) {
74+
String scheme = request.getScheme();
75+
7176
model.addAttribute("version", CONFIG.getSteveVersion());
7277
model.addAttribute("db", genericRepository.getDBVersion());
7378
model.addAttribute("logFile", logController.getLogFilePath());
7479
model.addAttribute("systemTime", DateTime.now());
7580
model.addAttribute("systemTimeZone", DateTimeZone.getDefault());
7681
model.addAttribute("releaseReport", releaseCheckService.check());
77-
model.addAttribute("endpointInfo", EndpointInfo.INSTANCE);
82+
model.addAttribute("endpointInfo", EndpointInfo.fromRequest(scheme, host));
7883
return "about";
7984
}
8085

src/main/java/de/rwth/idsg/steve/web/dto/EndpointInfo.java

Lines changed: 12 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -18,43 +18,29 @@
1818
*/
1919
package de.rwth.idsg.steve.web.dto;
2020

21+
import lombok.Builder;
2122
import lombok.Getter;
2223
import lombok.ToString;
2324

24-
import java.util.Collections;
25-
import java.util.List;
26-
import java.util.stream.Collectors;
27-
2825
/**
2926
* @author Sevket Goekay <[email protected]>
27+
* @author Michael Heimpold <[email protected]>
3028
* @since 06.08.2018
3129
*/
3230
@Getter
3331
@ToString
34-
public enum EndpointInfo {
35-
INSTANCE;
36-
37-
private final ItemsWithInfo webInterface = new ItemsWithInfo("Access the web interface using", "/manager/home");
38-
private final ItemsWithInfo ocppSoap = new ItemsWithInfo("SOAP endpoint for OCPP", "/services/CentralSystemService");
39-
private final ItemsWithInfo ocppWebSocket = new ItemsWithInfo("WebSocket/JSON endpoint for OCPP", "/websocket/CentralSystemService/(chargeBoxId)");
32+
@Builder
33+
public class EndpointInfo {
4034

41-
@Getter
42-
@ToString
43-
public static class ItemsWithInfo {
44-
private final String info;
45-
private final String dataElementPostFix;
46-
private List<String> data;
35+
private final String ocppSoap;
36+
private final String ocppWebSocket;
4737

48-
private ItemsWithInfo(String info, String dataElementPostFix) {
49-
this.info = info;
50-
this.dataElementPostFix = dataElementPostFix;
51-
this.data = Collections.emptyList();
52-
}
38+
public static EndpointInfo fromRequest(String httpScheme, String host) {
39+
String webSocketScheme = httpScheme.equals("https") ? "wss" : "ws";
5340

54-
public synchronized void setData(List<String> data) {
55-
this.data = data.stream()
56-
.map(s -> s + dataElementPostFix)
57-
.collect(Collectors.toList());
58-
}
41+
return EndpointInfo.builder()
42+
.ocppSoap(httpScheme + "://" + host + "/services/CentralSystemService")
43+
.ocppWebSocket(webSocketScheme + "://" + host + "/websocket/CentralSystemService/(chargeBoxId)")
44+
.build();
5945
}
6046
}

src/main/resources/webapp/WEB-INF/views/about.jsp

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -37,15 +37,15 @@
3737
<tr><td>System Time Zone:</td><td>${systemTimeZone}</td></tr>
3838
</table>
3939
<section><span>Endpoint Info</span></section>
40-
<table class="userInputFullPage">
41-
<tr>
42-
<td>${endpointInfo.ocppSoap.info}:</td>
43-
<td><c:forEach items="${endpointInfo.ocppSoap.data}" var="i">${i}<br></c:forEach></td>
44-
<tr>
45-
<td>${endpointInfo.ocppWebSocket.info}:</td>
46-
<td><c:forEach items="${endpointInfo.ocppWebSocket.data}" var="i">${i}<br></c:forEach></td>
47-
</tr>
40+
<table class="userInputFullPage">
41+
<tr>
42+
<td>SOAP endpoint for OCPP:</td>
43+
<td>${endpointInfo.ocppSoap}</td>
44+
<tr>
45+
<td>WebSocket/JSON endpoint for OCPP:</td>
46+
<td>${endpointInfo.ocppWebSocket}</td>
47+
</tr>
4848
</tr>
49-
</table>
49+
</table>
5050
</div>
51-
<%@ include file="00-footer.jsp" %>
51+
<%@ include file="00-footer.jsp" %>

0 commit comments

Comments
 (0)