oatpp-authkit/CMakeLists.txt
Uwe Schuster bccd57f47e #5: add IRuntimeConfig::certAuthTrusted() — gate X-SSL-Client-DN trust
New virtual hook on IRuntimeConfig, defaulting to isLoopback() so existing
consumers keep their current behaviour. AuthInterceptor now consults
certAuthTrusted() (instead of isLoopback() directly) to decide whether to
honour an inbound X-SSL-Client-DN header.

Operators with an SSH tunnel to a loopback bind, or a non-TLS proxy that
forwards X-SSL-Client-DN from untrusted clients, can now override the
hook to require additional gating (e.g. an env var, a TLS-only port).

Bump to 0.3.5 (additive — no consumer break).

Closes #5

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-25 21:39:57 +02:00

55 lines
2.1 KiB
CMake

cmake_minimum_required(VERSION 3.14)
project(oatpp-authkit VERSION 0.3.5 LANGUAGES CXX)
# Header-only interface library — no compilation, just an include path and
# a CMake config package so consumers do:
# find_package(oatpp-authkit REQUIRED)
# target_link_libraries(app PRIVATE oatpp::authkit)
#
# Or FetchContent:
# FetchContent_Declare(oatpp-authkit GIT_REPOSITORY ... GIT_TAG v0.1.0)
# FetchContent_MakeAvailable(oatpp-authkit)
add_library(oatpp-authkit INTERFACE)
add_library(oatpp::authkit ALIAS oatpp-authkit)
target_include_directories(oatpp-authkit INTERFACE
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
$<INSTALL_INTERFACE:include>
)
target_compile_features(oatpp-authkit INTERFACE cxx_std_17)
# Installation
include(GNUInstallDirs)
include(CMakePackageConfigHelpers)
install(DIRECTORY include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
install(TARGETS oatpp-authkit EXPORT oatpp-authkit-targets)
install(EXPORT oatpp-authkit-targets
FILE oatpp-authkit-targets.cmake
NAMESPACE oatpp::
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/oatpp-authkit)
write_basic_package_version_file(
"${CMAKE_CURRENT_BINARY_DIR}/oatpp-authkit-config-version.cmake"
VERSION ${PROJECT_VERSION}
COMPATIBILITY SameMajorVersion)
configure_package_config_file(
cmake/oatpp-authkit-config.cmake.in
"${CMAKE_CURRENT_BINARY_DIR}/oatpp-authkit-config.cmake"
INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/oatpp-authkit)
install(FILES
"${CMAKE_CURRENT_BINARY_DIR}/oatpp-authkit-config.cmake"
"${CMAKE_CURRENT_BINARY_DIR}/oatpp-authkit-config-version.cmake"
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/oatpp-authkit)
# ─── Tests ───────────────────────────────────────────────────────────────────
# Off by default so consumers pulling us in via FetchContent don't pay the
# cost. Enable with -DOATPP_AUTHKIT_BUILD_TESTS=ON.
option(OATPP_AUTHKIT_BUILD_TESTS "Build oatpp-authkit unit tests" OFF)
if(OATPP_AUTHKIT_BUILD_TESTS)
enable_testing()
add_subdirectory(test)
endif()