Skip to content

Commit 0c6d654

Browse files
committed
Skip modifying username used for password grant.
1 parent f1ce53c commit 0c6d654

File tree

1 file changed

+19
-12
lines changed

1 file changed

+19
-12
lines changed

oauth/src/main/java/ch/cyberduck/core/oauth/OAuth2AuthorizationService.java

Lines changed: 19 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -160,19 +160,26 @@ public OAuthTokens validate(final OAuthTokens saved) throws BackgroundException
160160
public OAuthTokens save(final OAuthTokens tokens) throws LocalAccessDeniedException {
161161
log.debug("Save new tokens {} for {}", tokens, host);
162162
credentials.setOauth(tokens).setSaved(new LoginOptions().save);
163-
try {
164-
final DecodedJWT jwt = JWT.decode(tokens.getIdToken());
165-
// Standard claims
166-
for(String claim : new String[]{"preferred_username", "email", "name", "nickname", "sub"}) {
167-
final String value = jwt.getClaim(claim).asString();
168-
if(StringUtils.isNotBlank(value)) {
169-
credentials.setUsername(value);
170-
break;
163+
switch(flowType) {
164+
case PasswordGrant:
165+
// Skip modifying username used for password grant
166+
break;
167+
default:
168+
try {
169+
final DecodedJWT jwt = JWT.decode(tokens.getIdToken());
170+
// Standard claims
171+
for(String claim : new String[]{"preferred_username", "email", "name", "nickname", "sub"}) {
172+
final String value = jwt.getClaim(claim).asString();
173+
if(StringUtils.isNotBlank(value)) {
174+
credentials.setUsername(value);
175+
break;
176+
}
177+
}
171178
}
172-
}
173-
}
174-
catch(JWTDecodeException e) {
175-
log.warn("Failure {} decoding JWT {}", e, tokens.getIdToken());
179+
catch(JWTDecodeException e) {
180+
log.warn("Failure {} decoding JWT {}", e, tokens.getIdToken());
181+
}
182+
break;
176183
}
177184
if(credentials.isSaved()) {
178185
store.save(host);

0 commit comments

Comments
 (0)