Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
smradius
smradius
Commits
e66aaa7f
Commit
e66aaa7f
authored
Oct 08, 2016
by
Nigel Kukard
Browse files
Merge branch 'realm-fixes' into 'master'
Fixes for default '<DEFUALT>' and blank '' realms See merge request
!422
parents
38d45fd5
0be68221
Pipeline
#310
passed with stages
in 3 minutes and 13 seconds
Changes
2
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
lib/smradius/modules/system/mod_config_sql.pm
View file @
e66aaa7f
...
@@ -198,11 +198,11 @@ sub getConfig
...
@@ -198,11 +198,11 @@ sub getConfig
# Extract realm from username
# Extract realm from username
if
(
defined
(
$user
->
{'
Username
'})
&&
$user
->
{'
Username
'}
=~
/^\S+(?:@(\S+))?$/
)
{
if
(
defined
(
$user
->
{'
Username
'})
&&
$user
->
{'
Username
'}
=~
/^\S+(?:@(\S+))?$/
)
{
$realmName
=
$
1
//
"";
my
$userRealm
=
$
1
//
"";
$server
->
log
(
LOG_DEBUG
,"
Processing attributes for realm '
$
realmName
'
");
$server
->
log
(
LOG_DEBUG
,"
Processing attributes for realm '
$
userRealm
'
");
$sth
=
DBSelect
(
$config
->
{'
get_config_realm_id_query
'},
$
realmName
);
$sth
=
DBSelect
(
$config
->
{'
get_config_realm_id_query
'},
$
userRealm
);
if
(
!
$sth
)
{
if
(
!
$sth
)
{
$server
->
log
(
LOG_ERR
,"
Failed to get realm config attributes:
"
.
AWITPT::DB::DBLayer::
error
());
$server
->
log
(
LOG_ERR
,"
Failed to get realm config attributes:
"
.
AWITPT::DB::DBLayer::
error
());
return
MOD_RES_NACK
;
return
MOD_RES_NACK
;
...
@@ -224,6 +224,8 @@ sub getConfig
...
@@ -224,6 +224,8 @@ sub getConfig
processConfigAttribute
(
$server
,
$user
,
hashifyLCtoMC
(
$row
,
qw(Name Operator Value)
));
processConfigAttribute
(
$server
,
$user
,
hashifyLCtoMC
(
$row
,
qw(Name Operator Value)
));
}
}
DBFreeRes
(
$sth
);
DBFreeRes
(
$sth
);
$realmName
=
$userRealm
;
}
}
}
}
...
...
t/200-dbtests.t
View file @
e66aaa7f
...
@@ -157,6 +157,7 @@ if ($child = fork()) {
...
@@ -157,6 +157,7 @@ if ($child = fork()) {
$client1_ID
,'
SMRadius-Config-Secret
','
:=
','
secret123
'
$client1_ID
,'
SMRadius-Config-Secret
','
:=
','
secret123
'
);
);
# Blank realm
my
$realm1_ID
=
testDBInsert
("
Create realm ''
",
my
$realm1_ID
=
testDBInsert
("
Create realm ''
",
"
INSERT INTO realms (Name,Disabled) VALUES ('',0)
"
"
INSERT INTO realms (Name,Disabled) VALUES ('',0)
"
);
);
...
@@ -168,7 +169,7 @@ if ($child = fork()) {
...
@@ -168,7 +169,7 @@ if ($child = fork()) {
#
#
# Check we get an Access-Accept for a bare user
# Check we get an Access-Accept for a bare user
using a blank realm
#
#
my
$user1_ID
=
testDBInsert
("
Create user 'testuser1'
",
my
$user1_ID
=
testDBInsert
("
Create user 'testuser1'
",
...
@@ -189,7 +190,43 @@ if ($child = fork()) {
...
@@ -189,7 +190,43 @@ if ($child = fork()) {
'
User-Password=test123
',
'
User-Password=test123
',
);
);
is
(
ref
(
$res
),"
HASH
","
smradclient should return a HASH
");
is
(
ref
(
$res
),"
HASH
","
smradclient should return a HASH
");
is
(
$res
->
{'
response
'}
->
{'
code
'},"
Access-Accept
","
Check our return is 'Access-Accept' for bare user
");
is
(
$res
->
{'
response
'}
->
{'
code
'},"
Access-Accept
","
Check our return is 'Access-Accept' for bare user blank '' realm
");
#
# Modify data for the default realm
#
testDBDelete
("
Delete blank realm '' link to client
",
"
DELETE FROM clients_to_realms WHERE ID = ?
",
$clientTOrealm1_ID
);
testDBDelete
("
Delete blank realm '' for realm '<DEFAULT>' test
",
"
DELETE FROM realms WHERE ID = ?
",
$realm1_ID
);
my
$realm1b_ID
=
testDBInsert
("
Create default realm '<DEFAULT>'
",
"
INSERT INTO realms (Name,Disabled) VALUES ('<DEFAULT>',0)
"
);
my
$clientTOrealm1b_ID
=
testDBInsert
("
Link client 'localhost' to realm '<DEFAULT>'
",
"
INSERT INTO clients_to_realms (ClientID,RealmID,Disabled) VALUES (?,?,0)
",
$client1_ID
,
$realm1b_ID
);
#
# Check we get an Access-Accept for a bare user using the default realm
#
$res
=
smradius::
client
->
run
(
"
--raddb
","
dicts
",
"
127.0.0.1
",
"
auth
",
"
secret123
",
'
User-Name=testuser1
',
'
User-Password=test123
',
);
is
(
ref
(
$res
),"
HASH
","
smradclient should return a HASH
");
is
(
$res
->
{'
response
'}
->
{'
code
'},"
Access-Accept
","
Check our return is 'Access-Accept' for bare user on <DEFAULT> realm
");
...
@@ -801,6 +838,22 @@ sub testDBInsert
...
@@ -801,6 +838,22 @@ sub testDBInsert
# Function to quickly and easily delete data from the DB
sub
testDBDelete
{
my
(
$name
,
@params
)
=
@_
;
# Do the work...
DBDo
(
@params
);
# Make sure we got no error
is
(
AWITPT::DB::DBLayer::
error
(),"",
$name
);
return
1
;
}
# Test DB select results
# Test DB select results
sub
testDBResults
sub
testDBResults
{
{
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment