Search in sources :

Example 1 with AuditEventMethod

use of org.niis.xroad.restapi.config.audit.AuditEventMethod in project X-Road by nordic-institute.

the class ServiceDescriptionsApiController method disableServiceDescription.

@Override
@PreAuthorize("hasAuthority('ENABLE_DISABLE_WSDL')")
@AuditEventMethod(event = DISABLE_SERVICE_DESCRIPTION)
public ResponseEntity<Void> disableServiceDescription(String id, ServiceDescriptionDisabledNotice serviceDescriptionDisabledNotice) {
    String disabledNotice = null;
    if (serviceDescriptionDisabledNotice != null) {
        disabledNotice = serviceDescriptionDisabledNotice.getDisabledNotice();
    }
    Long serviceDescriptionId = FormatUtils.parseLongIdOrThrowNotFound(id);
    try {
        serviceDescriptionService.disableServices(serviceDescriptionId.longValue(), disabledNotice);
    } catch (ServiceDescriptionNotFoundException e) {
        throw new ResourceNotFoundException();
    }
    return new ResponseEntity<>(HttpStatus.OK);
}
Also used : ResponseEntity(org.springframework.http.ResponseEntity) ResourceNotFoundException(org.niis.xroad.restapi.openapi.ResourceNotFoundException) ServiceDescriptionNotFoundException(org.niis.xroad.securityserver.restapi.service.ServiceDescriptionNotFoundException) PreAuthorize(org.springframework.security.access.prepost.PreAuthorize) AuditEventMethod(org.niis.xroad.restapi.config.audit.AuditEventMethod)

Example 2 with AuditEventMethod

use of org.niis.xroad.restapi.config.audit.AuditEventMethod in project X-Road by nordic-institute.

the class ServiceDescriptionsApiController method refreshServiceDescription.

@Override
@PreAuthorize("hasAnyAuthority('REFRESH_WSDL', 'REFRESH_REST', 'REFRESH_OPENAPI3')")
@AuditEventMethod(event = REFRESH_SERVICE_DESCRIPTION)
public ResponseEntity<ServiceDescription> refreshServiceDescription(String id, IgnoreWarnings ignoreWarnings) {
    Long serviceDescriptionId = FormatUtils.parseLongIdOrThrowNotFound(id);
    ServiceDescription serviceDescription = null;
    try {
        serviceDescription = serviceDescriptionConverter.convert(serviceDescriptionService.refreshServiceDescription(serviceDescriptionId, ignoreWarnings.getIgnoreWarnings()));
    } catch (WsdlParser.WsdlNotFoundException | UnhandledWarningsException | InvalidUrlException | InvalidWsdlException | ServiceDescriptionService.WrongServiceDescriptionTypeException | OpenApiParser.ParsingException | InvalidServiceUrlException | UnsupportedOpenApiVersionException e) {
        throw new BadRequestException(e);
    } catch (ServiceDescriptionService.ServiceAlreadyExistsException | ServiceDescriptionService.WsdlUrlAlreadyExistsException e) {
        throw new ConflictException(e);
    } catch (ServiceDescriptionNotFoundException e) {
        throw new ResourceNotFoundException(e);
    } catch (InterruptedException e) {
        throw new InternalServerErrorException(new ErrorDeviation(ERROR_WSDL_VALIDATOR_INTERRUPTED));
    }
    return new ResponseEntity<>(serviceDescription, HttpStatus.OK);
}
Also used : ServiceDescription(org.niis.xroad.securityserver.restapi.openapi.model.ServiceDescription) InvalidUrlException(org.niis.xroad.securityserver.restapi.service.InvalidUrlException) ErrorDeviation(org.niis.xroad.restapi.exceptions.ErrorDeviation) InvalidServiceUrlException(org.niis.xroad.securityserver.restapi.service.InvalidServiceUrlException) ResponseEntity(org.springframework.http.ResponseEntity) UnhandledWarningsException(org.niis.xroad.restapi.service.UnhandledWarningsException) UnsupportedOpenApiVersionException(org.niis.xroad.securityserver.restapi.wsdl.UnsupportedOpenApiVersionException) BadRequestException(org.niis.xroad.restapi.openapi.BadRequestException) ResourceNotFoundException(org.niis.xroad.restapi.openapi.ResourceNotFoundException) InvalidWsdlException(org.niis.xroad.securityserver.restapi.wsdl.InvalidWsdlException) ServiceDescriptionNotFoundException(org.niis.xroad.securityserver.restapi.service.ServiceDescriptionNotFoundException) PreAuthorize(org.springframework.security.access.prepost.PreAuthorize) AuditEventMethod(org.niis.xroad.restapi.config.audit.AuditEventMethod)

