@Transient public OAuth2Authentication getAuthentication() { // TODO: memoize this return new OAuth2Authentication(createOAuth2Request(), getUserAuth()); }
if (holder.getUserAuth() != null) { writer.beginObject(); writer.name(NAME).value(holder.getUserAuth().getName()); writer.name(SOURCE_CLASS).value(holder.getUserAuth().getSourceClass()); writer.name(AUTHENTICATED).value(holder.getUserAuth().isAuthenticated()); writer.name(AUTHORITIES); writer.beginArray(); for (GrantedAuthority authority : holder.getUserAuth().getAuthorities()) { writer.value(authority.getAuthority());
@Override protected OAuth2Authentication getOAuth2Authentication(ClientDetails client, TokenRequest tokenRequest) { String deviceCode = tokenRequest.getRequestParameters().get("device_code"); // look up the device code and consume it DeviceCode dc = deviceCodeService.findDeviceCode(deviceCode, client); if (dc != null) { // make sure the code hasn't expired yet if (dc.getExpiration() != null && dc.getExpiration().before(new Date())) { deviceCodeService.clearDeviceCode(deviceCode, client); throw new DeviceCodeExpiredException("Device code has expired " + deviceCode); } else if (!dc.isApproved()) { // still waiting for approval throw new AuthorizationPendingException("Authorization pending for code " + deviceCode); } else { // inherit the (approved) scopes from the original request tokenRequest.setScope(dc.getScope()); OAuth2Authentication auth = new OAuth2Authentication(getRequestFactory().createOAuth2Request(client, tokenRequest), dc.getAuthenticationHolder().getUserAuth()); deviceCodeService.clearDeviceCode(deviceCode, client); return auth; } } else { throw new InvalidGrantException("Invalid device code: " + deviceCode); } }
if (holder.getUserAuth() != null) { writer.beginObject(); writer.name(NAME).value(holder.getUserAuth().getName()); writer.name(SOURCE_CLASS).value(holder.getUserAuth().getSourceClass()); writer.name(AUTHENTICATED).value(holder.getUserAuth().isAuthenticated()); writer.name(AUTHORITIES); writer.beginArray(); for (GrantedAuthority authority : holder.getUserAuth().getAuthorities()) { writer.value(authority.getAuthority());
@Override protected OAuth2Authentication getOAuth2Authentication(ClientDetails client, TokenRequest tokenRequest) { String deviceCode = tokenRequest.getRequestParameters().get("device_code"); // look up the device code and consume it DeviceCode dc = deviceCodeService.findDeviceCode(deviceCode, client); if (dc != null) { // make sure the code hasn't expired yet if (dc.getExpiration() != null && dc.getExpiration().before(new Date())) { deviceCodeService.clearDeviceCode(deviceCode, client); throw new DeviceCodeExpiredException("Device code has expired " + deviceCode); } else if (!dc.isApproved()) { // still waiting for approval throw new AuthorizationPendingException("Authorization pending for code " + deviceCode); } else { // inherit the (approved) scopes from the original request tokenRequest.setScope(dc.getScope()); OAuth2Authentication auth = new OAuth2Authentication(getRequestFactory().createOAuth2Request(client, tokenRequest), dc.getAuthenticationHolder().getUserAuth()); deviceCodeService.clearDeviceCode(deviceCode, client); return auth; } } else { throw new InvalidGrantException("Invalid device code: " + deviceCode); } }