Class EncryptionResponseBodyAdvice

java.lang.Object
io.getlime.security.powerauth.rest.api.spring.filter.EncryptionResponseBodyAdvice
All Implemented Interfaces:
org.springframework.web.servlet.mvc.method.annotation.ResponseBodyAdvice<Object>

@ControllerAdvice
public class EncryptionResponseBodyAdvice
extends Object
implements org.springframework.web.servlet.mvc.method.annotation.ResponseBodyAdvice<Object>
Controller advice used for encryption of responses of REST endpoints.
Author:
Roman Strobl, roman.strobl@wultra.com
  • Constructor Summary

    Constructors
    Constructor Description
    EncryptionResponseBodyAdvice()  
  • Method Summary

    Modifier and Type Method Description
    Object beforeBodyWrite​(Object response, org.springframework.core.MethodParameter methodParameter, org.springframework.http.MediaType mediaType, Class<? extends org.springframework.http.converter.HttpMessageConverter<?>> converterClass, org.springframework.http.server.ServerHttpRequest serverHttpRequest, org.springframework.http.server.ServerHttpResponse serverHttpResponse)
    Encrypt response before writing body.
    void setRequestMappingHandlerAdapter​(org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter requestMappingHandlerAdapter)
    Set request mapping handler adapter via setter injection.
    boolean supports​(org.springframework.core.MethodParameter methodParameter, Class<? extends org.springframework.http.converter.HttpMessageConverter<?>> converterClass)
    Whether method supports encryption.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • EncryptionResponseBodyAdvice

      public EncryptionResponseBodyAdvice()
  • Method Details

    • setRequestMappingHandlerAdapter

      @Autowired public void setRequestMappingHandlerAdapter​(org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter requestMappingHandlerAdapter)
      Set request mapping handler adapter via setter injection. Note: Autowiring in constructor cannot be used due to circular dependency.
      Parameters:
      requestMappingHandlerAdapter - Request mapping handler adapter.
    • supports

      public boolean supports​(@NonNull org.springframework.core.MethodParameter methodParameter, @NonNull Class<? extends org.springframework.http.converter.HttpMessageConverter<?>> converterClass)
      Whether method supports encryption. Standard implementation supports conversion to JSON, String or byte[].
      Specified by:
      supports in interface org.springframework.web.servlet.mvc.method.annotation.ResponseBodyAdvice<Object>
      Parameters:
      methodParameter - Method parameter.
      converterClass - Chosen HTTP message converter class.
      Returns:
      Whether method supports encryption.
    • beforeBodyWrite

      public Object beforeBodyWrite​(Object response, @NonNull org.springframework.core.MethodParameter methodParameter, @NonNull org.springframework.http.MediaType mediaType, @NonNull Class<? extends org.springframework.http.converter.HttpMessageConverter<?>> converterClass, @NonNull org.springframework.http.server.ServerHttpRequest serverHttpRequest, @NonNull org.springframework.http.server.ServerHttpResponse serverHttpResponse)
      Encrypt response before writing body.
      Specified by:
      beforeBodyWrite in interface org.springframework.web.servlet.mvc.method.annotation.ResponseBodyAdvice<Object>
      Parameters:
      response - Response object.
      methodParameter - Method parameter.
      mediaType - Selected HTTP response media type.
      converterClass - Selected HTTP message converter class.
      serverHttpRequest - HTTP request.
      serverHttpResponse - HTTP response.
      Returns:
      ECIES cryptogram.