Skip to content

Commit 4f9ea0b

Browse files
praseodymjricher
authored andcommitted
Improve state handling in handleAuthorizationCodeResponse
Fail fast when there is no state in session, e.g. because the session cookie was removed. Resolves mitreid-connect#949
1 parent 6d2b73a commit 4f9ea0b

File tree

1 file changed

+3
-5
lines changed

1 file changed

+3
-5
lines changed

openid-connect-client/src/main/java/org/mitre/openid/connect/client/OIDCAuthenticationFilter.java

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -286,11 +286,9 @@ protected Authentication handleAuthorizationCodeResponse(HttpServletRequest requ
286286

287287
// check for state, if it doesn't match we bail early
288288
String storedState = getStoredState(session);
289-
if (!Strings.isNullOrEmpty(storedState)) {
290-
String state = request.getParameter("state");
291-
if (!storedState.equals(state)) {
292-
throw new AuthenticationServiceException("State parameter mismatch on return. Expected " + storedState + " got " + state);
293-
}
289+
String requestState = request.getParameter("state");
290+
if (storedState == null || !storedState.equals(requestState)) {
291+
throw new AuthenticationServiceException("State parameter mismatch on return. Expected " + storedState + " got " + requestState);
294292
}
295293

296294
// look up the issuer that we set out to talk to

0 commit comments

Comments
 (0)