要約
drb で用いる ACL(Access Control List)クラス。
Access control list は "allow" と "deny" の2つからなります。 "all" や "*" という文字列は任意のアドレスにマッチします。 IPAddr が取り扱える任意のアドレス/アドレスマスクを使うことができます。
ACLのエントリーは、以下の例に示すように、
"allow_or_deny", "addr1", "allow_or_deny", "addr2", :
という文字列配列で表現されます。
@see 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:
- デフォルトで全アドレスを許可/拒否するかを指定します
インスタンスメソッド
allow_addr?(addr) -> bool
[permalink][rdoc][edit]-
addr が ACL で許可されているならば真を返します。
- [PARAM] addr:
- 判定対象のアドレス
allow_socket?(soc) -> bool
[permalink][rdoc][edit]-
ソケットに関連付けられたアドレスが ACL で許可されているならば真を返します。
- [PARAM] soc:
- 判定対象のソケット
install_list(list) -> ()
[permalink][rdoc][edit]-
ACL に list で指定したエントリーを追加します。
require "drb/acl" acl = ACL.new acl.install_list(["deny", "192.168.1.45"])
- [PARAM] list:
- 追加するエントリー