查看源代码 mod_auth (inets v9.3.1)

使用文本文件、Dets 或 Mnesia 数据库进行用户身份验证。

此模块提供使用文本文件、Dets 数据库或 Mnesia 数据库进行基本用户身份验证的功能。

另请参阅

httpd, mod_alias

概要

函数

add_group_member/3add_group_member/4add_group_member/5 每个都将用户添加到组中。如果该组不存在,则会创建该组并将用户添加到该组中。操作成功后,此函数返回 true。当调用 add_group_members/3 时,选项 PortDir 是强制性的。

add_user(UserName, Password, UserData, Address, Port, Dir) -> true | {error, Reason}

delete_group/2delete_group/3delete_group/4 每个都会删除指定的组并返回 true。如果出现错误,则返回 {error, Reason}。当调用 delete_group/2 时,选项 PortDir 是强制性的。

delete_group_member/3delete_group_member/4delete_group_member/5 每个都会从组中删除用户。如果该组或用户不存在,则此函数返回错误,否则返回 true。当调用 delete_group_member/3 时,选项 PortDir 是强制性的。

delete_user/2delete_user/3delete_user/4 每个都会从用户数据库中删除用户。如果操作成功,则此函数返回 true。如果发生错误,则返回 {error, Reason}。当调用 delete_user/2 时,选项 PortDir 是强制性的。

get_user/2get_user/3get_user/4 每个都返回一个 httpd_user/0 记录,其中包含特定用户的用户数据。如果找不到用户,则返回 {error, Reason}。当调用 get_user/2 时,选项 PortDir 是强制性的。

list_group_members/2list_group_members/3list_group_members/4 每个都列出指定组的成员。如果该组不存在或发生错误,则返回 {error, Reason}。当调用 list_group_members/2 时,选项 PortDir 是强制性的。

list_groups/1list_groups/2list_groups/3 每个都列出所有可用的组。如果发生错误,则返回 {error, Reason}。当调用 list_groups/1 时,选项 PortDir 是强制性的。

list_users/1list_users/2list_users/3 每个都返回特定 Port/Dir 的用户数据库中的用户列表。当调用 list_users/1 时,选项 PortDir 是强制性的。

update_password/5update_password/6 每个都会更新指定目录的 AuthAccessPassword。如果 NewPassword 等于 "NoPassword",则更改授权数据不需要密码。如果 NewPassword 等于 "DummyPassword",则必须先更改密码才能进行任何更改。

类型

链接到此类型

httpd_group()

查看源代码 (未导出)
-type httpd_group() :: #httpd_group{name :: term(), userlist :: term()}.
链接到此类型

httpd_user()

查看源代码 (未导出)
-type httpd_user() :: #httpd_user{username :: term(), password :: term(), user_data :: term()}.

函数

链接到此函数

add_group_member(GroupName, UserName, Options)

查看源代码
-spec add_group_member(GroupName, UserName, Options) -> true | {error, Reason}
                          when
                              GroupName :: string(),
                              UserName :: string(),
                              Options ::
                                  [{port, Port} |
                                   {addr, Address} |
                                   {dir, Directory} |
                                   {authPassword, AuthPassword}],
                              Port :: inet:port_number(),
                              Address :: inet:ip4_address() | inet:ip6_address() | string() | undefined,
                              Directory :: string(),
                              AuthPassword :: string(),
                              Reason :: term().

等效于 add_group_member/5

链接到此函数

add_group_member(GroupName, UserName, Port, Directory)

查看源代码
-spec add_group_member(GroupName, UserName, Port, Directory) -> true | {error, Reason}
                          when
                              GroupName :: string(),
                              UserName :: string(),
                              Port :: inet:port_number(),
                              Directory :: string(),
                              Reason :: term().

等效于 add_group_member/5

链接到此函数

add_group_member(GroupName, UserName, Address, Port, Directory)

查看源代码
-spec add_group_member(GroupName, UserName, Address, Port, Directory) -> true | {error, Reason}
                          when
                              GroupName :: string(),
                              UserName :: string(),
                              Port :: inet:port_number(),
                              Address :: inet:ip4_address() | inet:ip6_address() | string() | undefined,
                              Directory :: string(),
                              Reason :: term().

add_group_member/3add_group_member/4add_group_member/5 每个都将用户添加到组中。如果该组不存在,则会创建该组并将用户添加到该组中。操作成功后,此函数返回 true。当调用 add_group_members/3 时,选项 PortDir 是强制性的。

链接到此函数

add_user(UserName, Options)

查看源代码
-spec add_user(UserName, Options) -> true | {error, Reason}
                  when
                      UserName :: string(),
                      Options ::
                          [{password, Password} |
                           {userData, UserData} |
                           {port, Port} |
                           {addr, Address} |
                           {dir, Directory} |
                           {authPassword, AuthPassword}],
                      Password :: string(),
                      UserData :: term(),
                      Port :: inet:port_number(),
                      Address :: inet:ip4_address() | inet:ip6_address() | string() | undefined,
                      Directory :: string(),
                      AuthPassword :: string(),
                      Reason :: term().

等效于 add_user/6

链接到此函数

add_user(UserName, Password, UserData, Port, Directory)

查看源代码
-spec add_user(UserName, Password, UserData, Port, Directory) -> true | {error, Reason}
                  when
                      UserName :: string(),
                      Password :: string(),
                      UserData :: term(),
                      Port :: inet:port_number(),
                      Directory :: string(),
                      Reason :: term().

等效于 add_user/6

链接到此函数

add_user(UserName, Password, UserData, Address, Port, Directory)

查看源代码
-spec add_user(UserName, Password, UserData, Address, Port, Directory) -> true | {error, Reason}
                  when
                      UserName :: string(),
                      Password :: string(),
                      UserData :: term(),
                      Port :: inet:port_number(),
                      Address :: inet:ip4_address() | inet:ip6_address() | string() | undefined,
                      Directory :: string(),
                      Reason :: term().

add_user(UserName, Password, UserData, Address, Port, Dir) -> true | {error, Reason}

add_user/2add_user/5add_user/6 每个都将用户添加到用户数据库。如果操作成功,则此函数返回 true。如果发生错误,则返回 {error, Reason}。当调用 add_user/2 时,选项 PasswordUserDataPortDir 是强制性的。

链接到此函数

delete_group(GroupName, Options)

查看源代码
-spec delete_group(GroupName, Options) -> true | {error, Reason}
                      when
                          GroupName :: string(),
                          Options ::
                              [{port, Port} |
                               {addr, Address} |
                               {dir, Directory} |
                               {authPassword, AuthPassword}],
                          Port :: inet:port_number(),
                          Address :: inet:ip4_address() | inet:ip6_address() | string() | undefined,
                          Directory :: string(),
                          AuthPassword :: string(),
                          Reason :: term().

等效于 delete_group/4

链接到此函数

delete_group(GroupName, Port, Directory)

查看源代码
-spec delete_group(GroupName, Port, Directory) -> true | {error, Reason}
                      when
                          GroupName :: string(),
                          Port :: inet:port_number(),
                          Directory :: string(),
                          Reason :: term().

等效于 delete_group(GroupName, undefined, Port, Dir)

链接到此函数

delete_group(GroupName, Address, Port, Directory)

查看源代码
-spec delete_group(GroupName, Address, Port, Directory) -> true | {error, Reason}
                      when
                          GroupName :: string(),
                          Port :: inet:port_number(),
                          Address :: inet:ip4_address() | inet:ip6_address() | string() | undefined,
                          Directory :: string(),
                          Reason :: term().

delete_group/2delete_group/3delete_group/4 每个都会删除指定的组并返回 true。如果出现错误,则返回 {error, Reason}。当调用 delete_group/2 时,选项 PortDir 是强制性的。

链接到此函数

delete_group_member(GroupName, UserName, Options)

查看源代码
-spec delete_group_member(GroupName, UserName, Options) -> true | {error, Reason}
                             when
                                 GroupName :: string(),
                                 UserName :: string(),
                                 Options ::
                                     [{port, Port} |
                                      {addr, Address} |
                                      {dir, Directory} |
                                      {authPassword, AuthPassword}],
                                 Port :: inet:port_number(),
                                 Address ::
                                     inet:ip4_address() | inet:ip6_address() | string() | undefined,
                                 Directory :: string(),
                                 AuthPassword :: string(),
                                 Reason :: term().

等效于 delete_group_member/5

链接到此函数

delete_group_member(GroupName, UserName, Port, Directory)

查看源代码
-spec delete_group_member(GroupName, UserName, Port, Directory) -> true | {error, Reason}
                             when
                                 GroupName :: string(),
                                 UserName :: string(),
                                 Port :: inet:port_number(),
                                 Directory :: string(),
                                 Reason :: term().

等效于 delete_group_member/5

链接到此函数

delete_group_member(GroupName, UserName, Address, Port, Directory)

查看源代码
-spec delete_group_member(GroupName, UserName, Address, Port, Directory) -> true | {error, Reason}
                             when
                                 GroupName :: string(),
                                 UserName :: string(),
                                 Port :: inet:port_number(),
                                 Address ::
                                     inet:ip4_address() | inet:ip6_address() | string() | undefined,
                                 Directory :: string(),
                                 Reason :: term().

