Search in sources :

Example 6 with com.nimbusds.oauth2.sdk

use of com.nimbusds.oauth2.sdk in project asgardeo-java-oidc-sdk by asgardeo.

the class DefaultOIDCManager method handleAuthentication.

private boolean handleAuthentication(final HttpServletRequest request, SessionContext authenticationInfo, Nonce nonce) throws SSOAgentServerException {
    AuthorizationResponse authorizationResponse;
    AuthorizationCode authorizationCode;
    AuthorizationSuccessResponse successResponse;
    TokenRequest tokenRequest;
    TokenResponse tokenResponse;
    try {
        authorizationResponse = AuthorizationResponse.parse(ServletUtils.createHTTPRequest(request));
        if (!authorizationResponse.indicatesSuccess()) {
            handleErrorAuthorizationResponse(authorizationResponse);
            return false;
        }
        successResponse = authorizationResponse.toSuccessResponse();
        authorizationCode = successResponse.getAuthorizationCode();
        tokenRequest = getTokenRequest(authorizationCode);
        tokenResponse = getTokenResponse(tokenRequest);
        if (!tokenResponse.indicatesSuccess()) {
            handleErrorTokenResponse(tokenRequest, tokenResponse);
            return false;
        }
        handleSuccessTokenResponse(tokenResponse, authenticationInfo, nonce);
        return true;
    } catch (com.nimbusds.oauth2.sdk.ParseException | SSOAgentServerException | IOException e) {
        throw new SSOAgentServerException(e.getMessage(), e);
    }
}
Also used : AuthorizationCode(com.nimbusds.oauth2.sdk.AuthorizationCode) AccessTokenResponse(com.nimbusds.oauth2.sdk.AccessTokenResponse) TokenResponse(com.nimbusds.oauth2.sdk.TokenResponse) TokenRequest(com.nimbusds.oauth2.sdk.TokenRequest) AuthorizationSuccessResponse(com.nimbusds.oauth2.sdk.AuthorizationSuccessResponse) SSOAgentServerException(io.asgardeo.java.oidc.sdk.exception.SSOAgentServerException) ParseException(java.text.ParseException) IOException(java.io.IOException) AuthorizationResponse(com.nimbusds.oauth2.sdk.AuthorizationResponse)

Example 7 with com.nimbusds.oauth2.sdk

use of com.nimbusds.oauth2.sdk in project asgardeo-java-oidc-sdk by asgardeo.

the class DefaultOIDCManager method getTokenResponse.

private TokenResponse getTokenResponse(TokenRequest tokenRequest) throws SSOAgentServerException {
    TokenResponse tokenResponse;
    try {
        HTTPRequest tokenHTTPRequest = tokenRequest.toHTTPRequest();
        tokenHTTPRequest.setConnectTimeout(oidcAgentConfig.getHttpConnectTimeout());
        tokenHTTPRequest.setReadTimeout(oidcAgentConfig.getHttpReadTimeout());
        tokenResponse = TokenResponse.parse(tokenHTTPRequest.send());
    } catch (com.nimbusds.oauth2.sdk.ParseException | IOException e) {
        throw new SSOAgentServerException(e.getMessage(), e);
    }
    return tokenResponse;
}
Also used : HTTPRequest(com.nimbusds.oauth2.sdk.http.HTTPRequest) AccessTokenResponse(com.nimbusds.oauth2.sdk.AccessTokenResponse) TokenResponse(com.nimbusds.oauth2.sdk.TokenResponse) SSOAgentServerException(io.asgardeo.java.oidc.sdk.exception.SSOAgentServerException) ParseException(java.text.ParseException) IOException(java.io.IOException)

Example 8 with com.nimbusds.oauth2.sdk

use of com.nimbusds.oauth2.sdk in project spring-security by spring-projects.

the class NimbusAuthorizationCodeTokenResponseClient method getTokenResponse.

private com.nimbusds.oauth2.sdk.TokenResponse getTokenResponse(AuthorizationGrant authorizationCodeGrant, URI tokenUri, ClientAuthentication clientAuthentication) {
    try {
        // Send the Access Token request
        TokenRequest tokenRequest = new TokenRequest(tokenUri, clientAuthentication, authorizationCodeGrant);
        HTTPRequest httpRequest = tokenRequest.toHTTPRequest();
        httpRequest.setAccept(MediaType.APPLICATION_JSON_VALUE);
        httpRequest.setConnectTimeout(30000);
        httpRequest.setReadTimeout(30000);
        return com.nimbusds.oauth2.sdk.TokenResponse.parse(httpRequest.send());
    } catch (ParseException | IOException ex) {
        OAuth2Error oauth2Error = new OAuth2Error(INVALID_TOKEN_RESPONSE_ERROR_CODE, "An error occurred while attempting to retrieve the OAuth 2.0 Access Token Response: " + ex.getMessage(), null);
        throw new OAuth2AuthorizationException(oauth2Error, ex);
    }
}
Also used : OAuth2AuthorizationException(org.springframework.security.oauth2.core.OAuth2AuthorizationException) HTTPRequest(com.nimbusds.oauth2.sdk.http.HTTPRequest) TokenRequest(com.nimbusds.oauth2.sdk.TokenRequest) OAuth2Error(org.springframework.security.oauth2.core.OAuth2Error) ParseException(com.nimbusds.oauth2.sdk.ParseException) IOException(java.io.IOException)

Example 9 with com.nimbusds.oauth2.sdk

