* [pve-devel] [PATCH proxmox-login-manager] login: fix login for saved ipv6 addresses
@ 2022-12-01 9:27 Dominik Csapak
2023-03-15 8:19 ` [pve-devel] applied: " Thomas Lamprecht
0 siblings, 1 reply; 2+ messages in thread
From: Dominik Csapak @ 2022-12-01 9:27 UTC (permalink / raw)
To: pve-devel
Since we only string concatenated the host + port, ipv6 addresses were
invalid because their missing [] around the ip. To fix that, use
'Uri's 'toString' method but strip the 'https://' prefix when creating
an Uri object again
This now also allows to enter the 'https://' prefix manually
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
---
lib/proxmox_login_form.dart | 26 +++++++++++++++++---------
1 file changed, 17 insertions(+), 9 deletions(-)
diff --git a/lib/proxmox_login_form.dart b/lib/proxmox_login_form.dart
index 706315f..41bf68f 100644
--- a/lib/proxmox_login_form.dart
+++ b/lib/proxmox_login_form.dart
@@ -197,8 +197,7 @@ class _ProxmoxLoginPageState extends State<ProxmoxLoginPage> {
_progressModel
..inProgress = true
..message = 'Connection test...';
- _originController.text =
- '${userModel.origin?.host}:${userModel.origin?.port}';
+ _originController.text = userModel.origin?.toString() ?? '';
_accessDomains = _getAccessDomains();
_usernameController.text = userModel.username!;
if (widget.ticket!.isNotEmpty && userModel.activeSession) {
@@ -279,15 +278,13 @@ class _ProxmoxLoginPageState extends State<ProxmoxLoginPage> {
if (value == null || value.isEmpty) {
return 'Please enter origin';
}
- if (value.startsWith('https://') ||
- value.startsWith('http://')) {
- return 'Do not prefix with scheme';
- }
try {
- Uri.https(value, '');
+ normalizeUrl(value);
return null;
} on FormatException catch (_) {
return 'Invalid URI';
+ } on Exception catch (e) {
+ return 'Invalid URI: $e';
}
},
usernameController: _usernameController,
@@ -412,7 +409,7 @@ class _ProxmoxLoginPageState extends State<ProxmoxLoginPage> {
final settings = await ProxmoxGeneralSettingsModel.fromLocalStorage();
//cleaned form fields
- final origin = Uri.https(_originController.text.trim(), '');
+ final origin = normalizeUrl(_originController.text.trim());
final username = _usernameController.text.trim();
final password =
ticket.isNotEmpty ? ticket : _passwordController.text.trim();
@@ -502,7 +499,7 @@ class _ProxmoxLoginPageState extends State<ProxmoxLoginPage> {
..message = 'Connection test...';
});
var host = _originController.text.trim();
- var apiBaseUrl = Uri.https(host, '');
+ var apiBaseUrl = normalizeUrl(host);
RegExp portRE = new RegExp(r":\d{1,5}$");
@@ -667,3 +664,14 @@ class ProxmoxCertificateErrorDialog extends StatelessWidget {
);
}
}
+
+Uri normalizeUrl(String urlText) {
+ if (urlText.startsWith('https://')) {
+ urlText = urlText.substring('https://'.length);
+ }
+ if (urlText.startsWith('http://')) {
+ throw new Exception("HTTP without TLS is not supported");
+ }
+
+ return Uri.https(urlText, '');
+}
--
2.30.2
^ permalink raw reply [flat|nested] 2+ messages in thread
* [pve-devel] applied: [PATCH proxmox-login-manager] login: fix login for saved ipv6 addresses
2022-12-01 9:27 [pve-devel] [PATCH proxmox-login-manager] login: fix login for saved ipv6 addresses Dominik Csapak
@ 2023-03-15 8:19 ` Thomas Lamprecht
0 siblings, 0 replies; 2+ messages in thread
From: Thomas Lamprecht @ 2023-03-15 8:19 UTC (permalink / raw)
To: Proxmox VE development discussion, Dominik Csapak
Am 01/12/2022 um 10:27 schrieb Dominik Csapak:
> Since we only string concatenated the host + port, ipv6 addresses were
> invalid because their missing [] around the ip. To fix that, use
> 'Uri's 'toString' method but strip the 'https://' prefix when creating
> an Uri object again
>
> This now also allows to enter the 'https://' prefix manually
>
> Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
> ---
> lib/proxmox_login_form.dart | 26 +++++++++++++++++---------
> 1 file changed, 17 insertions(+), 9 deletions(-)
>
>
applied, thanks!
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2023-03-15 8:19 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-12-01 9:27 [pve-devel] [PATCH proxmox-login-manager] login: fix login for saved ipv6 addresses Dominik Csapak
2023-03-15 8:19 ` [pve-devel] applied: " Thomas Lamprecht
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox