ヘッダーをスキップ
Oracle® Fusion Middleware Oracle WebLogic Serverロールおよびポリシーによるリソースの保護
11gリリース1 (10.3.6)
B55556-04
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次

前
 
 

A WebLogic ServerにおけるXACMLのリファレンス

XACML (eXtensible Access Control Markup Language)は、認可ポリシーおよびロールの割当てを記述するためのXML言語です。XACMLには拡張ポイントが用意されており、Oracleのようなベンダーが独自のリソース、データ型、関数をXACMLで表現できるようになっています。

WebLogic ServerのXACML認可プロバイダおよびXACMLロール・マッピング・プロバイダ:

以下の節では、XACML 2.0ドキュメントを記述してWebLogic Server上のリソースを保護する場合に使用できる拡張について説明します。また、WebLogic ServerでXACMLを使用する場合の制約についても説明します。

ここでは、XACMLのWebLogic Server拡張、およびその制限事項についてのみ説明しています。XACML 2.0言語の完全なリファレンス情報については、OASIS XACML 2.0コア仕様 およびOASIS RBAC仕様を参照してください。

WebLogic ServerとXACMLのセキュリティ・モデルの比較

WebLogic Serverでリソースやポリシーを表現するためのモデルは、Java EEデプロイメント記述子のモデルに準拠しています。このJava EEモデルでは、リソースの階層を作成し、最上位のロールと認可ポリシーによって下位層のリソースを保護します。「リソースの階層の保護」を参照してください。下位層のポリシーは、常に上位層のポリシーをオーバーライドします。リソース階層の上位には、エンタープライズ・アプリケーション、Webアプリケーション、およびEJBが配置されます。リソース階層の最下位には、EJBメソッド、特定のURLパターンのHTTPメソッド、およびMBeanのゲッターとセッターが配置されます。

XACMLモデルでも、リソースの階層は認識されます。しかし、ネイティブのWebLogic Serverモデルと異なり、作成するXACMLポリシーでは、リソースをそのリソース自体のポリシーで保護するのか、リソースの親または祖先のポリシーで保護するのかを判断する方法を指定する必要があります。

また、XACMLドキュメントでは、リソースとリソースのアクションを区別するのが一般的です。たとえば、XACMLドキュメントでリソースとしてEJBを定義したら、そのEJBリソース内にEJBのメソッドを表すアクションを定義します。ネイティブのWebLogic Serverモデルでは、EJBと各EJBメソッドがリソースと見なされます。「図A-1」を参照してください。

図A-1 メソッドを含むWebLogicのリソース階層

図A-1の説明が続きます
「図A-1 メソッドを含むWebLogicのリソース階層」の説明

EJBメソッドなどのアクションをXACMLリソースとして記述することが可能ですが、XACMLでのより自然な表現方法は、EJBをリソースとして定義し、EJBメソッドをリソース内のアクションとして定義する方法です。

用語の比較

WebLogic Serverでリソースやポリシーについて説明するための用語は、Java EEデプロイメント記述子のモデルに準拠しています。このJava EEモデルでは、以下の用語を使用して主要な概念を説明しています。

  • ロールには、特定の時間にどのユーザーまたはグループにそのロールを割り当てるかを示す1つまたは複数の条件が含まれています。ロールは、条件と、その条件に従ってロールに追加するユーザーまたはグループの名前を組み合せたものです。これらの式の集合をロールと呼びます。

  • ポリシーには、特定の時間に誰がリソースにアクセスできるかを示す1つまたは複数の条件が含まれています。ポリシー式は、条件と、その条件に従ってアクセスを許可するユーザー、グループ、またはロールの名前を組み合せたものです。これらの式の集合をポリシー文と呼びます。

XACMLでは、ポリシーはルールのセットから構成されており、誰にロールを割り当て、誰がリソースにアクセスできるかは、このポリシーを使用して決定します。つまり、XACMLのポリシーは、WebLogic Serverのロール文やポリシー文に相当します。

データ型について

Oracle実装では、XACMLのコア仕様で必要とされているすべてのデータ型がサポートされます。それ以外にも、標準XMLデータ型や、様々なカスタム・データ型がサポートされています。このマニュアルでは、Oracle独自のカスタム・データ型を、bea:という接頭辞を付けて表します。

WebLogic XACMLプロバイダで認識されるすべてのデータ型の詳細は、Oracle WebLogic Server APIリファレンスcom.bea.common.security.xacml.Typeに関する項を参照してください。

アクション識別子

XACMLでは、Action要素を使用して、リソース内での処理やリソースの階層を識別します。

WebLogic Serverでは、XACMLのコア仕様にのすべてのAction識別子がサポートされます(XACML 2.0のコア仕様を参照)。また、XACMLの環境識別子を使用できる場所ならどこでも使用できる追加の識別子1つもサポートされています。

WebLogic Serverリソース内の処理(たとえば、特定のEJBメソッド)を識別するには、表A-1の説明に従ってアクション識別子を使用します。


注意:

リソース識別子を使用して処理(EJBメソッドなど)を記述することは可能ですが、XACMLでのより自然な表現方法はアクション識別子を使用する方法です。「WebLogic ServerとXACMLのセキュリティ・モデルの比較」を参照してください。

表A-1 アクション識別子

次を識別するには... この識別子を使用します...

操作

  • 属性ID: urn:oasis:names:tc:xacml:1.0:action:action-id

  • データ型: string

  • 値: 処理を含むリソースの種類によって異なります。「表A-2」を参照してください。

プロバイダがセキュリティ・チェックを実行するタイミング

  • 属性ID: urn:bea:xacml:2.0:action:direction

  • データ型: string

  • 値: ONCEPRIOR、またはPOST

WebLogicセキュリティSPIには、プロバイダが要求されたセキュリティ・チェックを実行するタイミングを指定するためのオプション機能が含まれています。

  • ONCEは、認可チェックを1回実行することを要求します。処理の前に実行するか、後に実行するかは指定しません。

  • PRIORは、リクエストを処理する前に認可チェックを実行することを要求します。

  • POSTは、リクエストを処理した後、その結果を返す前に認可チェックを実行することを要求します。

このdirection識別子を使用すると、ONCEPRIOR、またはPOSTでチェックされたリクエストを識別できます。

詳細は、Oracle WebLogic Server APIリファレンスweblogic.security.spi.Direction(セキュリティ・プロバイダにONCEPRIOR、またはPOSTを渡すために使用するオブジェクト)に関する項を参照してください。

注意: 認可プロバイダでは、Directionオブジェクトを判定内で使用することもできます。WebLogic ServerのXACML認可プロバイダでは、ONCE値のみサポートされます。


表A-2では、action-id識別子に指定する値について説明します。

表A-2 action-id識別子の値

