mirror of
https://github.com/cgrates/cgrates.git
synced 2026-02-11 18:16:24 +05:00
Implement DisconnectSession API for RADIUS Agent
Updated radigo library to latest version. Updated RadiusAgent to satisfy the birpc client interface. Added *radDAdiscMsg OrderedNavigableMap type field within AgentRequest. This one is similar to *diamreq, as it is used for building RADIUS server-initiated Disconnect Requests. radReplyAppendAttributes: refactored to reflect that it can now be used to also append attributes to request packets, not only reply. Added bidirectional support for session related RadiusAgent methods. For Dynamic Authorization to be possible, a new field was added within RadiusAgent that holds dicts and secrets only for the clients that support it. They are used to create the DA Client sending Disconnect Requests. Added a new cache partition to store Access-Request packets with the purpose of using them to build the Disconnect Requests. They are identified by sessionID. It defaults to the value of 'Acct-Session-id'. Added a predefined '*dmr' template as well as a 'dmr_template' config option within the 'radius_agent' config section. This will map to a custom or to the predefined template and will be used to build the Disconnect Request. By default, it doesn't point to any template (this also means that the Access-Request packets will not be cached). Another option added to 'radius_agent' is 'client_da_addresses', which lists the RADIUS clients supporting Dynamic Authorization. The key represents the host of the client, while the value represents the address to which we will send the Disconnect Request. Added integration test.
This commit is contained in:
committed by
Dan Christian Bogos
parent
d182d6f601
commit
9991b29cae
@@ -31,7 +31,7 @@ var (
|
||||
GitLastLog string // If set, it will be processed as part of versioning
|
||||
|
||||
extraDBPartition = NewStringSet([]string{CacheDispatchers,
|
||||
CacheDispatcherRoutes, CacheDispatcherLoads, CacheDiameterMessages, CacheRPCResponses, CacheClosedSessions,
|
||||
CacheDispatcherRoutes, CacheDispatcherLoads, CacheDiameterMessages, CacheRadiusPackets, CacheRPCResponses, CacheClosedSessions,
|
||||
CacheCDRIDs, CacheRPCConnections, CacheUCH, CacheSTIR, CacheEventCharges, MetaAPIBan, MetaSentryPeer,
|
||||
CacheRatingProfilesTmp, CacheCapsEvents, CacheReplicationHosts})
|
||||
|
||||
@@ -681,7 +681,6 @@ const (
|
||||
RSRDynStartChar = '<'
|
||||
RSRDynEndChar = '>'
|
||||
MetaApp = "*app"
|
||||
MetaAppID = "*appid"
|
||||
MetaCmd = "*cmd"
|
||||
MetaEnv = "*env:" // use in config for describing enviormant variables
|
||||
MetaTemplate = "*template"
|
||||
@@ -693,6 +692,10 @@ const (
|
||||
IdxEnd = "]"
|
||||
IdxCombination = "]["
|
||||
|
||||
// *vars consts in agents
|
||||
MetaAppID = "*appid"
|
||||
MetaSessionID = "*sessionID" // used to retrieve RADIUS Access-Reqest packets of active sessions
|
||||
|
||||
RemoteHost = "RemoteHost"
|
||||
Local = "local"
|
||||
TCP = "tcp"
|
||||
@@ -790,6 +793,7 @@ const (
|
||||
MetaLoaders = "*loaders"
|
||||
TmpSuffix = ".tmp"
|
||||
MetaDiamreq = "*diamreq"
|
||||
MetaRadDAdiscMsg = "*radDAdiscMsg"
|
||||
MetaCost = "*cost"
|
||||
MetaGroup = "*group"
|
||||
InternalRPCSet = "InternalRPCSet"
|
||||
@@ -973,6 +977,7 @@ const (
|
||||
MetaAverage = "*average"
|
||||
MetaDistinct = "*distinct"
|
||||
MetaRAR = "*rar"
|
||||
MetaDMR = "*dmr"
|
||||
)
|
||||
|
||||
// Services
|
||||
@@ -1880,6 +1885,7 @@ const (
|
||||
CacheChargerFilterIndexes = "*charger_filter_indexes"
|
||||
CacheDispatcherFilterIndexes = "*dispatcher_filter_indexes"
|
||||
CacheDiameterMessages = "*diameter_messages"
|
||||
CacheRadiusPackets = "*radius_packets"
|
||||
CacheRPCResponses = "*rpc_responses"
|
||||
CacheClosedSessions = "*closed_sessions"
|
||||
MetaPrecaching = "*precaching"
|
||||
@@ -2232,6 +2238,8 @@ const (
|
||||
AcctAddrCfg = "acct_address"
|
||||
ClientSecretsCfg = "client_secrets"
|
||||
ClientDictionariesCfg = "client_dictionaries"
|
||||
ClientDaAddressesCfg = "client_da_addresses"
|
||||
DMRTemplateCfg = "dmr_template"
|
||||
|
||||
// AttributeSCfg
|
||||
IndexedSelectsCfg = "indexed_selects"
|
||||
|
||||
Reference in New Issue
Block a user