Example 3 with AuditEventMethod

use of org.niis.xroad.restapi.config.audit.AuditEventMethod in project X-Road by nordic-institute.

the class ServicesApiController method addEndpoint.

@Override
@PreAuthorize("hasAuthority('ADD_OPENAPI3_ENDPOINT')")
@AuditEventMethod(event = RestApiAuditEvent.ADD_REST_ENDPOINT)
public ResponseEntity<Endpoint> addEndpoint(String id, Endpoint endpoint) {
    ServiceType serviceType = getServiceType(id);
    if (endpoint.getId() != null) {
        throw new BadRequestException("Passing id for endpoint while creating it is not allowed");
    }
    Endpoint ep;
    try {
        ep = endpointConverter.convert(serviceService.addEndpoint(serviceType, endpoint.getMethod().toString(), endpoint.getPath()));
    } catch (EndpointAlreadyExistsException e) {
        throw new ConflictException(e);
    } catch (ServiceDescriptionService.WrongServiceDescriptionTypeException e) {
        throw new BadRequestException(e);
    }
    return ControllerUtil.createCreatedResponse("/api/endpoints/{id}", ep, ep.getId());
}
Also used : Endpoint(org.niis.xroad.securityserver.restapi.openapi.model.Endpoint) ServiceType(ee.ria.xroad.common.conf.serverconf.model.ServiceType) BadRequestException(org.niis.xroad.restapi.openapi.BadRequestException) EndpointAlreadyExistsException(org.niis.xroad.securityserver.restapi.service.EndpointAlreadyExistsException) ServiceDescriptionService(org.niis.xroad.securityserver.restapi.service.ServiceDescriptionService) PreAuthorize(org.springframework.security.access.prepost.PreAuthorize) AuditEventMethod(org.niis.xroad.restapi.config.audit.AuditEventMethod)

Example 4 with AuditEventMethod

use of org.niis.xroad.restapi.config.audit.AuditEventMethod in project X-Road by nordic-institute.

the class ServicesApiController method addServiceServiceClients.