その処理を含むリソースの種類 指定する値
Admin

Adminリソースによって保護する管理アクティビティの名前。たとえばUserLockout

有効な値については、Oracle WebLogic Server APIリファレンスweblogic.security.service.AdminResourceコンストラクタのactionパラメータに関する項を参照してください。

Application

管理コンソールに表示されるアプリケーション名。

コントロール

Javaコントロール内のメソッドの名前。Javaコントロールは、再利用可能なコンポーネントで、WebLogic Platformアプリケーション内の任意の場所に作成して使用できます。

EJB

EJBメソッドの名前。たとえばmymethod。そのメソッドがオーバーロードされている場合は、指定したメソッド名を持つすべてのメソッドが一致します。

JDBC

JDBCリソースによって保護する管理アクティビティの名前。

有効な値については、Oracle WebLogic Server APIリファレンスweblogic.security.service.JDBCResourceコンストラクタのactionパラメータに関する項を参照してください。

JMS

JMSリソースによって保護する管理アクティビティの名前。

有効な値については、Oracle WebLogic Server APIリファレンスweblogic.security.service.JMSResourceコンストラクタのactionパラメータに関する項を参照してください。

JMX

WebLogic Server MBean内の処理の名前。たとえばshutdown

JNDI

JNDIリソースによって保護する管理アクティビティの名前。

有効な値については、Oracle WebLogic Server APIリファレンスweblogic.security.service.JNDIResourceコンストラクタのactionパラメータに関する項を参照してください。

サーバー

サーバー・リソースによって保護するサーバー・ライフサイクル・アクティビティの名前。たとえばboot

有効な値については、「サーバー・リソース」を参照。

URL

HTTPメソッドの名前。たとえばPOST

Webサービス

Webサービス・メソッドの名前。たとえばmymethod

ワーク・コンテキスト

ワーク・コンテキスト・リソースによって保護する管理アクティビティの名前。

有効な値については、Oracle WebLogic Server APIリファレンスweblogic.security.service.WorkContextResourceコンストラクタのactionパラメータに関する項を参照してください。

その他

文字列access


次の例では、Action要素を使用して、SimpleSoap Webサービス内のmymethodを対象として指定しています。


注意:

<AttributeValue>要素に値を指定するときは、余分な空白を含めないでください。具体的には、次のとおりです。
  • 最初の値の前には空白を1つのみ入力します。

  • 複数の値を指定するとき、1つのみの空白で各値を区切ります。

  • 最後の値の後には空白を入力しません。

例:

<AttributeValue datatype>value1, value2, value3</AttributeValue>

<Target>
  <Resources>
   <Resource>
   <ResourceMatch
    MatchId="urn:oasis:names:tc:xacml:1.0:function:string-equal">
    <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">type=&lt;webservices&gt;, application=webservicesJwsSimpleEar,contextPath=/jws_basic_simple, webService=SimpleSoapPort</AttributeValue>
    <ResourceAttributeDesignator
     AttributeId="urn:oasis:names:tc:xacml:2.0:resource:resource-ancestor"
     DataType="http://www.w3.org/2001/XMLSchema#string"
     MustBePresent="true"/>
   </ResourceMatch>
  </Resource>
  </Resources>
  <ActionMatch
    MatchId="urn:oasis:names:tc:xacml:1.0:function:string-equal">
    <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">mymethod</AttributeValue>
     <ActionAttributeDesignator
      AttributeId="urn:oasis:names:tc:xacml:1.0:action:action-id"
      DataType="http://www.w3.org/2001/XMLSchema#string"
      MustBePresent="true"/>
  </ActionMatch>
</Target> 

環境識別子

XACMLでは、必要に応じてEnvironment要素を使用して、対象にアクセスを許可する前に満たされなければならない条件を運用環境内に記述できます。たとえば、Environment要素を使用して、アクセスを許可する日付と時間の範囲を指定できます。

Weblogic Serverでは、XACMLのすべてのEnvironment識別子をサポートされます(http://docs.oasis-open.org/xacml/2.0/access_control-xacml-2.0-core-spec-os.pdfにあるOASIS XACML 2.0コア仕様を参照)。また、標準のXACMLの環境識別子を使用できる場所ならどこでも使用できる追加の識別子1つに対するサポートも追加されています。表A-3では、コンテナからプロバイダに渡す値を保持するのに使用できる識別子に対しての値のリストを提供します。

表A-3 WebLogic Serverの環境識別子

識別子 値 および 説明

属性ID:

urn:bea:xacml:2.0:environment:context:key 

この識別子では、『Oracle WebLogic Serverセキュリティ・プロバイダの開発』のContextHandlerとWebLogicリソースに関する項で定義されているように、keyContextHandler要素名を指定します。ContextHandlerは、リソース・コンテナから追加のコンテキストとコンテナ固有の情報を取得し、その情報を名前と値のペアのリストとして表すWebLogicクラス。

データ型:

bea:Objectstring、またはdouble

値:

一致させたいContextHandler要素の値


次の例では、Environment要素を使用して、WebLogic Serverのリスニング・ポートの値を一致させています。このような要素を使用して、リクエストをリスニング・ポート9001で受け付けることを要件とするポリシーを作成できます。

<Environment>
   <EnvironmentMatch
      MatchId="urn:oasis:names:tc:xacml:1.0:function:double-equal"> 
      <EnvironmentAttributeDesignator
           AttributeId="urn:bea:xacml:2.0:environment:context:com.bea.cont
           extelement.channel.Port"
            DataType="http://www.w3.org/2001/XMLSchema#double"/> 
      <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#double">9001</AttributeValue>
   </EnvironmentMatch> 
</Environment>

ポリシーおよびポリシーセット識別子

XACMLでは、Policy要素を使用して1つまたは複数のルールを記述し、PolicySet要素を使用して1つまたは複数のポリシーを記述できます。各要素には、ユニークな識別子を提供するためのPolicySetId属性を含める必要があります。XACML仕様では、PolicySetId識別子を有効なURI値にすることが要件になっています。

XACMLドキュメントでは、PolicySetIdを使用して、特定のPolicyまたはPolicySet要素を別のPolicySet要素に含めることができます。WebLogic Serverでは、認可プロバイダやロール・マッピング・プロバイダのポリシー・ストアで、PolicySetIdをキーとして使用します。

WebLogic Serverでは、urn:bea:で始まるURI値は内部使用のために予約されています。urn:bea:で始まるURIを使用して独自のポリシーを作成することはできませんが、それらの値を使用してOracleのポリシーを独自のポリシー・セットに含めることはできます。

次に、Policy要素の有効な識別子の例を示します。

<Policy
    PolicyId="urn:mycompany:myapplication:policyid:1"
...>

次に、上のPolicy要素への有効な参照の例を示します。

<PolicyIdReference>
    urn:mycompany:myapplication:policyid:1
</PolicyIdReference>

リソース識別子

XACMLでは、Resource要素を使用して、データ、サービス、またはシステム・コンポーネントを表現します。

WebLogic Serverでは、XACML 2.0コア仕様の説明に従って、すべてのXACML Resource識別子がサポートされます。

Weblogic serverリソースを識別するには、リソース識別子を表A-4に説明する方法で使用します。WebLogic Serverリソースについては、第3章「ポリシーで保護できるリソースのタイプ」を参照してください。

表A-4 WebLogic Serverのリソース識別子

次を識別するには... 次の識別子を使用します...

Resource

  • 属性ID: urn:oasis:names:tc:xacml:1.0:resource:resource-id

  • データ型: string

  • 値: WebLogic Serverリソース・タイプとWebLogic Serverリソース階層内でのリソースの位置を指定する名前と値のペアの集合。WebLogic Serverでは、これらの識別子が生成されます。

    なお、この識別子を使用するポリシーでは、指定したリソースより下位にあるリソースは保護されません。たとえば、この識別子を使用したポリシーをWebサービス・モジュールに適用する場合、Webサービス内のメソッドはこのポリシーでは保護されません。

「保護するリソースのIDの取得」を参照。

リソースとその祖先

  • 属性ID: urn:oasis:names:tc:xacml:2.0:resource:resource-ancestor-or-self

  • データ型: string

  • 値: WebLogic Serverリソース・タイプを指定する名前と値のペアの集合。WebLogic Serverでは、これらの識別子が生成されます。

「保護するリソースのIDの取得」を参照。

リソースの親

  • 属性ID: urn:oasis:names:tc:xacml:1.0:resource:resource-parent

  • データ型: string

  • 値: WebLogic Serverリソース・タイプを指定する名前と値のペアの集合。WebLogic Serverでは、これらの識別子が生成されます。

「保護するリソースのIDの取得」を参照。

リソースの祖先

  • 属性ID: urn:oasis:names:tc:xacml:2.0:resource:resource-ancestor

  • データ型: string

  • 値: WebLogic Serverリソース・タイプを指定する名前と値のペアの集合。WebLogic Serverでは、これらの識別子が生成されます。

「保護するリソースのIDの取得」を参照。


次の例では、Resource要素がSimpleSoapPortというWebサービスに一致し、そのWebサービス内のすべてのメソッドが返されます。

<Resource>
   <ResourceMatch
    MatchId="urn:oasis:names:tc:xacml:1.0:function:string-equal">
    <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">type=&lt;webservices&gt;, application=webservicesJwsSimpleEar, contextPath=/jws_basic_simple, webService=SimpleSoapPort</AttributeValue>
    <ResourceAttributeDesignator
     AttributeId="urn:oasis:names:tc:xacml:2.0:resource:resource-ancestor"
     DataType="http://www.w3.org/2001/XMLSchema#string"
     MustBePresent="true"/>
   </ResourceMatch>
</Resource> 

サブジェクト識別子

XACMLでは、Subject要素を使用して、述部から参照できる属性を持つアクタを表現します。

WebLogic Serverでは、XACML 2.0のコア仕様に記載されている、XACMLサブジェクト識別子がサポートされています。

WebLogic Serverレルムに定義されているWebLogic Serverのユーザー、グループ、またはロールを識別するには、サブジェクト識別子を表A-5に説明する方法で使用します。

表A-5 WebLogicのサブジェクト識別子

次を識別するには... 次の識別子を使用します...

ユーザー・プリンシパル

  • 属性ID: urn:oasis:names:tc:xacml:1.0:subject:subject-id

  • データ型: string

  • 値: WebLogic Serverユーザー・プリンシパルの名前。

グループ・プリンシパル

  • 属性ID: urn:oasis:names:tc:xacml:2.0:subject:group

  • データ型: string

  • 値: WebLogic Serverグループ・プリンシパルの名前。

ロール

  • 属性ID: urn:oasis:names:tc:xacml:2.0:subject:role

  • データ型: string

  • 値: XACMLロール・マッピング・プロバイダによって解決された1つまたは複数のロールの名前。

注意: WebLogic Serverでは、この属性を定義しているRBACプロファイル仕様の一部のみがサポートされています。

SOAPドキュメントに署名したサブジェクト

  • 属性ID: urn:bea:xacml:2.0:subject:context:com.bea.contextelement.webservice.Integrity{{namespace}element}

    namespaceおよびelementには、署名されたネームスペースと要素を指定します。

    例:

    urn:bea:xacml:2.0:subject:context:com.bea.contextelement.webservice.Integrity{{ http://schemas.xmlsoap.org/soap/envelope/}Body}

  • データ型: string

  • 値:要素に署名したJavaサブジェクト(ユーザーIDまたはグループID)。


Webサービスへのアクセスを保護するために使用できるセキュリティ・ロールを、表A-7に示した識別子を使用して定義しているXACMLドキュメントの例については、「例7-2」を参照してください。

WebLogic ServerのXACML関数

以下の節では、XACMLのコア仕様に定義されている関数以外に、WebLogic ServerのXACMLプロバイダでサポートされる関数について説明します。

カスタム・データ型のバリアント

以下の関数識別子は、標準のXACML関数を直接移植したもので、XMLおよびWebLogic Serverのデータ型longfloatdecimal、およびbea:Characterに使用できます。これらのデータ型の詳細は、Oracle WebLogic Server APIリファレンスcom.bea.common.security.xacml.Typeに関する項を参照してください。

この一覧のtypeには、データ型の名前(longfloatdecimal、またはcharacter)が入ります。

urn:bea:xacml:2.0:function:type-equal
urn:bea:xacml:2.0:function:type-greater-than
urn:bea:xacml:2.0:function:type-greater-than-or-equal
urn:bea:xacml:2.0:function:type-less-than
urn:bea:xacml:2.0:function:type-less-than-or-equal
urn:bea:xacml:2.0:function:type-one-and-only
urn:bea:xacml:2.0:function:type-bag-size urn:bea:xacml:2.0:function:type-is-in
urn:bea:xacml:2.0:function:type-bag urn:bea:xacml:2.0:function:type-intersection
urn:bea:xacml:2.0:function:type-union
urn:bea:xacml:2.0:function:type-at-least-one-member-of
urn:bea:xacml:2.0:function:type-subset
urn:bea:xacml:2.0:function:type-set-equals

bea:Objectを比較する関数については、「オブジェクトの比較」を参照してください。

次に、urn:bea:xacml:2.0:function:character-equalを使用して2つのbea:characterを比較するConditionの例を示します。

<Condition>
   <Apply FunctionId="urn:bea:xacml:2.0:function:character-equal">
     <AttributeValue DataType="urn:bea:xacml:2.0:data-type:character">Q</AttributeValue>
     <AttributeValue DataType="urn:bea:xacml:2.0:data-type:character">Q</AttributeValue>
   </Apply>
</Condition> 

その他の関数

表A-6に、標準のXACML関数以外にWebLogic SERVERで提供されるその他の関数をまとめます。

表A-6 その他のWebLogic Server XACML関数

関数 説明

in-development-mode

  • URI : urn:bea:xacml:2.0:function:in-development-mode

  • 入力値の型: null

  • 戻り値の型: boolean

  • 説明: この関数は、引数を取らず、レルムをホストするWebLogic Serverインスタンスのモードが開発モードである場合にtrueを返します。

『構成ウィザードによるドメインの作成』のWebLogicドメインの作成に関する項を参照してください。

instance-method

  • URI : urn:bea:xacml:2.0:function:instance-method

  • 入力値の型: bea:Object、string、bea:Classのバッグ、[bea:Object ... ]

  • 戻り値の型: bea:Object

  • 説明: この関数は、コンテナが現在のコンテキスト内で使用可能にするbea:Objectでメソッドを呼び出します。

この関数は、以下の引数を取ります。

  • bea:Object。このJavaオブジェクトのメソッドが呼び出されます。bea:Objectを指定するには、環境識別子urn:bea:xacml:2.0:environment:context:keyを使用します。「環境識別子」を参照。

  • string。メソッド名。

  • bea:Classのバッグ。メソッドのシグネチャ内に宣言されているJavaクラス。必要なクラスを作成するには、Oracleのstring-to-class関数を使用します。「オブジェクト型の変換」を参照。

  • 0個以上のbea:Objects。各オブジェクトは、メソッドに渡すパラメータ値を保持します。必要なオブジェクトを作成するには、Oracleのオブジェクト変換関数を使用します。「オブジェクト型の変換」を参照。

呼び出されたメソッドの戻り値は、関数からはbea:Objectとして返されます。voidを返すメソッドは呼び出されないことがあります。

instance-method-match

  • URI : urn:bea:xacml:2.0:function:instance-method-match

  • 入力値の型: bea:Object、string、[bea:Object ...]

  • 戻り値の型: bea:Object

  • 説明: この関数は、コンテナが現在のコンテキスト内で使用可能にするbea:Objectでメソッドを呼び出します。

この関数は、以下の引数を取ります。

  • bea:Object。このJavaオブジェクトのメソッドが呼び出されます。bea:Objectを指定するには、環境識別子urn:bea:xacml:2.0:environment:context:keyを使用します。「環境識別子」を参照。

  • string。メソッド名。

  • 0個以上のbea:Objects。各オブジェクトは、メソッドに渡すパラメータ値を保持します。必要なオブジェクトを作成するには、Oracleのオブジェクト変換関数を使用します。「オブジェクト型の変換」を参照。

この関数は、パラメータbea:objectのメソッド名とクラス型を使用して、対象のbea:Object内の適切なメソッドを検索します。対象のbea:Objectに含まれるメソッドのうち、パラメータと一致するメソッドが1つだけではない場合は結果が確定されません。

呼び出されたメソッドの戻り値は、関数からはbea:Objectとして返されます。voidを返すメソッドは呼び出されないことがあります。

instance-method-v2

  • URI : urn:bea:xacml:2.0:function:instance-method-v2

  • 入力値の型: bea:Class、bea:Object、string、bea:Classのバッグ、[bea:Object ... ]

  • 戻り値の型: bea:Object

  • 説明: この関数は、コンテナが現在のコンテキスト内で使用可能にするbea:Objectでメソッドを呼び出します。

この関数は、以下の引数を取ります。

  • bea:Classbea:Objectのクラス型。クラスを作成するには、Oracleのstring-to-class関数を使用します。「オブジェクト型の変換」を参照。

  • bea:Object。このJavaオブジェクトのメソッドが呼び出されます。bea:Objectを指定するには、環境識別子urn:bea:xacml:2.0:environment:context:keyを使用します。「環境識別子」を参照。

  • string。メソッド名。

  • bea:Classのバッグ。メソッドのシグネチャ内に宣言されているJavaクラス。必要なクラスを作成するには、Oracleのstring-to-class関数を使用します。「オブジェクト型の変換」を参照。

  • 0個以上のbea:Objects。各オブジェクトは、メソッドに渡すパラメータ値を保持します。必要なオブジェクトを作成するには、Oracleのオブジェクト変換関数を使用します。「オブジェクト型の変換」を参照。

呼び出されたメソッドの戻り値は、関数からはbea:Objectとして返されます。voidを返すメソッドは呼び出されないことがあります。

instance-method-match-v2

  • URI : urn:bea:xacml:2.0:function:instance-method-match-v2

  • 入力値の型: bea:Class、bea:Object、string、[bea:Object ... ]

  • 戻り値の型: bea:Object

  • 説明: bea:Objectのクラス名、メソッド名、およびパラメータbea:Objectsのクラス型を使用して、対象のbea:Object内の適切なメソッドを検索します。対象のbea:Objectに含まれるメソッドのうち、パラメータと一致するメソッドが1つだけではない場合は結果が確定されません。

この関数は、以下の引数を取ります。

  • bea:Classbea:Objectのクラス型。クラスを作成するには、Oracleのstring-to-class関数を使用します。「オブジェクト型の変換」を参照。

  • bea:Object。このJavaオブジェクトのメソッドが呼び出されます。bea:Objectを指定するには、環境識別子urn:bea:xacml:2.0:environment:context:keyを使用します。「環境識別子」を参照。

  • string。メソッド名。

  • 0個以上のbea:Objects。各オブジェクトは、メソッドに渡すパラメータ値を保持します。必要なオブジェクトを作成するには、Oracleのオブジェクト変換関数を使用します。「オブジェクト型の変換」を参照。

呼び出されたメソッドの戻り値は、関数からはbea:Objectとして返されます。voidを返すメソッドは呼び出されないことがあります。

instance-method-match-v3

  • URI : urn:bea:xacml:2.0:function:instance-method-match-v3

  • 入力値の型: string、bea:Object、string、stringのバッグ、[bea:Object ...]

  • 戻り値の型: bea:Object

  • 説明: bea:Objectのクラス名、メソッド名、およびパラメータbea:Objectsのクラス型を使用して、対象のbea:Object内の適切なメソッドを検索します。対象のbea:Objectに含まれるメソッドのうち、パラメータと一致するメソッドが1つだけではない場合は結果が確定されません。

この関数は、Java Reflection APIを使用して、指定されたbea:Objectでメソッドを呼び出します。この関数は、以下の引数を取ります。

  • Stringbea:Objectのクラス型の名前。

  • bea:Object。このJavaオブジェクトのメソッドが呼び出されます。bea:Object.を指定するには、環境識別子urn:bea:xacml:2.0:environment:context:keyを使用します。「環境識別子」を参照。

  • String。メソッド名。

  • stringのバッグ。メソッド・シグネチャ内のパラメータのクラス名。

  • 0個以上のbea:Objects。各オブジェクトは、メソッドに渡すパラメータ値を保持します。必要なオブジェクトを作成するには、Oracleのオブジェクト変換関数を使用します。「オブジェクト型の変換」を参照。

  • 呼び出されたメソッドの戻り値は、関数からはbea:Objectとして返されます。voidを返すメソッドは呼び出されないことがあります。


次のポリシーは、リクエストが特定のURLパターンに一致すると、instance-method関数を使用してHttpServletRequest.getAuthType()メソッドを呼び出します(http://download.oracle.com/javaee/6/api/javax/servlet/http/HttpServletRequest.html#getAuthTypeにある「Java Platform, Enterprise Edition 6 API Specification」javax.servlet.http.HttpServletRequest.getAuthType()を参照)。WebLogic ServerのContextHandlerは、サーブレット・コンテナ経由で受け付けるすべてのリクエストにおいて、このHttpServletRequestオブジェクトを認可プロバイダおよびロール・マッピング・プロバイダで使用できるようにします。URLリソースのすべてのポリシーは、このメソッドまたは他のHttpServletRequestメソッドを呼び出すことができます。

例A-1 HttpServletRequest.getAuthType()を呼び出すポリシー

<Policy xmlns="urn:oasis:names:tc:xacml:2.0:policy:schema:os"
   PolicyId="urn:sample:xacml:2.0:function:instance-method"
   RuleCombiningAlgId="urn:oasis:names:tc:xacml:1.0:rule-combining-algorithm:
     first-applicable">
  <Description>function:instance-method</Description>
  <Target>
    <Resources>
      <Resource>
         <ResourceMatch
            MatchId="urn:oasis:names:tc:xacml:1.0:function:string-equal">
            <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">type=&lt;url&gt;, application=MedRecEAR, contextPath=,uri=/docs/*</AttributeValue>
             <ResourceAttributeDesignator
               AttributeId="urn:oasis:names:tc:xacml:2.0:resource:
                  resource-ancestor-or-self"
               DataType="http://www.w3.org/2001/XMLSchema#string"
                MustBePresent="true"/>
         </ResourceMatch>
      </Resource>
    </Resources>
  </Target>
  <!-- Declaring the instance-method function as a variable because this policy
       invokes it multiple times.
  -->
  <VariableDefinition VariableId="authType">
    <Apply FunctionId="urn:bea:xacml:2.0:function:instance-method">
      <!-- Passing the HttpServletRequest object to the function, which the
           BEA ContextHandler makes available to the security framework.
      -->
      <Apply FunctionId="urn:bea:xacml:2.0:function:object-one-and-only">
        <EnvironmentAttributeDesignator 
           DataType="urn:bea:xacml:2.0:data-type:object"
           AttributeId="urn:bea:xacml:2.0:environment:context:com.bea.
              contextelement.servlet.HttpServletRequest" />
      </Apply>
      <!--  Passing "getAuthType()" as the name of the HttpServletRequest 
             method to invoke 
      -->
      <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">getAuthType</AttributeValue>
      <!-- Because the getAuthType() method signature contains no parameters,
           pass an empty bag of Class.
      -->
      <Apply FunctionId="urn:bea:xacml:2.0:function:class-bag" />
    </Apply>
  </VariableDefinition>
  <!-- Creating a rule that allows access to the resource only if
       the getAuthType() returns a non-null value and if the non-null
       value is "CLIENT_CERT"
  -->
  <Rule RuleId="primary-rule" Effect="Permit">
    <Condition>
      <Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:and">
        <Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:not">
          <Apply FunctionId="urn:bea:xacml:2.0:function:object-is-null">
            <VariableReference VariableId="authType" />
          </Apply>
        </Apply>
        <Apply
           FunctionId="urn:oasis:names:tc:xacml:1.0:function:string-equal">
           <!-- Because the instance-method function returns a bea:Object, 
                 this policy wraps the function in an object-to-string function,
                 which enables comparison a of the function output with another
                 string.
           -->
           <Apply FunctionId="urn:bea:xacml:2.0:function:object-to-string">
              <VariableReference VariableId="authType" />
           </Apply>
           <!--  Declaring a String object to compare to the
                 HttpServletRequest.getAuthType() return value. 
           -->
           <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">CLIENT_CERT</AttributeValue>
         </Apply>
       </Apply>
    </Condition>
  </Rule>
  <Rule RuleId="deny-rule" Effect="Deny" />
</Policy>

日付および時刻の変換

表A-7に、XACMLの日付と時刻を別のデータ型に変換するためのOracle提供の関数をまとめます。

表A-7 WebLogic Serverの日付および時刻の変換

関数 説明

dateTime-dayOfMonth

  • URI : urn:bea:xacml:2.0:function:dateTime-dayOfMonth

  • 入力値の型: dateTime

  • 戻り値の型: integer

  • 説明: この関数は、dateTime型の引数1つを取り、入力されたdateTimeによって示唆される日(その月の何日目か)を表す整数値を返します。

    月の1日目は、値1で表されます。

dateTime-dayOfMonthMaximum

  • URI : urn:bea:xacml:2.0:function:dateTime-dayOfMonthMaximum

  • 入力値の型: dateTime

  • 戻り値の型: integer

  • 説明: この関数は、datetime型の引数1つを取り、その月の最終日が何日かを表すinteger値を返します。

    たとえば、dateTimeが12月の日時を表す場合は、12月の最大日数を表す31を返します。うるう年の2月の日数は自動的に調整されます。

dateTime-dayOfWeek

  • URI : urn:bea:xacml:2.0:function:dateTime-dayOfWeek

  • 入力値の型: dateTime

  • 戻り値の型: integer

  • 説明: この関数は、dateTime型の引数1つを取り、入力されたdateTime.によって示唆される曜日(その週の何日目か)を表すinteger値を返します。

    日曜日を週の始まりと考え、値1で表します。

dateTime-secondsOfDay

  • URI : urn:bea:xacml:2.0:function:dateTime-secondsOfDay

  • 入力値の型: dateTime

  • 戻り値の型: integer

  • 説明: この関数は、datetime型の引数1つを取り、入力されたdatetimeによって示唆される経過時間(その日が始まってから何秒経過したか)を表すinteger値を返します。

dayTimeDuration-timeZoneOffset

  • URI : urn:bea:xacml:2.0:function:dayTimeDuration-timeZoneOffset

  • 入力値の型: null

  • 戻り値の型: dayTimeDuration

  • 説明: この関数は、引数を取らず、現地時間とグリニッジ標準時(GMT)の時差を表すdayTimeDuration値を返します。

string-to-dateTime

  • URI : urn:bea:xacml:2.0:function:string-to-dateTime

  • 入力値の型: string

  • 戻り値の型: dateTime

  • 説明: この関数は、string型の引数1つを取り、その引数をdateTimeとして返します。

string-to-date

  • URI : urn:bea:xacml:2.0:function:string-to-date

  • 入力値の型: string

  • 戻り値の型: date

  • 説明: この関数は、string型の引数1つを取り、その引数をdateとして返します。

object-to-dateTime

  • URI : urn:bea:xacml:2.0:function:object-to-dateTime

  • 入力値の型: bea:Object

  • 戻り値の型: dateTime

  • 説明: この関数は、bea:Object型の引数1つを取り、その値をdateTimeオブジェクトとして返します。bea:Objectjava.util.Calendarのインスタンスである場合は、その値が直接返されます。bea:Objectjava.security.Timestampまたはjava.util.Dateのインスタンスである場合は、bea:Objectjava.util.Calendarに変換され、そのCalendar値が返されます。それ以外の場合は、bea:Objectjava.lang.Stringに変換され、そのStringdateTime値に解析されます。

object-to-date

  • URI : urn:bea:xacml:2.0:function:object-to-date

  • 入力値の型: bea:Object

  • 戻り値の型: date

  • 説明: この関数は、bea:Object型の引数1つを取り、その値をdateオブジェクトとして返します。bea:Objectjava.util.Calendarのインスタンスである場合は、その値が直接返されます。bea:Objectjava.util.Dateのインスタンスである場合は、bea:Objectjava.util.Calendarに変換され、そのCalendar値が返されます。それ以外の場合は、bea:Objectjava.lang.Stringに変換され、そのStringdate値に解析されます。


算術変換および算術関数

表A-8に、算術値を別の入力型に変換するためのOracle提供の関数、およびXACMLで定義されている算術関数の基本セットを拡張するためのOracle提供の関数をまとめます。

表A-8 Weblogic Serverの算術変換および算術関数

関数 説明

float-to-double

  • URI : urn:bea:xacml:2.0:function:float-to-double

  • 入力値の型: float

  • 戻り値の型: double

  • 説明: この関数は、float型の引数1つを取り、その引数をdoubleとして返します。

long-to-double

  • URI : urn:bea:xacml:2.0:function:long-to-double

  • 入力値の型: long

  • 戻り値の型: double

  • 説明: この関数は、long型の引数1つを取り、その引数をdoubleとして返します。

long-to-float

  • URI : urn:bea:xacml:2.0:function:long-to-float

  • 入力値の型: long

  • 戻り値の型: float

  • 説明: この関数は、long型の引数1つを取り、その引数をfloatとして返します。

integer-to-float

  • URI : urn:bea:xacml:2.0:function:integer-to-float

  • 入力値の型: integer

  • 戻り値の型: float

  • 説明: この関数は、integer型の引数1つを取り、その引数をfloatとして返します。

integer-to-long

  • URI : urn:bea:xacml:2.0:function:integer-to-long

  • 入力値の型: integer

  • 戻り値の型: long

  • 説明: この関数は、integer型の引数1つを取り、その引数をlongとして返します。

string-to-double

  • URI : urn:bea:xacml:2.0:function:string-to-double

  • 入力値の型: string

  • 戻り値の型: double

  • 説明: この関数は、string型の引数1つを取り、その引数をdoubleとして返します。

string-to-long

  • URI : urn:bea:xacml:2.0:function:string-to-long

  • 入力値の型: string

  • 戻り値の型: long

  • 説明: この関数は、string型の引数1つを取り、その引数をlongとして返します。

string-to-integer

  • URI : urn:bea:xacml:2.0:function:string-to-integer

  • 入力値の型: string

  • 戻り値の型: integer

  • 説明: この関数は、string型の引数1つを取り、その引数をintegerとして返します。

string-to-float

  • URI : urn:bea:xacml:2.0:function:integer-to-long

  • 入力値の型: string

  • 戻り値の型: float

  • 説明: この関数は、string型の引数1つを取り、その引数をfloatとして返します。

to-degrees

  • URI : urn:bea:xacml:2.0:function:to-degrees

  • 入力値の型: double

  • 戻り値の型: double

  • 説明: この関数は、double型の引数1つを取り、その値をラジアンから度に変換して、その角度値をdoubleとして返します。

to-radians

  • URI : urn:bea:xacml:2.0:function:to-radians

  • 入力値の型: double

  • 戻り値の型: double

  • 説明: この関数は、double型の引数1つを取り、その値を度からラジアンに変換して、そのラジアン値をdoubleとして返します。

acos

  • URI : urn:bea:xacml:2.0:function:acos

  • 入力値の型: double

  • 戻り値の型: double

  • 説明: この関数は、double型の引数1つを取り、その引数の円弧のコサインをdoubleとして返します。

asin

  • URI : urn:bea:xacml:2.0:function:asin

  • 入力値の型: double

  • 戻り値の型: double

  • 説明: この関数は、double型の引数1つを取り、その引数の円弧のサインをdoubleとして返します。

atan

  • URI : urn:bea:xacml:2.0:function:atan

  • 入力値の型: double

  • 戻り値の型: double

  • 説明: この関数は、double型の引数1つを取り、その引数の円弧のタンジェントをdoubleとして返します。

atan2

  • URI : urn:bea:xacml:2.0:function:atan2

  • 入力値の型: double

  • 戻り値の型: double

  • 説明: この関数は、点のx座標とy座標を表すdouble型の引数を2つ取ります。x座標に対応するr値の極座標にある点のシータ構成要素をdouble値として返します。

ceil

  • URI : urn:bea:xacml:2.0:function:ceil

  • 入力値の型: double

  • 戻り値の型: double

  • 説明: この関数は、double型の引数1つを取り、その引数値以上の整数のうち最小の値をdouble値として返します。

cos

  • URI : urn:bea:xacml:2.0:function:cos

  • 入力値の型: double

  • 戻り値の型: double

  • 説明: この関数は、double型の引数1つを取り、その引数のコサインをdoubleとして返します。

exp

  • URI : urn:bea:xacml:2.0:function:exp

  • 入力値の型: double

  • 戻り値の型: double

  • 説明: この関数は、double型の引数1つを取り、オイラーの数eを引数値で累乗した値をdouble値として返します。

ieee-remainder

  • URI : urn:bea:xacml:2.0:function:ieee-remainder

  • 入力値の型: double

  • 戻り値の型: double

  • 説明: この関数は、double型の引数2つを取り、IEEE 754標準に従って2つの引数値を剰余演算した結果をdouble値として返します。「http://grouper.ieee.org/groups/754/」を参照してください。

log

  • URI : urn:bea:xacml:2.0:function:log

  • 入力値の型: double

  • 戻り値の型: double

  • 説明: この関数は、double型の引数1つを取り、その自然対数をdoubleとして返します。

maximum

  • URI : urn:bea:xacml:2.0:function:maximum

  • 入力値の型: double

  • 戻り値の型: double

  • 説明: この関数は、double型の引数2つを取り、大きい方の値をdoubleとして返します。

minimum

  • URI : urn:bea:xacml:2.0:function:minimum

  • 入力値の型: double

  • 戻り値の型: double

  • 説明: この関数は、double型の引数2つを取り、小さい方の値をdoubleとして返します。

pow

  • URI : urn:bea:xacml:2.0:function:pow

  • 入力値の型: double

  • 戻り値の型: double

  • 説明: この関数は、double型の引数2つを取り、1番目の引数値を2番目の引数値で累乗した結果をdouble値として返します。

random-number

  • URI : urn:bea:xacml:2.0:function:random-number

  • 入力値の型: double

  • 戻り値の型: double

  • 説明: この関数は、double型の引数2つを取り、1番目の引数値以上かつ2番目の引数値未満の乱数をdouble値として返します。

rint

  • URI : urn:bea:xacml:2.0:function:rint

  • 入力値の型: double

  • 戻り値の型: double

  • 説明: この関数は、double型の引数1つを取り、その引数値にもっとも近い整数をdouble値として返します。引数値より大きい整数値との差と、引数値より小さい整数値との差が等しい場合は、偶数値の方が返されます。

sqrt

  • URI : urn:bea:xacml:2.0:function:sqrt

  • 入力値の型: double

  • 戻り値の型: double

  • 説明: この関数は、double型の引数1つを取り、その平方根をdoubleとして返します。

tan

  • URI : uurn:bea:xacml:2.0:function:tan

  • 入力値の型: double

  • 戻り値の型: double

  • 説明: この関数は、double型の引数1つを取り、そのタンジェントをdoubleとして返します。


オブジェクト型の変換

WebLogic Serverには、XACMLデータをJavaオブジェクトに変換するための様々な関数が用意されています。各関数のURIは、次のようになっています。

urn:bea:xacml:2.0:function:type-to-object 

typeには、XACMLデータ型の名前が入ります。表A-9に、すべてのデータ型と、それらに対応する関数によって返されるJavaオブジェクトをまとめます。

たとえば、この関数では、java.lang.Stringオブジェクトとして「test」が返されます。

<Apply
  FunctionId="urn:bea:xacml:2.0:function:string-to-object">test</Apply> 

表A-9 データからJavaオブジェクトへの変換

型が等しい場合... urn:bea:xacml:2.0:function:type-to-object関数は次を返します...

character

java.lang.Character

string

java.lang.String 

boolean

java.lang.Boolean

integer

java.lang.Integer

double

java.lang.Double

float

java.lang.Float

long

java.lang.Long

decimal

java.lang.Double

base64Binary

java.lang.Byte[] 

hexBinary

java.lang.Byte[] 

date

java.util.Calendar 

time

java.util.Calendar 

dateTime

java.util.Calendar

dayTimeDuration

java.lang.Long

yearMonthDuration

java.lang.Integer

rfc822Name

java.lang.String

x500Name

java.lang.String

anyURI

java.net.URI

ipAddress

java.lang.String

dnsAddress

java.lang.String

表A-10には、文字列またはJavaオブジェクトを別のデータ型またはオブジェクト型に変換するためのOracle提供の関数をまとめます。コンテナが現在のコンテキストで使用可能にするオブジェクトを渡すには、環境識別子urn:bea:xacml:2.0:environment:context:keyを使用して、bea:Object.を指定します。「環境識別子」を参照してください。

表A-10 WebLogic Serverオブジェクトの変換

関数 説明

string-to-class

  • URI : urn:bea:xacml:2.0:function:string-to-class

  • 入力値の型: string

  • 戻り値の型: bea:Class

  • 説明: この関数は、string型の引数1つを取り、その引数値でjava.lang.Class.forName()を呼び出して、その結果をbea:Classとして返します。

object-to-string

  • URI : urn:bea:xacml:2.0:function:object-to-string

  • 入力値の型: bea:Object

  • 戻り値の型: string

  • 説明: この関数は、bea:Object型の引数1つを取り、その引数値でjava.lang.Object.toString()を呼び出して、その結果をstringとして返します。

object-to-double

  • URI : urn:bea:xacml:2.0:function:object-to-double

  • 入力値の型: bea:Object

  • 戻り値の型: double

  • 説明: この関数は、bea:Object型の引数1つを取り、その値をdoubleとして返します。bea:Objectdoubleのインスタンスである場合は、その値が直接使用されます。bea:Objectjava.lang.Numberのインスタンスである場合は、その値でNumber.doubleValue()を呼び出します。それ以外の場合は、bea:Objectjava.lang.Stringに変換され、そのStringdouble値に解析されます。

object-to-integer

  • URI : urn:bea:xacml:2.0:function:object-to-integer

  • 入力値の型: bea:Object

  • 戻り値の型: integer

  • 説明: この関数は、bea:Object型の引数1つを取り、その値をintegerとして返します。bea:Objectjava.lang.Integerのインスタンスである場合は、その値が直接使用されます。bea:Objectjava.lang.Numberのインスタンスである場合は、その値でNumber.intValue()を呼び出します。それ以外の場合は、bea:Objectjava.lang.Stringに変換され、そのStringintegerに解析されます。


オブジェクトの比較

表A-11に、Javaオブジェクトを比較するためのOracle提供の関数をまとめます。

表A-11 WebLogic Serverオブジェクトの比較

関数 説明

object-is-null

  • URI : urn:bea:xacml:2.0:function:object-is-null

  • 入力値の型: bea:Object

  • 戻り値の型: boolean

  • 説明: この関数は、bea:Object型の引数1つ を取り、そのオブジェクト参照がJavaキーワードnullと 等しいかどうかを示すboolean値を返します。指定したオブジェクト参照に対応するオブジェクトがない場合はtrueを返します。

object-equal

  • URI : urn:bea:xacml:2.0:function:object-equal

  • 入力値の型: bea:Objectbea:Object

  • 戻り値の型: boolean

  • 説明: この関数は、bea:Object型の引数2つを取り、java.lang.Object.equals()が呼び出され、2.つ のObjectは等しいかどうかを表示するbooleanの値を返します。

    java.lang.Object.equals()メソッドの詳細は、http://download.oracle.com/javase/6/docs/api/java/lang/Object.html#equals%28java.lang.Object%29を参照してください。

object-greater-than

  • URI : urn:bea:xacml:2.0:function:object-greater-than

  • 入力値の型: bea:Objectbea:Object

  • 戻り値の型: boolean

  • 説明: この関数は、bea:Object型の引数2つを取り、1番目のbea:Objectが2番目のbea:Objectより大きいかどうかを示すboolean値を返します。2つのbea:Objectjava.lang.Comparableを実装している必要があります。実装していない場合は評価が確定されません。

object-greater-than-or-equal

  • URI : urn:bea:xacml:2.0:function:object-greater-than-or-equal

  • 入力値の型: bea:Objectbea:Object

  • 戻り値の型: boolean

  • 説明: この関数は、bea:object型の引数2つを取り、1番目のbea:Objectが2番目のbea:object以上であるかどうかを示すboolean値を返します。2つのbea:Objectjava.lang.Comparableを実装している必要があります。実装していない場合は評価が確定されません。

object-less-than

  • URI : urn:bea:xacml:2.0:function:object-less-than

  • 入力値の型: bea:Objectbea:Object

  • 戻り値の型: boolean

  • 説明: この関数は、bea:Object型の引数2つを取り、1番目のbea:Objectが2番目のbea:Objectより小さいかどうかを示すboolean値を返します。2つのbea:Objectjava.lang.Comparableを実装している必要があります。実装していない場合は評価が確定されません。

object-less-than-or-equal

  • URI : urn:bea:xacml:2.0:function:object-less-than-or-equal

  • 入力値の型: bea:Objectbea:Object

  • 戻り値の型: boolean

  • 説明: この関数は、bea:Object型の引数2つを取り、1番目のbea:Objectが2番目のbea:Object以下であるかどうかを示すboolean値を返します。2つのbea:Objectjava.lang.Comparableを実装している必要があります。実装していない場合は評価が確定されません。

object-collection-contains

  • URI : urn:bea:xacml:2.0:function:object-collection-contains

  • 入力値の型: bea:Objectbea:Object

  • 戻り値の型: boolean

  • 説明: この関数は、bea:Object型 の引数2つを取り、1番目のbea:ObjectCollection.contains()によって決定された2番目のbea:Objectを含むかどうかを表示するbooleanを返します。1番目のbea:Objectjava.util.Collectionを実装している必要があります。実装していない場合は評価が確定されません。

    Collection.contains()メソッドの詳細は、http://download.oracle.com/javase/6/docs/api/java/util/Collection.html#contains%28java.lang.Object%29を参照してください。

object-collection-contains-all

  • URI : urn:bea:xacml:2.0:function:object-collection-contains-all

  • 入力値の型: bea:Objectbea:Object

  • 戻り値の型: boolean

  • 説明: この関数は、bea:Object型 の引数2つを取り、1番目のbea:ObjectCollection.containsAll()によって決定された2番目のbea:Objectを含むかどうかを表示するbooleanを返します。2つのbea:Objectjava.util.Collectionを実装している必要があります。実装していない場合は評価が確定されません。

    Collection.containsAll()メソッドの詳細は、http://download.oracle.com/javase/6/docs/api/java/util/Collection.html#containsAll%28java.util.Collection%29を参照してください。


文字列の比較と操作

表A-12に、Javaオブジェクトを比較するためのOracle提供の関数をまとめます。

表A-12 Weblogic Serverでの文字列の比較と操作

関数 説明

string-char-at

  • URI : urn:bea:xacml:2.0:function:string-char-at

  • 入力値の型: stringinteger

  • 戻り値の型: bea:Character

  • 説明: この関数は、string型およびinteger型の引数2つを取り、string内でintergerによって示される位置の文字を検索して、その文字をbea:Characterとして返します。

string-compare-to-ignore-case

  • URI : urn:bea:xacml:2.0:function:string-compare-to-ignore-case

  • 入力値の型: stringstring

  • 戻り値の型: integer

この関数は、string型の引数2つを取り、2つのstring引数を比較した結果をintegerとして返します。

  • 2つがまったく同じ文字列である場合は0を返します。

  • 1番目の文字列が、辞書的に2番目の文字列よりも先に出現する場合は0より小さい値を返します。

  • 1番目の文字列が、辞書的に2番目の文字列よりも後に出現する場合は0より大きい値を返します。

比較では、大文字小文字は区別されません。

string-contains

  • URI : urn:bea:xacml:2.0:function:string-contains

  • 入力値の型: stringstring

  • 戻り値の型: boolean

  • 説明: この関数は、string型の引数2つを取り、1番目のstringに2番目のstringの値が含まれるかどうかを示すboolean値を返します。

string-starts-with

  • URI : urn:bea:xacml:2.0:function:string-starts-with

  • 入力値の型: stringstring

  • 戻り値の型: boolean

  • 説明: この関数は、string型の引数2つを取り、1番目のstringの値が2番目のstringの値で始まるかどうかを示すboolean値を返します。

string-ends-with

  • URI : urn:bea:xacml:2.0:function:string-ends-with

  • 入力値の型: stringstring

  • 戻り値の型: boolean

  • 説明: この関数は、string型の引数2つを取り、1番目のstringの値が2番目のstringの値で終わるかどうかを示すboolean値を返します。

string-length

  • URI : urn:bea:xacml:2.0:function:string-length

  • 入力値の型: string

  • 戻り値の型: integer

  • 説明: この関数は、string型の引数1つを取り、そのstring値の長さを表すintegerを返します。

string-replace

  • URI : urn:bea:xacml:2.0:function:string-replace

  • 入力値の型: stringbea:Characterbea:Character

  • 戻り値の型: string

  • 説明: この関数は、string型、bea:Character型、およびbea:character型の引数3つを取り、1番目のbea:character値が文字列内に含まれる場合は、それらをすべて2番目のbea:Characterの値で置き換えて、その結果をstringとして返します。

string-substring

  • URI : urn:bea:xacml:2.0:function:string-substring

  • 入力値の型: stringintegerinteger

  • 戻り値の型: string

  • 説明: この関数は、string型、integer型、およびinteger型の引数3つを取り、1番目のinteger引数の索引(この索引自体を含む)から2番目のinteger引数の索引を除外して作成したstring引数のサブ文字列をstringとして返します。

string-normalize-to-upper-case

  • URI : urn:bea:xacml:2.0:function:string-normalize-to-upper-case

  • 入力値の型: string

  • 戻り値の型: string

  • 説明: この関数は、string型の引数1つを取り、その文字列を大文字に正規化した結果をstringとして返します。


ルールおよびポリシーの結合アルゴリズム

判定に複数のPolicySetを適用する場合は、それらの結果が次のアルゴリズムで結合されます。

urn:oasis:names:tc:xacml:1.0:policy-combining-algorithm:deny-overrides