要約
drb で用いる ACL(Access Control List)クラス。
Access control list は "allow" と "deny" の2つからなります。 "all" や "*" という文字列は任意のアドレスにマッチします。 IPAddr が取り扱える任意のアドレス/アドレスマスクを使うことができます。
ACLのエントリーは、以下の例に示すように、
"allow_or_deny", "addr1",
"allow_or_deny", "addr2",
:
という文字列配列で表現されます。
[SEE_ALSO] DRb.#install_acl, DRb.#start_service, DRb::DRbServer.default_acl, DRb::DRbServer.new
例
ACL を単独で用いる例。
require "drb/acl"
list = %w[
deny all
allow 192.168.1.1
allow ::ffff:192.168.1.2
allow 192.168.1.3
]
# From Socket#peeraddr, see also ACL#allow_socket?
addr = ["AF_INET", 10, "lc630", "192.168.1.3"]
acl = ACL.new
p acl.allow_addr?(addr) # => true
acl = ACL.new(list, ACL::DENY_ALLOW)
p acl.allow_addr?(addr) # => true
目次
- 特異メソッド
- インスタンスメソッド
- 定数
特異メソッド
new(list=nil, order = DENY_ALLOW) -> ACL[permalink][rdoc][edit]-
新たな ACL オブジェクトを返します。
list で許可/拒否するアドレスのリストを指定し、 order でデフォルトの挙動を指定します。
order に ACL::DENY_ALLOW を指定するとデフォルトですべてのアドレスを拒否します。ACL::ALLOW_DENY を指定するとデフォルトですべてのアドレスを許可します。
require "drb/acl" list = %w[ deny all allow 192.168.1.1 allow ::ffff:192.168.1.2 allow 192.168.1.3 ] acl = ACL.new(list, ACL::DENY_ALLOW)- [PARAM]
list: - ACLに追加するエントリー
- [PARAM]
order: - デフォルトで全アドレスを許可/拒否するかを指定します
- [PARAM]
インスタンスメソッド
allow_addr?(addr) -> bool[permalink][rdoc][edit]-
addr が ACL で許可されているならば真を返します。
- [PARAM]
addr: - 判定対象のアドレス
- [PARAM]
allow_socket?(soc) -> bool[permalink][rdoc][edit]-
ソケットに関連付けられたアドレスが ACL で許可されているならば真を返します。
- [PARAM]
soc: - 判定対象のソケット
- [PARAM]
install_list(list) -> ()[permalink][rdoc][edit]-
ACL に list で指定したエントリーを追加します。
require "drb/acl" acl = ACL.new acl.install_list(["deny", "192.168.1.45"])- [PARAM]
list: - 追加するエントリー
- [PARAM]