delete_group_member/3delete_group_member/4delete_group_member/5 每个都会从组中删除用户。如果该组或用户不存在,则此函数返回错误,否则返回 true。当调用 delete_group_member/3 时,选项 PortDir 是强制性的。

链接到此函数

delete_user(UserName, Options)

查看源代码
-spec delete_user(UserName, Options) -> true | {error, Reason}
                     when
                         UserName :: string(),
                         Options ::
                             [{port, Port} |
                              {addr, Address} |
                              {dir, Directory} |
                              {authPassword, AuthPassword}],
                         Port :: inet:port_number(),
                         Address :: inet:ip4_address() | inet:ip6_address() | string() | undefined,
                         Directory :: string(),
                         AuthPassword :: string(),
                         Reason :: term().

等效于 delete_user/4

链接到此函数

delete_user(UserName, Port, Directory)

查看源代码
-spec delete_user(UserName, Port, Directory) -> true | {error, Reason}
                     when
                         UserName :: string(),
                         Port :: inet:port_number(),
                         Directory :: string(),
                         Reason :: term().

等效于 delete_user/4

链接到此函数

delete_user(UserName, Address, Port, Directory)

查看源代码
-spec delete_user(UserName, Address, Port, Directory) -> true | {error, Reason}
                     when
                         UserName :: string(),
                         Port :: inet:port_number(),
                         Address :: inet:ip4_address() | inet:ip6_address() | string() | undefined,
                         Directory :: string(),
                         Reason :: term().

delete_user/2delete_user/3delete_user/4 每个都会从用户数据库中删除用户。如果操作成功,则此函数返回 true。如果发生错误,则返回 {error, Reason}。当调用 delete_user/2 时,选项 PortDir 是强制性的。

链接到此函数

get_user(UserName, Options)

查看源代码
-spec get_user(UserName, Options) -> {ok, User} | {error, Reason}
                  when
                      UserName :: string(),
                      Options ::
                          [{port, Port} |
                           {addr, Address} |
                           {dir, Directory} |
                           {authPassword, AuthPassword}],
                      User :: httpd_user(),
                      Port :: inet:port_number(),
                      Address :: inet:ip4_address() | inet:ip6_address() | string() | undefined,
                      Directory :: string(),
                      AuthPassword :: string(),
                      Reason :: term().

等效于 get_user/4

链接到此函数

get_user(UserName, Port, Directory)

查看源代码
-spec get_user(UserName, Port, Directory) -> {ok, User} | {error, Reason}
                  when
                      UserName :: string(),
                      User :: httpd_user(),
                      Port :: inet:port_number(),
                      Directory :: string(),
                      Reason :: term().

等效于 get_user/4

链接到此函数

get_user(UserName, Address, Port, Directory)

查看源代码
-spec get_user(UserName, Address, Port, Directory) -> {ok, User} | {error, Reason}
                  when
                      UserName :: string(),
                      User :: httpd_user(),
                      Port :: inet:port_number(),
                      Address :: inet:ip4_address() | inet:ip6_address() | string() | undefined,
                      Directory :: string(),
                      Reason :: term().

get_user/2get_user/3get_user/4 每个都返回一个 httpd_user/0 记录,其中包含特定用户的用户数据。如果找不到用户,则返回 {error, Reason}。当调用 get_user/2 时,选项 PortDir 是强制性的。

链接到此函数

list_group_members(GroupName, Options)

查看源代码
-spec list_group_members(GroupName, Options) -> {ok, Users} | {error, Reason}
                            when
                                GroupName :: string(),
                                Options ::
                                    [{port, Port} |
                                     {addr, Address} |
                                     {dir, Directory} |
                                     {authPassword, AuthPassword}],
                                Port :: inet:port_number(),
                                Address ::
                                    inet:ip4_address() | inet:ip6_address() | string() | undefined,
                                Directory :: string(),
                                Users :: [httpd_user()],
                                AuthPassword :: string(),
                                Reason :: term().

等效于 list_group_members/4

链接到此函数

list_group_members(GroupName, Port, Directory)

查看源代码
-spec list_group_members(GroupName, Port, Directory) -> {ok, Users} | {error, Reason}
                            when
                                GroupName :: string(),
                                Port :: inet:port_number(),
                                Directory :: string(),
                                Users :: [httpd_user()],
                                Reason :: term().

等效于 list_group_members/4

链接到此函数

list_group_members(GroupName, Address, Port, Directory)

