Search in sources :

Example 1 with DiscoveryService

use of io.jans.ca.server.service.DiscoveryService in project jans by JanssenProject.

the class GetJwksOperation method execute.

@Override
public IOpResponse execute(GetJwksParams params) {
    if (StringUtils.isEmpty(params.getOpHost()) && StringUtils.isEmpty(params.getOpConfigurationEndpoint())) {
        throw new HttpException(ErrorResponseCode.INVALID_OP_HOST_AND_CONFIGURATION_ENDPOINT);
    }
    try {
        final DiscoveryService discoveryService = getDiscoveryService();
        final OpenIdConfigurationResponse openIdConfigurationResponse = discoveryService.getConnectDiscoveryResponse(params.getOpConfigurationEndpoint(), params.getOpHost(), params.getOpDiscoveryPath());
        final String jwksUri = openIdConfigurationResponse.getJwksUri();
        final JwkClient jwkClient = new JwkClient(jwksUri);
        jwkClient.setExecutor(getHttpService().getClientEngine());
        final JwkResponse serverResponse = jwkClient.exec();
        final GetJwksResponse response = new GetJwksResponse();
        response.setKeys(serverResponse.getJwks().getKeys());
        return new POJOResponse(response);
    } catch (Exception ex) {
        throw new RuntimeException(ex);
    }
}
Also used : JwkResponse(io.jans.as.client.JwkResponse) POJOResponse(io.jans.ca.common.response.POJOResponse) GetJwksResponse(io.jans.ca.common.response.GetJwksResponse) HttpException(io.jans.ca.server.HttpException) OpenIdConfigurationResponse(io.jans.as.client.OpenIdConfigurationResponse) DiscoveryService(io.jans.ca.server.service.DiscoveryService) HttpException(io.jans.ca.server.HttpException) JwkClient(io.jans.as.client.JwkClient)

Aggregations

JwkClient (io.jans.as.client.JwkClient)1 JwkResponse (io.jans.as.client.JwkResponse)1 OpenIdConfigurationResponse (io.jans.as.client.OpenIdConfigurationResponse)1 GetJwksResponse (io.jans.ca.common.response.GetJwksResponse)1 POJOResponse (io.jans.ca.common.response.POJOResponse)1 HttpException (io.jans.ca.server.HttpException)1 DiscoveryService (io.jans.ca.server.service.DiscoveryService)1