Skip to content

Commit 4d9cee1

Browse files
committed
Display general error message when WebFlux oauth2Login() fails
Issue gh-5562 gh-6484
1 parent c40a17b commit 4d9cee1

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

web/src/main/java/org/springframework/security/web/server/ui/LoginPageGeneratingWebFilter.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ private byte[] createPage(ServerWebExchange exchange, String csrfTokenHtmlInput)
106106
+ " <body>\n"
107107
+ " <div class=\"container\">\n"
108108
+ formLogin(queryParams, csrfTokenHtmlInput)
109-
+ oauth2LoginLinks(contextPath, this.oauth2AuthenticationUrlToClientName)
109+
+ oauth2LoginLinks(queryParams, contextPath, this.oauth2AuthenticationUrlToClientName)
110110
+ " </div>\n"
111111
+ " </body>\n"
112112
+ "</html>";
@@ -135,12 +135,14 @@ private String formLogin(MultiValueMap<String, String> queryParams, String csrfT
135135
+ " </form>\n";
136136
}
137137

138-
private static String oauth2LoginLinks(String contextPath, Map<String, String> oauth2AuthenticationUrlToClientName) {
138+
private static String oauth2LoginLinks(MultiValueMap<String, String> queryParams, String contextPath, Map<String, String> oauth2AuthenticationUrlToClientName) {
139139
if (oauth2AuthenticationUrlToClientName.isEmpty()) {
140140
return "";
141141
}
142+
boolean isError = queryParams.containsKey("error");
142143
StringBuilder sb = new StringBuilder();
143144
sb.append("<div class=\"container\"><h2 class=\"form-signin-heading\">Login with OAuth 2.0</h2>");
145+
sb.append(createError(isError));
144146
sb.append("<table class=\"table table-striped\">\n");
145147
for (Map.Entry<String, String> clientAuthenticationUrlToClientName : oauth2AuthenticationUrlToClientName.entrySet()) {
146148
sb.append(" <tr><td>");

0 commit comments

Comments
 (0)