summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakob Heher <jakob.heher@iaik.tugraz.at>2022-11-21 10:35:14 +0100
committerJakob Heher <jakob.heher@iaik.tugraz.at>2022-11-21 10:35:14 +0100
commit57fabe17efe887abc14affaa8fb008e98499493f (patch)
treec880cdfeb667f7a7ea961e3a46afad6f7279fa91
parentb12aa661dda123c764de0e0cc6753daba070e6df (diff)
downloadpdf-over-57fabe17efe887abc14affaa8fb008e98499493f.tar.gz
pdf-over-57fabe17efe887abc14affaa8fb008e98499493f.tar.bz2
pdf-over-57fabe17efe887abc14affaa8fb008e98499493f.zip
auto-skip app interstitial
-rw-r--r--pdf-over-gui/src/main/java/at/asit/pdfover/gui/bku/MobileBKUConnector.java3
-rw-r--r--pdf-over-gui/src/main/java/at/asit/pdfover/gui/bku/mobile/ATrustParser.java14
2 files changed, 17 insertions, 0 deletions
diff --git a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/bku/MobileBKUConnector.java b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/bku/MobileBKUConnector.java
index f9108b7d..779e24c6 100644
--- a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/bku/MobileBKUConnector.java
+++ b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/bku/MobileBKUConnector.java
@@ -312,6 +312,9 @@ public class MobileBKUConnector implements BkuSlConnector {
return new HttpGet(html.fido2Link);
}
+ if (html.autoSkipBlock != null) {
+ return buildFormSubmit(html, html.autoSkipBlock.submitButton);
+ }
if (html.interstitialBlock != null) {
this.state.showInformationMessage(html.interstitialBlock.interstitialMessage);
return buildFormSubmit(html, html.interstitialBlock.submitButton);
diff --git a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/bku/mobile/ATrustParser.java b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/bku/mobile/ATrustParser.java
index 843a1881..89f53629 100644
--- a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/bku/mobile/ATrustParser.java
+++ b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/bku/mobile/ATrustParser.java
@@ -74,6 +74,17 @@ public class ATrustParser {
}
}
+ public static class AutoSkipBlock extends TopLevelFormBlock {
+ public final @Nonnull String submitButton;
+
+ private AutoSkipBlock(@Nonnull org.jsoup.nodes.Document htmlDocument, @Nonnull Map<String, String> formOptions) throws ComponentParseFailed {
+ super(htmlDocument, formOptions);
+ if (htmlDocument.baseUri().contains("/tanAppInfo.aspx")) {
+ this.submitButton = "#NextBtn";
+ } else { throw new ComponentParseFailed(); }
+ }
+ }
+
public static class InterstitialBlock extends TopLevelFormBlock {
public final @Nonnull String submitButton;
public final @Nonnull String interstitialMessage;
@@ -223,6 +234,7 @@ public class ATrustParser {
public final @CheckForNull URI fido2Link;
/* top-level blocks (exactly one is not null) */
+ public final @CheckForNull AutoSkipBlock autoSkipBlock;
public final @CheckForNull InterstitialBlock interstitialBlock;
public final @CheckForNull ErrorBlock errorBlock;
public final @CheckForNull UsernamePasswordBlock usernamePasswordBlock;
@@ -235,6 +247,7 @@ public class ATrustParser {
private void validate() {
Set<String> populated = new HashSet<>();
+ if (autoSkipBlock != null) populated.add("autoSkipBlock");
if (interstitialBlock != null) populated.add("interstitialBlock");
if (errorBlock != null) populated.add("errorBlock");
if (usernamePasswordBlock != null) populated.add("usernamePasswordBlock");
@@ -321,6 +334,7 @@ public class ATrustParser {
this.smsTanLink = getHrefIfExists("#SmsButton");
this.fido2Link = getHrefIfExists("#FidoButton"); // TODO hide the button if unsupported?
+ this.autoSkipBlock = TryParseMainBlock(AutoSkipBlock.class);
this.interstitialBlock = TryParseMainBlock(InterstitialBlock.class);
this.errorBlock = TryParseMainBlock(ErrorBlock.class);
this.usernamePasswordBlock = TryParseMainBlock(UsernamePasswordBlock.class);