Skip to content

Commit d26f8b2

Browse files
committed
fix: enhance OAuth2 error handling by validating authentication page URLs and removing close button from response template
1 parent 410892f commit d26f8b2

File tree

4 files changed

+5
-16
lines changed

4 files changed

+5
-16
lines changed

Project/Sources/Classes/OAuth2Provider.4dm

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ Class constructor($inParams : Object)
125125
is received correctly in signed in mode
126126
If not present the default page is used
127127
*/
128-
If (cs.Tools.me.isValidURL(String($inParams.authenticationPage)))
128+
If ((Value type($inParams.authenticationPage)=Is text) && cs.Tools.me.isValidURL(String($inParams.authenticationPage)))
129129
This.authenticationPage:=String($inParams.authenticationPage)
130130
Else
131131
This.authenticationPage:=cs.Tools.me.retainFileObject($inParams.authenticationPage)
@@ -135,7 +135,7 @@ Class constructor($inParams : Object)
135135
returns an error in signed in mode
136136
If not present the default page is used
137137
*/
138-
If (cs.Tools.me.isValidURL(String($inParams.authenticationErrorPage)))
138+
If ((Value type($inParams.authenticationErrorPage)=Is text) && cs.Tools.me.isValidURL(String($inParams.authenticationErrorPage)))
139139
This.authenticationErrorPage:=String($inParams.authenticationErrorPage)
140140
Else
141141
This.authenticationErrorPage:=cs.Tools.me.retainFileObject($inParams.authenticationErrorPage)

Project/Sources/Classes/Tools.4dm

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -568,7 +568,7 @@ Function makeError($inCode : Integer; $inParameters : Object) : Object
568568
// ----------------------------------------------------
569569

570570

571-
Function buildPageFromTemplate($inTitle : Text; $inMessage : Text; $inDetails : Text; $inButtonText : Text) : Text
571+
Function buildPageFromTemplate($inTitle : Text; $inMessage : Text; $inDetails : Text) : Text
572572
/*
573573
Builds a response page from the template file.
574574
Parameters:
@@ -580,8 +580,7 @@ Function buildPageFromTemplate($inTitle : Text; $inMessage : Text; $inDetails :
580580
var $responseTemplateFile : 4D.File:=Folder(fk resources folder).file("responseTemplate.html")
581581
var $responseTemplateContent : Text:=$responseTemplateFile.getText()
582582
var $responseBody : Text:=""
583-
var $closeButtonText : Text:=(Length($inButtonText)>0) ? $inButtonText : Localized string("OAuth2_Response_Close")
584583

585-
PROCESS 4D TAGS($responseTemplateContent; $responseBody; $inTitle; $inMessage; $inDetails; $closeButtonText)
584+
PROCESS 4D TAGS($responseTemplateContent; $responseBody; $inTitle; $inMessage; $inDetails)
586585

587586
return $responseBody

Project/Sources/Methods/_authorize.4dm

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -85,9 +85,8 @@ If ($URL=$redirectURI)
8585

8686
var $responseFileContent : Text:=$responseFile.getText()
8787
var $outResponseBody : Text:=""
88-
var $closeButtonText : Text:=Localized string("OAuth2_Response_Close")
8988

90-
PROCESS 4D TAGS($responseFileContent; $outResponseBody; $pageTitle; $pageMessage; $pageDetails; $closeButtonText)
89+
PROCESS 4D TAGS($responseFileContent; $outResponseBody; $pageTitle; $pageMessage; $pageDetails)
9190

9291
$outResponse.status:=200
9392
$outResponse.body:=$outResponseBody

Resources/responseTemplate.html

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -95,15 +95,6 @@
9595
<div id="title"><h2><!--#4DTEXT $1--></h2></div>
9696
<div id="message"><p><!--#4DHTML $2--></p></div>
9797
<div id="details"><code><p><!--#4DTEXT $3--></p></code></div>
98-
<button id="closeBtn" onclick="window.close();" style="margin-top:22px;padding:10px 28px 10px 18px;font-size:1em;border-radius:6px;border:none;background:#4e7ad2;color:#fff;cursor:pointer;box-shadow:0 2px 8px rgba(44,75,121,0.10);transition:background 0.2s;display:inline-flex;align-items:center;gap:10px;">
99-
<span style="display:inline-flex;align-items:center;">
100-
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" style="margin-right:6px;" xmlns="http://www.w3.org/2000/svg">
101-
<circle cx="10" cy="10" r="10" fill="#fff" opacity="0.18"/>
102-
<path d="M6 6L14 14M14 6L6 14" stroke="#fff" stroke-width="2" stroke-linecap="round"/>
103-
</svg>
104-
<!--#4DTEXT $4-->
105-
</span>
106-
</button>
10798
</div>
10899
</body>
109100
</html>

0 commit comments

Comments
 (0)