@PreAuthorize("hasAuthority('EDIT_SERVICE_ACL')")
@Override
@AuditEventMethod(event = RestApiAuditEvent.ADD_SERVICE_ACCESS_RIGHTS)
public ResponseEntity<Set<ServiceClient>> addServiceServiceClients(String encodedServiceId, ServiceClients serviceClients) {
    ClientId clientId = serviceConverter.parseClientId(encodedServiceId);
    String fullServiceCode = serviceConverter.parseFullServiceCode(encodedServiceId);
    List<ServiceClientDto> serviceClientDtos;
    try {
        Set<XRoadId> xRoadIds = serviceClientHelper.processServiceClientXRoadIds(serviceClients);
        serviceClientDtos = accessRightService.addSoapServiceAccessRights(clientId, fullServiceCode, xRoadIds);
    } catch (ClientNotFoundException | ServiceNotFoundException e) {
        throw new ResourceNotFoundException(e);
    } catch (ServiceClientNotFoundException e) {
        throw new BadRequestException(e);
    } catch (AccessRightService.DuplicateAccessRightException e) {
        throw new ConflictException(e);
    } catch (ServiceClientIdentifierConverter.BadServiceClientIdentifierException e) {
        throw serviceClientHelper.wrapInBadRequestException(e);
    }
    Set<ServiceClient> serviceClientsResult = serviceClientConverter.convertServiceClientDtos(serviceClientDtos);
    return new ResponseEntity<>(serviceClientsResult, HttpStatus.OK);
}
Also used : ServiceClientDto(org.niis.xroad.securityserver.restapi.dto.ServiceClientDto) ServiceClientNotFoundException(org.niis.xroad.securityserver.restapi.service.ServiceClientNotFoundException) ClientNotFoundException(org.niis.xroad.securityserver.restapi.service.ClientNotFoundException) XRoadId(ee.ria.xroad.common.identifier.XRoadId) ServiceClientIdentifierConverter(org.niis.xroad.securityserver.restapi.converter.ServiceClientIdentifierConverter) ResponseEntity(org.springframework.http.ResponseEntity) ServiceNotFoundException(org.niis.xroad.securityserver.restapi.service.ServiceNotFoundException) ServiceClient(org.niis.xroad.securityserver.restapi.openapi.model.ServiceClient) ServiceClientNotFoundException(org.niis.xroad.securityserver.restapi.service.ServiceClientNotFoundException) AccessRightService(org.niis.xroad.securityserver.restapi.service.AccessRightService) ClientId(ee.ria.xroad.common.identifier.ClientId) BadRequestException(org.niis.xroad.restapi.openapi.BadRequestException) ResourceNotFoundException(org.niis.xroad.restapi.openapi.ResourceNotFoundException) PreAuthorize(org.springframework.security.access.prepost.PreAuthorize) AuditEventMethod(org.niis.xroad.restapi.config.audit.AuditEventMethod)

Example 5 with AuditEventMethod

use of org.niis.xroad.restapi.config.audit.AuditEventMethod in project X-Road by nordic-institute.

the class ClientsApiController method addClient.

/**
 * This method is synchronized (like client add in old Ruby implementation)
 * to prevent a problem with two threads both creating "first" additional members.
 */