use of com.nimbusds.oauth2.sdk in project di-authentication-api by alphagov.

the class TokenService method generateIDToken.

private SignedJWT generateIDToken(String clientId, Subject publicSubject, Map<String, Object> additionalTokenClaims, AccessTokenHash accessTokenHash, String vot) {
    attachLogFieldToLogs(CLIENT_ID, clientId);
    LOG.info("Generating IdToken");
    URI trustMarkUri = buildURI(configService.getBaseURL().get(), "/trustmark");
    LocalDateTime localDateTime = LocalDateTime.now().plusSeconds(configService.getIDTokenExpiry());
    Date expiryDate = Date.from(localDateTime.atZone(ZoneId.of("UTC")).toInstant());
    IDTokenClaimsSet idTokenClaims = new IDTokenClaimsSet(new Issuer(configService.getBaseURL().get()), publicSubject, List.of(new Audience(clientId)), expiryDate, new Date());
    idTokenClaims.setAccessTokenHash(accessTokenHash);
    idTokenClaims.putAll(additionalTokenClaims);
    idTokenClaims.setClaim("vot", vot);
    idTokenClaims.setClaim("vtm", trustMarkUri.toString());
    try {
        return generateSignedJWT(idTokenClaims.toJWTClaimsSet());
    } catch (com.nimbusds.oauth2.sdk.ParseException e) {
        LOG.error("Error when trying to parse IDTokenClaims to JWTClaimSet", e);
        throw new RuntimeException(e);
    }
}
Also used : LocalDateTime(java.time.LocalDateTime) Issuer(com.nimbusds.oauth2.sdk.id.Issuer) Audience(com.nimbusds.oauth2.sdk.id.Audience) IDTokenClaimsSet(com.nimbusds.openid.connect.sdk.claims.IDTokenClaimsSet) ParseException(com.nimbusds.oauth2.sdk.ParseException) URI(java.net.URI) ConstructUriHelper.buildURI(uk.gov.di.authentication.shared.helpers.ConstructUriHelper.buildURI) Date(java.util.Date)

Example 10 with com.nimbusds.oauth2.sdk

use of com.nimbusds.oauth2.sdk in project kf-key-management by kids-first.

the class FenceService method refreshTokens.

public Mono<OIDCTokens> refreshTokens(String refreshToken, AllFences.Fence fence) {
    Mono<Optional<OIDCTokens>> blockingWrapper = Mono.fromCallable(() -> {
        val clientId = fence.getClientId();
        val clientSecret = fence.getClientSecret();
        val fenceEndpoint = fence.getTokenEndpoint();
        val request = new TokenRequest(new URI(fenceEndpoint), new ClientSecretBasic(new ClientID(clientId), new com.nimbusds.oauth2.sdk.auth.Secret(clientSecret)), new RefreshTokenGrant(new RefreshToken(refreshToken)));
        val fenceResponse = request.toHTTPRequest().send();
        if (fenceResponse.indicatesSuccess()) {
            val tokens = OIDCTokenResponse.parse(fenceResponse).toSuccessResponse().getOIDCTokens();
            return Optional.of(tokens);
        }
        return Optional.empty();
    });
    return blockingWrapper.subscribeOn(Schedulers.boundedElastic()).flatMap(o -> o.map(Mono::just).orElseGet(Mono::empty));
}
Also used : lombok.val(lombok.val) Optional(java.util.Optional) Mono(reactor.core.publisher.Mono) URI(java.net.URI) ClientSecretBasic(com.nimbusds.oauth2.sdk.auth.ClientSecretBasic) RefreshToken(com.nimbusds.oauth2.sdk.token.RefreshToken) ClientID(com.nimbusds.oauth2.sdk.id.ClientID) com.nimbusds.oauth2.sdk(com.nimbusds.oauth2.sdk)

Aggregations

URI (java.net.URI)7 IOException (java.io.IOException)6 HTTPRequest (com.nimbusds.oauth2.sdk.http.HTTPRequest)5 HTTPResponse (com.nimbusds.oauth2.sdk.http.HTTPResponse)5 ClientID (com.nimbusds.oauth2.sdk.id.ClientID)5 ErrorObject (com.nimbusds.oauth2.sdk.ErrorObject)4 ParseException (com.nimbusds.oauth2.sdk.ParseException)4 AccessTokenResponse (com.nimbusds.oauth2.sdk.AccessTokenResponse)3 TokenRequest (com.nimbusds.oauth2.sdk.TokenRequest)3 TokenResponse (com.nimbusds.oauth2.sdk.TokenResponse)3 ClientSecretBasic (com.nimbusds.oauth2.sdk.auth.ClientSecretBasic)3 Issuer (com.nimbusds.oauth2.sdk.id.Issuer)3 BearerAccessToken (com.nimbusds.oauth2.sdk.token.BearerAccessToken)3 ParseException (java.text.ParseException)3 com.nimbusds.oauth2.sdk (com.nimbusds.oauth2.sdk)2 AuthorizationCode (com.nimbusds.oauth2.sdk.AuthorizationCode)2 AuthorizationResponse (com.nimbusds.oauth2.sdk.AuthorizationResponse)2 AuthorizationSuccessResponse (com.nimbusds.oauth2.sdk.AuthorizationSuccessResponse)2 Secret (com.nimbusds.oauth2.sdk.auth.Secret)2 Audience (com.nimbusds.oauth2.sdk.id.Audience)2