Skip to content

Commit 2cf68fc

Browse files
authored
Merge pull request #3876 from ControlSystemStudio/CSStudio-3664
Use authenticated user name when creating log entries from save&restore
2 parents 3f8b8d0 + c6062e0 commit 2cf68fc

9 files changed

Lines changed: 32 additions & 11 deletions

File tree

app/logbook/olog/ui/src/main/java/org/phoebus/logbook/olog/ui/write/LogEntryEditorController.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -388,10 +388,9 @@ public void initialize() {
388388

389389
textArea.textProperty().bindBidirectional(descriptionProperty);
390390
switch(editMode){
391-
case NEW_LOG_ENTRY -> descriptionProperty.set("");
391+
case NEW_LOG_ENTRY -> descriptionProperty.set(logEntry.getDescription()!= null ? logEntry.getDescription(): "");
392392
case UPDATE_LOG_ENTRY, NEW_LOG_ENTRY_FROM_SELECTION -> descriptionProperty.set(logEntry.getSource());
393393
}
394-
// descriptionProperty.set(logEntry.getSource());
395394
descriptionProperty.addListener((observable, oldValue, newValue) -> isDirty = true);
396395

397396
Image tagIcon = ImageCache.getImage(LogEntryEditorController.class, "/icons/add_tag.png");

app/save-and-restore/app/src/main/java/org/phoebus/applications/saveandrestore/authentication/SaveAndRestoreAuthenticationProvider.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919

2020
package org.phoebus.applications.saveandrestore.authentication;
2121

22+
import org.phoebus.applications.saveandrestore.model.authentication.SaveAndRestoreAuthenticationScope;
2223
import org.phoebus.applications.saveandrestore.ui.SaveAndRestoreService;
2324
import org.phoebus.security.authorization.AuthenticationStatus;
2425
import org.phoebus.security.authorization.ServiceAuthenticationProvider;

app/save-and-restore/app/src/main/java/org/phoebus/applications/saveandrestore/client/SaveAndRestoreClientImpl.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
1313
import org.phoebus.applications.saveandrestore.Messages;
1414
import org.phoebus.applications.saveandrestore.SaveAndRestoreClientException;
15-
import org.phoebus.applications.saveandrestore.authentication.SaveAndRestoreAuthenticationScope;
15+
import org.phoebus.applications.saveandrestore.model.authentication.SaveAndRestoreAuthenticationScope;
1616
import org.phoebus.applications.saveandrestore.model.CompositeSnapshot;
1717
import org.phoebus.applications.saveandrestore.model.Configuration;
1818
import org.phoebus.applications.saveandrestore.model.ConfigurationData;

app/save-and-restore/app/src/main/java/org/phoebus/applications/saveandrestore/ui/ContextMenuCreateSaveset.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
import javafx.stage.Stage;
2828
import org.phoebus.applications.saveandrestore.Messages;
2929
import org.phoebus.applications.saveandrestore.SaveAndRestoreApplication;
30-
import org.phoebus.applications.saveandrestore.authentication.SaveAndRestoreAuthenticationScope;
30+
import org.phoebus.applications.saveandrestore.model.authentication.SaveAndRestoreAuthenticationScope;
3131
import org.phoebus.applications.saveandrestore.model.Node;
3232
import org.phoebus.applications.saveandrestore.model.NodeType;
3333
import org.phoebus.applications.saveandrestore.ui.configuration.ConfigurationFromSelectionController;

app/save-and-restore/app/src/main/java/org/phoebus/applications/saveandrestore/ui/SaveAndRestoreBaseController.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
package org.phoebus.applications.saveandrestore.ui;
2121

2222
import javafx.beans.property.SimpleStringProperty;
23-
import org.phoebus.applications.saveandrestore.authentication.SaveAndRestoreAuthenticationScope;
23+
import org.phoebus.applications.saveandrestore.model.authentication.SaveAndRestoreAuthenticationScope;
2424
import org.phoebus.security.store.SecureStore;
2525
import org.phoebus.security.tokens.ScopedAuthenticationToken;
2626

app/save-and-restore/app/src/test/java/org/phoebus/applications/saveandrestore/client/HttpClientTestIT.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
import org.junit.jupiter.api.AfterAll;
1212
import org.junit.jupiter.api.BeforeAll;
1313
import org.junit.jupiter.api.Test;
14-
import org.phoebus.applications.saveandrestore.authentication.SaveAndRestoreAuthenticationScope;
14+
import org.phoebus.applications.saveandrestore.model.authentication.SaveAndRestoreAuthenticationScope;
1515
import org.phoebus.applications.saveandrestore.model.CompositeSnapshot;
1616
import org.phoebus.applications.saveandrestore.model.CompositeSnapshotData;
1717
import org.phoebus.applications.saveandrestore.model.ConfigPv;
@@ -30,12 +30,10 @@
3030
import org.phoebus.security.PhoebusSecurity;
3131
import org.phoebus.security.store.SecureStore;
3232
import org.phoebus.security.store.SecureStoreTarget;
33-
import org.phoebus.security.tokens.AuthenticationScope;
3433
import org.phoebus.security.tokens.ScopedAuthenticationToken;
3534

3635
import javax.ws.rs.core.MultivaluedHashMap;
3736
import javax.ws.rs.core.MultivaluedMap;
38-
import java.net.ConnectException;
3937
import java.util.List;
4038

4139
import static org.junit.jupiter.api.Assertions.assertEquals;

app/save-and-restore/logging/src/main/java/org/phoebus/applications/saveandrestore/logging/SaveAndRestoreEventLogger.java

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,14 +22,18 @@
2222
import org.phoebus.applications.saveandrestore.model.Node;
2323
import org.phoebus.applications.saveandrestore.model.RestoreResult;
2424
import org.phoebus.applications.saveandrestore.model.Tag;
25+
import org.phoebus.applications.saveandrestore.model.authentication.SaveAndRestoreAuthenticationScope;
2526
import org.phoebus.applications.saveandrestore.model.event.SaveAndRestoreEventReceiver;
2627
import org.phoebus.framework.selection.SelectionService;
2728
import org.phoebus.framework.workbench.ApplicationService;
2829
import org.phoebus.logbook.LogEntry;
2930
import org.phoebus.logbook.LogbookPreferences;
31+
import org.phoebus.security.store.SecureStore;
32+
import org.phoebus.security.tokens.ScopedAuthenticationToken;
3033

3134
import java.util.List;
3235
import java.util.function.Consumer;
36+
import java.util.logging.Level;
3337
import java.util.logging.Logger;
3438

3539
/**
@@ -59,7 +63,7 @@ public void snapshotSaved(Node node, Consumer<String> errorHandler) {
5963
SaveSnapshotActionInfo saveSnapshotActionInfo = new SaveSnapshotActionInfo();
6064
saveSnapshotActionInfo.setSnapshotUniqueId(node.getUniqueId());
6165
saveSnapshotActionInfo.setSnapshotCreatedDate(node.getCreated());
62-
saveSnapshotActionInfo.setActionPerformedBy(System.getProperty("user.name"));
66+
saveSnapshotActionInfo.setActionPerformedBy(getUser());
6367
saveSnapshotActionInfo.setComment(node.getDescription());
6468
saveSnapshotActionInfo.setSnapshotName(node.getName());
6569
SelectionService.getInstance().setSelection("SaveAndRestoreLogging", List.of(saveSnapshotActionInfo));
@@ -84,12 +88,25 @@ public void snapshotRestored(Node node, List<RestoreResult> failedPVs, Consumer<
8488
RestoreSnapshotActionInfo restoreSnapshotActionInfo = new RestoreSnapshotActionInfo();
8589
restoreSnapshotActionInfo.setSnapshotUniqueId(node.getUniqueId());
8690
restoreSnapshotActionInfo.setSnapshotCreatedDate(node.getCreated());
87-
restoreSnapshotActionInfo.setActionPerformedBy(System.getProperty("user.name"));
91+
restoreSnapshotActionInfo.setActionPerformedBy(getUser());
8892
restoreSnapshotActionInfo.setComment(node.getDescription());
8993
restoreSnapshotActionInfo.setGolden(node.hasTag(Tag.GOLDEN));
9094
restoreSnapshotActionInfo.setSnapshotName(node.getName());
9195
restoreSnapshotActionInfo.setFailedPVs(failedPVs.stream().map(restoreResult -> restoreResult.getSnapshotItem().getConfigPv().getPvName()).toList());
9296
SelectionService.getInstance().setSelection("SaveAndRestoreLogging", List.of(restoreSnapshotActionInfo));
9397
Platform.runLater(() -> ApplicationService.createInstance("logbook"));
9498
}
99+
100+
private String getUser(){
101+
try {
102+
SecureStore store = new SecureStore();
103+
ScopedAuthenticationToken scopedAuthenticationToken = store.getScopedAuthenticationToken(new SaveAndRestoreAuthenticationScope());
104+
if (scopedAuthenticationToken != null) {
105+
return scopedAuthenticationToken.getUsername();
106+
}
107+
} catch (Exception e){
108+
logger.log(Level.WARNING, "Unable to get Authentication Token.", e);
109+
}
110+
return "<Not Available>";
111+
}
95112
}

app/save-and-restore/model/pom.xml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,12 @@
1717
<version>6.0.0-SNAPSHOT</version>
1818
</dependency>
1919

20+
<dependency>
21+
<groupId>org.phoebus</groupId>
22+
<artifactId>core-security</artifactId>
23+
<version>6.0.0-SNAPSHOT</version>
24+
</dependency>
25+
2026
<dependency>
2127
<groupId>org.phoebus</groupId>
2228
<artifactId>core-websocket-common</artifactId>

app/save-and-restore/app/src/main/java/org/phoebus/applications/saveandrestore/authentication/SaveAndRestoreAuthenticationScope.java renamed to app/save-and-restore/model/src/main/java/org/phoebus/applications/saveandrestore/model/authentication/SaveAndRestoreAuthenticationScope.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
* Copyright (C) 2025 European Spallation Source ERIC.
33
*/
44

5-
package org.phoebus.applications.saveandrestore.authentication;
5+
package org.phoebus.applications.saveandrestore.model.authentication;
66

77
import org.phoebus.security.tokens.AuthenticationScope;
88

0 commit comments

Comments
 (0)