DDS Security built-in Access Control plugin
This commit adds the build-in Access Control plugin that is part of the DDS Security implementation for Cyclone. The Access Control Plugin API defines the types and operations necessary to support an access control mechanism for DDS Domain Participants. Similar to other builtin plugins, the DDS Security access control plugin is built as a shared library to allow dynamic library loading on runtime. This enables DDS participants to use specific plugin implementations with different configurations. This commit includes some basic tests for the access control functions. This initial version of the plugin does not support permissions expiry (not-valid-after date in permissions configuration). Signed-off-by: Dennis Potman <dennis.potman@adlinktech.com> Process review comments for access control plugin Signed-off-by: Dennis Potman <dennis.potman@adlinktech.com> Part 2 of processing review changes for access control Signed-off-by: Dennis Potman <dennis.potman@adlinktech.com> Add test for topicname dcps, add comment for xml date parser Signed-off-by: Dennis Potman <dennis.potman@adlinktech.com> Fixed an bug in leap year count for year 2200, changed the rounding for sub-ns fraction and added an additional overflow test in DDS_Security_parse_xml_date Signed-off-by: Dennis Potman <dennis.potman@adlinktech.com>
This commit is contained in:
parent
68f789d77b
commit
3b4facbd45
101 changed files with 19154 additions and 52 deletions
55
src/security/builtin_plugins/access_control/CMakeLists.txt
Normal file
55
src/security/builtin_plugins/access_control/CMakeLists.txt
Normal file
|
@ -0,0 +1,55 @@
|
|||
#
|
||||
# Copyright(c) 2006 to 2019 ADLINK Technology Limited and others
|
||||
#
|
||||
# This program and the accompanying materials are made available under the
|
||||
# terms of the Eclipse Public License v. 2.0 which is available at
|
||||
# http://www.eclipse.org/legal/epl-2.0, or the Eclipse Distribution License
|
||||
# v. 1.0 which is available at
|
||||
# http://www.eclipse.org/org/documents/edl-v10.php.
|
||||
#
|
||||
# SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
|
||||
#
|
||||
include (GenerateExportHeader)
|
||||
|
||||
find_package(OpenSSL)
|
||||
|
||||
PREPEND(srcs_accesscontrol "${CMAKE_CURRENT_LIST_DIR}/src"
|
||||
access_control_objects.c
|
||||
access_control_parser.c
|
||||
access_control_utils.c
|
||||
access_control.c
|
||||
)
|
||||
|
||||
add_library(dds_security_ac SHARED "")
|
||||
|
||||
generate_export_header(
|
||||
dds_security_ac
|
||||
BASE_NAME SECURITY
|
||||
EXPORT_FILE_NAME "${CMAKE_CURRENT_BINARY_DIR}/include/dds/security/export.h"
|
||||
)
|
||||
|
||||
add_definitions(-DDDSI_INCLUDE_SSL)
|
||||
|
||||
target_link_libraries(dds_security_ac PUBLIC ddsc)
|
||||
target_link_libraries(dds_security_ac PUBLIC OpenSSL::SSL)
|
||||
|
||||
target_sources(dds_security_ac
|
||||
PRIVATE
|
||||
${srcs_accesscontrol}
|
||||
)
|
||||
|
||||
target_include_directories(dds_security_ac
|
||||
PUBLIC
|
||||
"$<BUILD_INTERFACE:$<TARGET_PROPERTY:security_api,INTERFACE_INCLUDE_DIRECTORIES>>"
|
||||
"$<BUILD_INTERFACE:$<TARGET_PROPERTY:security_core,INTERFACE_INCLUDE_DIRECTORIES>>"
|
||||
"$<BUILD_INTERFACE:$<TARGET_PROPERTY:ddsrt,INTERFACE_INCLUDE_DIRECTORIES>>"
|
||||
"$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/include>"
|
||||
)
|
||||
|
||||
install(
|
||||
TARGETS
|
||||
EXPORT "${PROJECT_NAME}"
|
||||
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT lib
|
||||
LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" COMPONENT lib
|
||||
ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" COMPONENT lib
|
||||
)
|
Loading…
Add table
Add a link
Reference in a new issue