mirror of
https://github.com/processone/ejabberd
synced 2025-10-06 03:50:15 +02:00
Verify http host in web admin only if authentication is missing host
This should allow access to web admin through ip address or just served from domain not defined in ejabberd hosts
This commit is contained in:
parent
43b97bd9d2
commit
19637ce17d
1 changed files with 32 additions and 32 deletions
|
@ -189,8 +189,6 @@ process(RPath,
|
|||
#request{auth = Auth, lang = Lang, host = HostHTTP,
|
||||
method = Method} =
|
||||
Request) ->
|
||||
case ejabberd_router:is_my_host(HostHTTP) of
|
||||
true ->
|
||||
case get_auth_admin(Auth, HostHTTP, RPath, Method) of
|
||||
{ok, {User, Server}} ->
|
||||
AJID = get_jid(Auth, HostHTTP, Method),
|
||||
|
@ -216,9 +214,6 @@ process(RPath,
|
|||
"to ejabberd\"">>}],
|
||||
ejabberd_web:make_xhtml([?XCT(<<"h1">>,
|
||||
?T("Unauthorized"))])}
|
||||
end;
|
||||
false ->
|
||||
ejabberd_web:error(not_found)
|
||||
end.
|
||||
|
||||
get_auth_admin(Auth, HostHTTP, RPath, Method) ->
|
||||
|
@ -227,8 +222,13 @@ get_auth_admin(Auth, HostHTTP, RPath, Method) ->
|
|||
{HostOfRule, AccessRule} = get_acl_rule(RPath, Method),
|
||||
try jid:decode(SJID) of
|
||||
#jid{user = <<"">>, server = User} ->
|
||||
case ejabberd_router:is_my_host(HostHTTP) of
|
||||
true ->
|
||||
get_auth_account(HostOfRule, AccessRule, User, HostHTTP,
|
||||
Pass);
|
||||
_ ->
|
||||
{unauthorized, <<"missing-server">>}
|
||||
end;
|
||||
#jid{user = User, server = Server} ->
|
||||
get_auth_account(HostOfRule, AccessRule, User, Server,
|
||||
Pass)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue