mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-11-04 10:09:42 +00:00
bug6059: fixed passing on Subject/credentials to IgtimiWindTracker thread
This commit is contained in:
1 parent
af6925f5ab
commit
11af72020b
4 files changed
+28
-9
No files matched your search
+6
-2
@@ -273,7 +273,7 @@ public class RiotServerImpl extends AbstractReplicableWithObjectInputStream<Repl
|
||||
createDevice(deviceSerialNumber);
|
||||
} else {
|
||||
final byte[] messageAsBytes = message.toByteArray();
|
||||
final SecurityService securityService = Activator.getInstance().getSecurityService();
|
||||
final SecurityService securityService = getSecurityService();
|
||||
final TimeRange messageDataTimeRange = getTimeRange(message);
|
||||
final Iterable<DataAccessWindow> daws = getDataAccessWindows(Collections.singleton(deviceSerialNumber), messageDataTimeRange);
|
||||
for (final RiotWebsocketHandler webSocketClient : liveWebSocketConnections) {
|
||||
@@ -300,6 +300,10 @@ public class RiotServerImpl extends AbstractReplicableWithObjectInputStream<Repl
|
||||
}
|
||||
}
|
||||
|
||||
private SecurityService getSecurityService() {
|
||||
return Activator.getInstance().getSecurityService();
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a time range spanning the time point of the first and the last of the {@link DataPoint}s inside
|
||||
*
|
||||
@@ -507,7 +511,7 @@ public class RiotServerImpl extends AbstractReplicableWithObjectInputStream<Repl
|
||||
private <T> T getFromPrimary(String deviceSerialNumber, Type[] types, MessageLoader<T> resultProvider) throws ParseException, IOException {
|
||||
final int masterPort = getMasterDescriptor().getServletPort();
|
||||
final String masterHostname = getMasterDescriptor().getHostname();
|
||||
final SecurityService securityService = Activator.getInstance().getSecurityService();
|
||||
final SecurityService securityService = getSecurityService();
|
||||
final String currentUserBearerToken = securityService == null ? null : securityService.getAccessToken(securityService.getCurrentUser().getName());
|
||||
try {
|
||||
final URL baseUrl = new URL(masterPort==443?"https":"http", masterHostname, masterPort, "/");
|
||||
|
||||
+7
-5
@@ -10,6 +10,7 @@ import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import org.apache.shiro.SecurityUtils;
|
||||
import org.apache.shiro.subject.Subject;
|
||||
|
||||
import com.sap.sailing.declination.DeclinationService;
|
||||
import com.sap.sailing.domain.igtimiadapter.IgtimiConnection;
|
||||
@@ -39,8 +40,9 @@ public class IgtimiWindTracker extends AbstractWindTracker implements WindTracke
|
||||
super(trackedRace);
|
||||
this.windTrackerFactory = windTrackerFactory;
|
||||
liveConnectionsAndDeviceSerialNumber = new HashMap<>();
|
||||
new Thread("IgtimiWindTracker start-up thread for race " + trackedRace.getRace().getName()) {
|
||||
public void run() {
|
||||
final Subject currentSubject = SecurityUtils.getSubject();
|
||||
new Thread(
|
||||
currentSubject.associateWith(()->{
|
||||
logger.info("Starting up Igtimi wind tracker for race "+trackedRace.getRace().getName());
|
||||
// create the connection, preferring default credentials specified at bundle start-up over those we may
|
||||
// extract here from the logged-on user or the tracked race's owner
|
||||
@@ -63,8 +65,8 @@ public class IgtimiWindTracker extends AbstractWindTracker implements WindTracke
|
||||
+ getTrackedRace().getRace().getName(), e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}.start();
|
||||
}), "IgtimiWindTracker start-up thread for race " + trackedRace.getRace().getName())
|
||||
.start();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -84,7 +86,7 @@ public class IgtimiWindTracker extends AbstractWindTracker implements WindTracke
|
||||
} else {
|
||||
user = optionalSecurityService.getCurrentUser();
|
||||
}
|
||||
return optionalSecurityService.getAccessToken(user.getName());
|
||||
return optionalSecurityService.getOrCreateAccessToken(user.getName());
|
||||
}
|
||||
|
||||
public static TimePoint getReceivingEndTime(DynamicTrackedRace trackedRace) {
|
||||
|
||||
+14
-1
@@ -51,6 +51,19 @@ public class WindPanelPO extends PageArea {
|
||||
}
|
||||
|
||||
public void importWindFromRouteconverter(String filename, int timeoutInSeconds) throws InterruptedException {
|
||||
|
||||
importWindFromRouteconverterFileUpload.sendKeys(filename);
|
||||
importWindFromRouteconverterSubmitButton.click();
|
||||
FluentWait<String> wait = createFluentWait("The following number of fixes were imported for the listed races:", timeoutInSeconds, DEFAULT_POLLING_INTERVAL);
|
||||
wait.until(new Function<String, Object>() {
|
||||
@Override
|
||||
public Object apply(String message) {
|
||||
try {
|
||||
String statusText = importWindFromRouteconverterResultPanel.getText();
|
||||
return statusText.contains(message);
|
||||
} catch (TimeoutException exception) {
|
||||
return Boolean.FALSE;
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -24,7 +24,7 @@
|
||||
<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consoleLog -console 12001 -clean"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-ea -Declipse.ignoreApp=true -Dosgi.noShutdown=true -Dfile.encoding=cp1252 -Dexpedition.udp.port=5010 -Xmx6000m -XX:ThreadPriorityPolicy=2 -XX:+UseG1GC -Djetty.home=${project_loc:com.sap.sailing.server}/../target/configuration/jetty -Djava.util.logging.config.file=${project_loc:com.sap.sailing.server}/../target/configuration/logging_debug.properties -Dkiwo.results=${project_loc:com.sap.sailing.kiworesultimport.test}/resources -Dpersistentcompetitors.clear=false -Dpolardata.source.url=https://www.sapsailing.com -Dwindestimation.source.url=https://www.sapsailing.com -Drestore.tracked.races=true -Dorg.eclipse.jetty.server.Request.maxFormContentSize=50000000 -DAnniversaryRaceDeterminator.enabled=true -Djava.naming.factory.url.pkgs=org.eclipse.jetty.jndi -Djava.naming.factory.initial=org.eclipse.jetty.jndi.InitialContextFactory -Dorg.eclipse.jetty.annotations.maxWait=120 -Dchargebee.site=sailytics-test -Dmanage2sail.accesstoken=${MANAGE2SAIL_ACCESS_TOKEN} -Dchargebee.apikey=test_G8QP4NUM1f4MCeZeni1VFC04cdIGZSNyp -Dsubscriptions.disableMailVerificationRequirement=true -Dgoogle.maps.authenticationparams=${GOOGLE_MAPS_AUTHENTICATION_PARAMS} -Dgwt.rpc.version=9 -Dwindestimation.source.bearertoken=${WIND_ESTIMATION_MODEL_BEARER_TOKEN} -Dpolardata.source.bearertoken=${POLAR_DATA_BEARER_TOKEN} -Dcom.sap.sse.debranding=false -Digtimi.riot.port=6000"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-ea -Declipse.ignoreApp=true -Dosgi.noShutdown=true -Dfile.encoding=cp1252 -Dexpedition.udp.port=5010 -Xmx6000m -XX:ThreadPriorityPolicy=2 -XX:+UseG1GC -Djetty.home=${project_loc:com.sap.sailing.server}/../target/configuration/jetty -Djava.util.logging.config.file=${project_loc:com.sap.sailing.server}/../target/configuration/logging_debug.properties -Dkiwo.results=${project_loc:com.sap.sailing.kiworesultimport.test}/resources -Dpersistentcompetitors.clear=false -Dpolardata.source.url=https://www.sapsailing.com -Dwindestimation.source.url=https://www.sapsailing.com -Drestore.tracked.races=true -Dorg.eclipse.jetty.server.Request.maxFormContentSize=50000000 -DAnniversaryRaceDeterminator.enabled=true -Djava.naming.factory.url.pkgs=org.eclipse.jetty.jndi -Djava.naming.factory.initial=org.eclipse.jetty.jndi.InitialContextFactory -Dorg.eclipse.jetty.annotations.maxWait=120 -Dchargebee.site=sailytics-test -Dmanage2sail.accesstoken=${MANAGE2SAIL_ACCESS_TOKEN} -Dchargebee.apikey=test_G8QP4NUM1f4MCeZeni1VFC04cdIGZSNyp -Dsubscriptions.disableMailVerificationRequirement=true -Dgoogle.maps.authenticationparams=${GOOGLE_MAPS_AUTHENTICATION_PARAMS} -Dgwt.rpc.version=9 -Dwindestimation.source.bearertoken=${WIND_ESTIMATION_MODEL_BEARER_TOKEN} -Dpolardata.source.bearertoken=${POLAR_DATA_BEARER_TOKEN} -Dcom.sap.sse.debranding=false -Digtimi.riot.port=6000 -Digtimi.base.url=http://localhost:8888"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.WORKING_DIRECTORY" value="${workspace_loc}"/>
|
||||
<stringAttribute key="pde.version" value="3.3"/>
|
||||
<stringAttribute key="profilingTraceType-ALLOCATION_TRACE" value="KEY_APPLICATION_FILTER%CTX_KEY%*%CTX_ENTRY%INCREASE_COUNT%CTX_KEY%8192%CTX_ENTRY%KEY_MIN_SIZE%CTX_KEY%32%CTX_ENTRY%KEY_MAX_SIZE%CTX_KEY%65536%CTX_ENTRY%KEY_INC_LINE_NRS%CTX_KEY%true%CTX_ENTRY%KEY_SESSION_FILTER%CTX_KEY%*%CTX_ENTRY%KEY_ENABLEMENT%CTX_KEY%false%CTX_ENTRY%CLASS_FILTER%CTX_KEY%*%CTX_ENTRY%KEY_USER_FILTER%CTX_KEY%*%CTX_ENTRY%KEY_REQUEST_FILTER%CTX_KEY%*%CTX_ENTRY%KEY_TENANT_FILTER%CTX_KEY%*%CTX_ENTRY%KEY_ADAPTIVE%CTX_KEY%false%CTX_ENTRY%"/>
|
||||
|
||||
Reference in new issue
Block a user