import org.springframework.security.web.authentication.preauth.AbstractPreAuthenticatedProcessingFilter; /** * https://stackoverflow.com/questions/48446708/securing-spring-boot-api-with-api-key-and-secret */ public class APIKeyAuthFilter extends AbstractPreAuthenticatedProcessingFilter { private String principalRequestHeader; public APIKeyAuthFilter(String principalRequestHeader) { this.principalRequestHeader = principalRequestHeader; } @Override protected Object getPreAuthenticatedPrincipal(HttpServletRequest request) { return request.getHeader(principalRequestHeader); } @Override protected Object getPreAuthenticatedCredentials(HttpServletRequest request) { return "N/A"; } }