@Override
@PreAuthorize("hasAuthority('ADD_CLIENT')")
@AuditEventMethod(event = ADD_CLIENT)
public synchronized ResponseEntity<Client> addClient(ClientAdd clientAdd) {
    boolean ignoreWarnings = clientAdd.getIgnoreWarnings();
    IsAuthentication isAuthentication = null;
    try {
        isAuthentication = ConnectionTypeMapping.map(clientAdd.getClient().getConnectionType()).get();
    } catch (Exception e) {
        throw new BadRequestException("bad connection type parameter", e);
    }
    ClientType added = null;
    try {
        added = clientService.addLocalClient(clientAdd.getClient().getMemberClass(), clientAdd.getClient().getMemberCode(), clientAdd.getClient().getSubsystemCode(), isAuthentication, ignoreWarnings);
    } catch (ClientService.ClientAlreadyExistsException | ClientService.AdditionalMemberAlreadyExistsException e) {
        throw new ConflictException(e);
    } catch (UnhandledWarningsException | ClientService.InvalidMemberClassException e) {
        throw new BadRequestException(e);
    }
    Client result = clientConverter.convert(added);
    return createCreatedResponse("/api/clients/{id}", result, result.getId());
}
Also used : ClientType(ee.ria.xroad.common.conf.serverconf.model.ClientType) ServiceClientType(org.niis.xroad.securityserver.restapi.openapi.model.ServiceClientType) GlobalConfOutdatedException(org.niis.xroad.securityserver.restapi.service.GlobalConfOutdatedException) UnsupportedOpenApiVersionException(org.niis.xroad.securityserver.restapi.wsdl.UnsupportedOpenApiVersionException) InvalidUrlException(org.niis.xroad.securityserver.restapi.service.InvalidUrlException) MissingParameterException(org.niis.xroad.securityserver.restapi.service.MissingParameterException) ServiceClientNotFoundException(org.niis.xroad.securityserver.restapi.service.ServiceClientNotFoundException) CertificateNotFoundException(org.niis.xroad.securityserver.restapi.service.CertificateNotFoundException) InvalidWsdlException(org.niis.xroad.securityserver.restapi.wsdl.InvalidWsdlException) InvalidServiceUrlException(org.niis.xroad.securityserver.restapi.service.InvalidServiceUrlException) ResourceNotFoundException(org.niis.xroad.restapi.openapi.ResourceNotFoundException) ActionNotPossibleException(org.niis.xroad.securityserver.restapi.service.ActionNotPossibleException) ServiceNotFoundException(org.niis.xroad.securityserver.restapi.service.ServiceNotFoundException) BadRequestException(org.niis.xroad.restapi.openapi.BadRequestException) ClientNotFoundException(org.niis.xroad.securityserver.restapi.service.ClientNotFoundException) UnhandledWarningsException(org.niis.xroad.restapi.service.UnhandledWarningsException) CertificateAlreadyExistsException(org.niis.xroad.securityserver.restapi.service.CertificateAlreadyExistsException) CertificateException(java.security.cert.CertificateException) IsAuthentication(ee.ria.xroad.common.conf.serverconf.IsAuthentication) UnhandledWarningsException(org.niis.xroad.restapi.service.UnhandledWarningsException) BadRequestException(org.niis.xroad.restapi.openapi.BadRequestException) Client(org.niis.xroad.securityserver.restapi.openapi.model.Client) ServiceClient(org.niis.xroad.securityserver.restapi.openapi.model.ServiceClient) PreAuthorize(org.springframework.security.access.prepost.PreAuthorize) AuditEventMethod(org.niis.xroad.restapi.config.audit.AuditEventMethod)

Aggregations

AuditEventMethod (org.niis.xroad.restapi.config.audit.AuditEventMethod)28 PreAuthorize (org.springframework.security.access.prepost.PreAuthorize)28 ResourceNotFoundException (org.niis.xroad.restapi.openapi.ResourceNotFoundException)23 BadRequestException (org.niis.xroad.restapi.openapi.BadRequestException)22 ResponseEntity (org.springframework.http.ResponseEntity)19 ClientNotFoundException (org.niis.xroad.securityserver.restapi.service.ClientNotFoundException)15 ServiceClientNotFoundException (org.niis.xroad.securityserver.restapi.service.ServiceClientNotFoundException)11 ClientId (ee.ria.xroad.common.identifier.ClientId)10 ActionNotPossibleException (org.niis.xroad.securityserver.restapi.service.ActionNotPossibleException)8 ErrorDeviation (org.niis.xroad.restapi.exceptions.ErrorDeviation)6 UnhandledWarningsException (org.niis.xroad.restapi.service.UnhandledWarningsException)6 ServiceNotFoundException (org.niis.xroad.securityserver.restapi.service.ServiceNotFoundException)6 CertificateAlreadyExistsException (org.niis.xroad.securityserver.restapi.service.CertificateAlreadyExistsException)5 InvalidUrlException (org.niis.xroad.securityserver.restapi.service.InvalidUrlException)5 KeyNotFoundException (org.niis.xroad.securityserver.restapi.service.KeyNotFoundException)5 XRoadId (ee.ria.xroad.common.identifier.XRoadId)4 ServiceClientIdentifierConverter (org.niis.xroad.securityserver.restapi.converter.ServiceClientIdentifierConverter)4 InvalidServiceUrlException (org.niis.xroad.securityserver.restapi.service.InvalidServiceUrlException)4 TokenNotFoundException (org.niis.xroad.securityserver.restapi.service.TokenNotFoundException)4 InvalidWsdlException (org.niis.xroad.securityserver.restapi.wsdl.InvalidWsdlException)4