Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit393d240

Browse files
fix: validate server URL has a host (#57)
1 parent84d6ad3 commit393d240

File tree

1 file changed

+30
-5
lines changed

1 file changed

+30
-5
lines changed

‎Coder Desktop/Coder Desktop/Views/LoginForm.swift

Lines changed: 30 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -63,8 +63,11 @@ struct LoginForm<S: Session>: View {
6363
guard sessionToken!=""else{
6464
return
6565
}
66-
guardlet url=URL(string: baseAccessURL), url.scheme=="https"else{
67-
loginError=.invalidURL
66+
leturl:URL
67+
do{
68+
url=tryvalidateURL(baseAccessURL)
69+
}catch{
70+
loginError= error
6871
return
6972
}
7073
loading=true
@@ -152,8 +155,10 @@ struct LoginForm<S: Session>: View {
152155
guard baseAccessURL!=""else{
153156
return
154157
}
155-
guardlet url=URL(string: baseAccessURL), url.scheme=="https"else{
156-
loginError=.invalidURL
158+
do{
159+
tryvalidateURL(baseAccessURL)
160+
}catch{
161+
loginError= error
157162
return
158163
}
159164
withAnimation{
@@ -170,12 +175,32 @@ struct LoginForm<S: Session>: View {
170175
}
171176
}
172177

173-
enumLoginError{
178+
@discardableResult
179+
func validateURL(_ url:String)throws(LoginError)->URL{
180+
guardlet url=URL(string: url)else{
181+
throwLoginError.invalidURL
182+
}
183+
guard url.scheme=="https"else{
184+
throwLoginError.httpsRequired
185+
}
186+
guard url.host!=nilelse{
187+
throwLoginError.noHost
188+
}
189+
return url
190+
}
191+
192+
enumLoginError:Error{
193+
case httpsRequired
194+
case noHost
174195
case invalidURL
175196
case failedAuth(ClientError)
176197

177198
vardescription:String{
178199
switchself{
200+
case.httpsRequired:
201+
"URL must use HTTPS"
202+
case.noHost:
203+
"URL must have a host"
179204
case.invalidURL:
180205
"Invalid URL"
181206
caselet.failedAuth(err):

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp