mirror of
https://github.com/SoftEtherVPN/SoftEtherVPN.git
synced 2024-11-26 11:29:53 +03:00
Add configuration option and code to implement using the Hub name as the Radius realm
This commit is contained in:
parent
16b713b98d
commit
2e231be197
@ -424,6 +424,7 @@ struct HUB
|
|||||||
UINT RadiusRetryInterval; // Radius retry interval
|
UINT RadiusRetryInterval; // Radius retry interval
|
||||||
BUF *RadiusSecret; // Radius shared key
|
BUF *RadiusSecret; // Radius shared key
|
||||||
char RadiusSuffixFilter[MAX_SIZE]; // Radius suffix filter
|
char RadiusSuffixFilter[MAX_SIZE]; // Radius suffix filter
|
||||||
|
bool RadiusIncludeRealm; // Radius - Should be use hub name as realm
|
||||||
volatile bool Halt; // Halting flag
|
volatile bool Halt; // Halting flag
|
||||||
bool Offline; // Offline
|
bool Offline; // Offline
|
||||||
bool BeingOffline; // Be Doing Offline
|
bool BeingOffline; // Be Doing Offline
|
||||||
|
@ -210,9 +210,20 @@ bool SamAuthUserByPlainPassword(CONNECTION *c, HUB *hub, char *username, char *p
|
|||||||
// Radius authentication
|
// Radius authentication
|
||||||
AUTHRADIUS *auth = (AUTHRADIUS *)u->AuthData;
|
AUTHRADIUS *auth = (AUTHRADIUS *)u->AuthData;
|
||||||
if (ast || auth->RadiusUsername == NULL || UniStrLen(auth->RadiusUsername) == 0)
|
if (ast || auth->RadiusUsername == NULL || UniStrLen(auth->RadiusUsername) == 0)
|
||||||
|
{
|
||||||
|
if( h->RadiusIncludeRealm )
|
||||||
|
{
|
||||||
|
char name_and_realm[MAX_SIZE];
|
||||||
|
name_and_realm = StrCpy(name_and_realm, MAX_SIZE, username);
|
||||||
|
name_and_realm = StrCpy(name_and_realm, (MAX_SIZE - StrLen(name_and_realm)), "@");
|
||||||
|
name_and_realm = StrCpy(name_and_realm, (MAX_SIZE - StrLen(name_and_realm)), hub.name);
|
||||||
|
name = CopyStrToUni(name_and_realm);
|
||||||
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
name = CopyStrToUni(username);
|
name = CopyStrToUni(username);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
name = CopyUniStr(auth->RadiusUsername);
|
name = CopyUniStr(auth->RadiusUsername);
|
||||||
|
@ -4926,6 +4926,7 @@ void SiWriteHubCfg(FOLDER *f, HUB *h)
|
|||||||
CfgAddInt(f, "RadiusServerPort", h->RadiusServerPort);
|
CfgAddInt(f, "RadiusServerPort", h->RadiusServerPort);
|
||||||
CfgAddInt(f, "RadiusRetryInterval", h->RadiusRetryInterval);
|
CfgAddInt(f, "RadiusRetryInterval", h->RadiusRetryInterval);
|
||||||
CfgAddStr(f, "RadiusSuffixFilter", h->RadiusSuffixFilter);
|
CfgAddStr(f, "RadiusSuffixFilter", h->RadiusSuffixFilter);
|
||||||
|
CfgAddBool(f, "RadiusIncludeRealm", h->RadiusIncludeRealm);
|
||||||
}
|
}
|
||||||
Unlock(h->RadiusOptionLock);
|
Unlock(h->RadiusOptionLock);
|
||||||
|
|
||||||
@ -5091,6 +5092,7 @@ void SiLoadHubCfg(SERVER *s, FOLDER *f, char *name)
|
|||||||
interval = CfgGetInt(f, "RadiusRetryInterval");
|
interval = CfgGetInt(f, "RadiusRetryInterval");
|
||||||
|
|
||||||
CfgGetStr(f, "RadiusSuffixFilter", h->RadiusSuffixFilter, sizeof(h->RadiusSuffixFilter));
|
CfgGetStr(f, "RadiusSuffixFilter", h->RadiusSuffixFilter, sizeof(h->RadiusSuffixFilter));
|
||||||
|
h->RadiusIncludeRealm = CfgGetBool(f, "RadiusIncludeRealm");
|
||||||
|
|
||||||
if (interval == 0)
|
if (interval == 0)
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user