class ACL

[edit]

要約

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:
追加するエントリー

定数

ALLOW_DENY -> Integer[permalink][rdoc][edit]

デフォルトですべてのアドレスを許可することを意味します。

[SEE_ALSO] ACL.new

DENY_ALLOW -> Integer[permalink][rdoc][edit]

デフォルトですべてのアドレスを拒否することを意味します。

[SEE_ALSO] ACL.new

VERSION -> [String][permalink][rdoc][edit]

ACL のバージョン。