查看源代码
-spec list_group_members(GroupName, Address, Port, Directory) -> {ok, Users} | {error, Reason}
                            when
                                GroupName :: string(),
                                Port :: inet:port_number(),
                                Address ::
                                    inet:ip4_address() | inet:ip6_address() | string() | undefined,
                                Directory :: string(),
                                Users :: [httpd_user()],
                                Reason :: term().

list_group_members/2list_group_members/3list_group_members/4 每个都列出指定组的成员。如果该组不存在或发生错误,则返回 {error, Reason}。当调用 list_group_members/2 时,选项 PortDir 是强制性的。

-spec list_groups(Options) -> {ok, Groups} | {error, Reason}
                     when
                         Options ::
                             [{port, Port} |
                              {addr, Address} |
                              {dir, Directory} |
                              {authPassword, AuthPassword}],
                         Port :: inet:port_number(),
                         Address :: inet:ip4_address() | inet:ip6_address() | string() | undefined,
                         Directory :: string(),
                         Groups :: [httpd_group()],
                         AuthPassword :: string(),
                         Reason :: term().

等效于 list_groups/3

链接到此函数

list_groups(Port, Directory)

查看源代码
-spec list_groups(Port, Directory) -> {ok, Groups} | {error, Reason}
                     when
                         Port :: inet:port_number(),
                         Directory :: string(),
                         Groups :: [httpd_group()],
                         Reason :: term().

等效于 list_groups/3

链接到此函数

list_groups(Address, Port, Directory)

查看源代码
-spec list_groups(Address, Port, Directory) -> {ok, Groups} | {error, Reason}
                     when
                         Port :: inet:port_number(),
                         Address :: inet:ip4_address() | inet:ip6_address() | string() | undefined,
                         Directory :: string(),
                         Groups :: [httpd_group()],
                         Reason :: term().

list_groups/1list_groups/2list_groups/3 每个都列出所有可用的组。如果发生错误,则返回 {error, Reason}。当调用 list_groups/1 时,选项 PortDir 是强制性的。

-spec list_users(Options) -> {ok, Users} | {error, Reason}
                    when
                        Options ::
                            [{port, Port} |
                             {addr, Address} |
                             {dir, Directory} |
                             {authPassword, AuthPassword}],
                        Port :: inet:port_number(),
                        Address :: inet:ip4_address() | inet:ip6_address() | string() | undefined,
                        Directory :: string(),
                        Users :: [httpd_user()],
                        AuthPassword :: string(),
                        Reason :: atom().

等效于 list_users/3

链接到此函数

list_users(Port, Directory)

查看源代码 (自 OTP R14B01 起)
-spec list_users(Port, Directory) -> {ok, Users} | {error, Reason}
                    when
                        Port :: inet:port_number(),
                        Directory :: string(),
                        Users :: [httpd_user()],
                        Reason :: atom().

等效于 list_users/3

链接到此函数

list_users(Address, Port, Directory)

查看源代码
-spec list_users(Address, Port, Directory) -> {ok, Users} | {error, Reason}
                    when
                        Port :: inet:port_number(),
                        Address :: inet:ip4_address() | inet:ip6_address() | string() | undefined,
                        Directory :: string(),
                        Users :: [httpd_user()],
                        Reason :: atom().

list_users/1list_users/2list_users/3 每个都返回特定 Port/Dir 的用户数据库中的用户列表。当调用 list_users/1 时,选项 PortDir 是强制性的。

链接到此函数

update_password(Port, Dir, OldPassword, NewPassword, NewPassword)

查看源代码
-spec update_password(Port, Dir, OldPassword, NewPassword, NewPassword) -> ok | {error, Reason}
                         when
                             Port :: inet:port_number(),
                             Dir :: string(),
                             OldPassword :: string(),
                             NewPassword :: string(),
                             Reason :: term().

等效于 update_password/6

链接到此函数

update_password(Address, Port, Dir, OldPassword, NewPassword, NewPassword)

查看源代码
-spec update_password(Address, Port, Dir, OldPassword, NewPassword, NewPassword) -> ok | {error, Reason}
                         when
                             Address :: inet:ip4_address() | inet:ip6_address() | string() | undefined,
                             Port :: inet:port_number(),
                             Dir :: string(),
                             OldPassword :: string(),
                             NewPassword :: string(),
                             Reason :: term().

update_password/5update_password/6 每个都会更新指定目录的 AuthAccessPassword。如果 NewPassword 等于 "NoPassword",则更改授权数据不需要密码。如果 NewPassword 等于 "DummyPassword",则必须先更改密码才能进行任何更改。