(57)【要約】【課題】画面に画面部品の表示・非表示を制御する分岐を埋め込まずに、ユーザのアクセス権限により画面部品の表示・非表示を制御し、アクセス権限のない画面部品に対するユーザの無駄な操作（例えばボタン押下やテキストボックスの入力など）を防止し、アクセス権限のないユーザからのリクエストを送信させない。【解決手段】Webアプリケーションサーバ２でのWebページ生成時に、画面部品がメモリ２２に格納されているアクセス権限チェックに必要な各種データを記憶するデータ記憶手段を参照して、クライアント端末１のユーザが画面部品のアクセス権限（表示権限）を持つか判定し、アクセス権限を持つ場合は画面部品を表示し、アクセス権限を持たない場合は画面部品を非表示にする。【選択図】  図１
2011198312.tif 000002
【特許請求の範囲】
【請求項１】
クライアント端末からのWebブラウザに関するリクエスト情報を受信してクライアント端末の表示部に表示させる画面情報を生成する画面情報生成サーバであって、
前記画面情報生成サーバは、
前記クライアント端末のユーザを特定するユーザIDと、当該ユーザのアクセス権限と、当該アクセス権限に応じた画面部品情報と、を格納した記憶部と、
前記クライアント端末から、Webブラウザのボタン名情報及び当該クライアント端末のユーザIDとを含むリクエスト情報を受信し、前記ユーザIDと前記記憶部の情報とから当該ボタンにより遷移する先のページが備える画面部品に関するアクセス制限を確認し、その結果に従い当該画面部品を画面情報に追加し、当該画面部品が追加された画面情報を前記クライアント端末に送信するリクエスト処理部と、
を備えることを特徴とする画面情報生成サーバ。
【請求項２】
請求項１に記載の画面情報生成サーバにおいて、
前記記憶部には、前記ユーザIDと当該ユーザIDの前記アクセス権限とが対応付けられたユーザ情報テーブルと、前記アクセス権限と当該アクセス権限についての前記画面部品とが対応付けられたアクセス権限情報テーブルとが格納されており、
前記リクエスト処理部は、前記遷移する先のページが備える画面部品をキーに前記アクセス権限情報テーブルを検索することで当該画面部品のアクセス権限を取得し、当該アクセス権限をキーに前記ユーザ情報テーブルを検索することで、当該画面部品についてのアクセス権限を確認することを特徴とする画面情報生成サーバ。
【請求項３】
請求項１に記載の画面情報生成サーバにおいて、
前記記憶部には、前記ユーザID毎に、当該ユーザが表示可能な画面部品が対応付けられた画面部品リストが格納されており、
前記リクエスト処理部は、前記遷移する先のページが備える画面部品と前記リクエスト情報に含まれるユーザIDと前記画面部品リストとから当該遷移する先のページが備える画面部品についてのアクセス権限を確認することを特徴とする画面情報生成サーバ。
【請求項４】
請求項１乃至３の何れか１項に記載の画面情報生成サーバにおいて、
前記遷移する先のページが備える画面部品は複数あることを特徴とする画面情報生成サーバ。
【請求項５】
クライアント端末と画面情報生成サーバとを備え、クライアント端末からのWebブラウザに関するリクエスト情報を受信してクライアント端末の表示部に表示させる画面情報を生成する画面情報生成方法であって、
前記アプリケーションサーバは、前記クライアント端末のユーザを特定するユーザIDと、当該ユーザのアクセス権限と、当該アクセス権限に応じた画面部品情報と、を格納した記憶部を備え、
前記アプリケーションサーバのリクエスト処理部により、
前記クライアント端末から、Webブラウザのボタン名情報及び当該クライアント端末のユーザIDとを含むリクエスト情報を受信するステップと、
前記ユーザIDと前記記憶部の情報とから当該ボタンにより遷移する先のページが備える画面部品に関するアクセス制限を確認するステップと、
前記確認の結果に従い当該画面部品を画面情報に追加するステップと、
当該画面部品が追加された画面情報を前記クライアント端末に送信するステップと、
を備えることを特徴とする画面情報生成方法。
【請求項６】
請求項１に記載の画面情報生成方法において、
前記記憶部には、前記ユーザIDと当該ユーザIDの前記アクセス権限とが対応付けられたユーザ情報テーブルと、前記アクセス権限と当該アクセス権限についての前記画面部品とが対応付けられたアクセス権限情報テーブルとが格納されており、
前記アクセス制限を確認するステップは、前記遷移する先のページが備える画面部品をキーに前記アクセス権限情報テーブルを検索することで当該画面部品のアクセス権限を取得し、当該アクセス権限をキーに前記ユーザ情報テーブルを検索することで、当該画面部品についてのアクセス権限を確認することを特徴とする画面情報生成方法。
【請求項７】
請求項１に記載の画面情報生成方法において、
前記記憶部には、前記ユーザID毎に、当該ユーザが表示可能な画面部品が対応付けられた画面部品リストが格納されており、
前記アクセス制限を確認するステップは、前記遷移する先のページが備える画面部品と前記リクエスト情報に含まれるユーザIDと前記画面部品リストとから当該遷移する先のページが備える画面部品についてのアクセス権限を確認することを特徴とする画面情報生成方法。
【請求項８】
請求項５乃至７の何れか１項に記載の画面情報生成方法において、
前記遷移する先のページが備える画面部品は複数あることを特徴とする画面情報生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はWebアプリケーションサーバ（画面情報生成サーバ）に関するものである。特にアクセス制限機能を有するWebアプリケーションサーバに関する。
【背景技術】
【０００２】
従来より、Ｗｅｂアプリケーションを提供するＷｅｂサーバでアクセス制限が行われている。アクセス制限とは、アクセス元のクライアント端末のユーザのアクセス権限に応じて、表示できる画面や、データの参照・更新などを制限することである。この様なアクセス制限に関して、例えば、特許文献１に記載の技術が知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−２６８１２５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記特許文献１のアクセス制限では、画面上の各ボタン操作毎にアクセス権限チェックを実行し、画面の入出力インタフェースを行う処理部において権限チェック処理を行うことにより、アクセス権限がないメソッド呼出とその実行自体が行われないようにすることで処理効率を向上させている。しかしながら、アクセス権限チェックを実施するタイミングは、ユーザが画面項目を入力しボタンを押下した後、つまりクライアント端末からサーバにリクエストが送信された後である。そのため、サーバは、そのユーザにアクセス権限が無い項目についての処理であってもクライアント端末からのリクエストを処理する。そのためサーバに処理負担がかかる。また、このようなアクセス権限の無い項目への記入は、その後アクセス権限が無いとして処理されないためユーザにとっては無駄な作業となる。
【０００５】
この対策として、アクセス権限チェックのチェック結果によってボタンやテキストボックスなどの画面部品の表示・非表示を制御する分岐処理を埋め込んだ画面を作成し、この画面を表示する際アクセス権限チェックを実行しアクセス権限がある画面部品のみ表示する方法が考えられる。
【０００６】
しかし、この方法ではアクセス権限チェックの対象となる全ての画面部品に対して表示・非表示を制御する分岐処理を埋め込まなくてはならず手間がかかる。
【０００７】
本発明は、アクセス権限により自らの表示・非表示を制御する画面部品を提供することである。これにより、画面に分岐処理を埋め込む手間をかけずに、アクセス権限のない画面部品に対するユーザの無駄な操作（例えばボタン押下やテキストボックスの入力など）を防止し、アクセス権限のないユーザからのリクエストを送信させないことができる。
【課題を解決するための手段】
【０００８】
画面部品と、当画面部品の表示権限があるかどうかを示すアクセス権限情報を記憶するデータ記憶手段を有し、サーバでのWebページ生成時に当ページ搭載予定の画面部品について前記データ記憶手段を参照して、クライアント端末のユーザが画面部品のアクセス権限を持つか判定し、アクセス権限を持つ場合は画面部品を表示し、アクセス権限を持たない場合は画面部品を非表示にさせる。これにより、アクセス権限のない画面部品に対するユーザの無駄な操作を防止し、アクセス権限のないユーザからのリクエストを送信させない構成を実現させる。
【発明の効果】
【０００９】
上記構成ではJSPのカスタムタグとして定義した画面部品自身がアクセス権限チェックを実行し、画面部品の表示・非表示を制御している。そのため、画面に配置するだけでアクセス権限チェックを実施しアクセス権限チェック結果による画面部品の表示・非表示を制御できるため、アクセス権限チェックの対象となる全画面部品の表示・非表示を制御する分岐処理を埋め込む手間を省くことができる。また、アクセス権限を持たない場合は画面部品を非表示にすることで、アクセス権限のない画面部品に対するユーザの無駄な操作（例えばボタン押下やテキストボックスの入力など）を防止し、アクセス権限のないユーザからのリクエストを送信させずサーバの処理負担を軽減できる。
【図面の簡単な説明】
【００１０】
【図１】実施例１及び２でのWebアプリケーションシステムの構成図である。
【図２】画面遷移の一例（検索変更可の場合）である。
【図３】画面遷移の一例（検索のみ可の場合）である。
【図４】ユーザ情報テーブルの一例である。
【図５】アクセス権限情報テーブルの一例である。
【図６】ログインしたユーザ（A111）のログインユーザ情報である。
【図７】ログインしたユーザ（B222）のログインユーザ情報である。
【図８】画面遷移例のフローチャート１（実施例１）である。
【図９】画面遷移例のフローチャート２（実施例１）である。
【図１０】ログインしたユーザ（A111）が表示できる画面部品の一覧である。
【図１１】ログインしたユーザ（B222）が表示できる画面部品の一覧である。
【図１２】画面遷移例のフローチャート１（実施例２）である。
【図１３】画面遷移例のフローチャート２（実施例２）である。
【発明を実施するための形態】
【００１１】
以下、図面を参照しながら本発明の実施の形態を説明する。
【実施例１】
【００１２】
図１にWebアプリケーションシステムの構成を示す。図１に示すとおりWebアプリケーションシステムは、大きく分けてクライアント端末１とWebアプリケーションサーバ２から構成されている。この２つはネットワークで接続され通信可能となっている。また、Webアプリケーションサーバ２のCPU４で動作しているWebアプリケーション３は、クライアント端末のWebブラウザ１０からのリクエストを受け付け、処理結果の画面情報を返すリクエスト処理部２０を備える。更に、リクエストに含まれるリクエストパラメータに基づき、リクエストに対応したビジネスロジックを実行するビジネスロジック実行部２１を備える。このほかにも、ビジネスロジック実行部２１から呼び出されて実行されるビジネスロジックやデータベースアクセス実行部などが存在する（図示せず）。リクエスト処理部２０とビジネスロジック実行部２１は、メモリ２２に存在するユーザ情報記憶部２３とアクセス権限情報記憶部２４と表示画面部品格納領域２５とログインユーザ情報格納領域２６を参照できる構成となっている。なお、上述したこれらの処理部は、実際にはプログラムによって実行され、そのプログラムは、上述した各部を含むモジュール構成となっており、実際のハードウェアとしてはWebアプリケーションサーバが不図示のＲＯＭ（Read  Only  Memory）等の記録媒体からプログラムを読み出して実行することにより生成される。また、これらのプログラムは、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）等のコンピュータで読み取り可能な記録媒体に記録されて提供することも可能である。さらに、上述したプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。あるいは、上述したプログラムをインターネット等のネットワーク経由で提供または配布するように構成したり、ＲＯＭ等に予め組み込んで提供するように構成してもよい。
【００１３】
Webブラウザ１０には画面部品の一つであるボタンを配置し、また、ボタン押下時に動作するJavaScript処理が実装されていて、ボタンを押下時にJavaScript処理でクライアント端末からサーバにリクエストを送信する。ここで、本実施例の画面部品は、JSP（JavaServer Pages）のカスタムタグとして定義する。JSPとはJavaを利用してサーバで動的にWebページを生成し、クライアント端末に送信する技術である。また、カスタムタグとはWebページを出力するプログラムをコンポーネント化し、JSPのタグとして利用できるように定義したものである。
【００１４】
Webブラウザ１０からリクエストが送信されると、リクエスト処理部２０が受け付け、ビジネスロジック実行部２１を呼び出しリクエストに対応した処理を実施し、リクエスト処理部２０が処理結果の画面情報をWebブラウザ１０に返す。リクエスト処理部２０がJSPから処理結果の画面情報を生成するとき、JSPに画面部品が埋め込まれている場合、クライアント端末のユーザがこの画面部品のアクセス権限を持っているかユーザ情報記憶部２３とアクセス権限情報記憶部２４と表示画面部品格納領域２５とログインユーザ情報格納領域２６から判定し、アクセス権限を持つ場合は画面部品を表示し、アクセス権限を持たない場合は画面部品を表示しない。
【００１５】
図２及び図３に画面遷移例を示す。これらの画面遷移例ではログイン画面１００でログインボタン１０１を押下しメニュー画面１１０に遷移し、画面（i）へ遷移ボタン１１１を押下し画面（i）１２０に遷移する例を示している。図２はアクセス権限が「検索更新可」のユーザの画面遷移例を示しており、画面（i）１２０に更新ボタン１２４が表示され、データ更新が可能となる。一方で図３はアクセス権限が「検索のみ可」のユーザの画面遷移例を示しており、画面（i）１２０に更新ボタン１２４が表示されず、データ更新が不可能となる。
【００１６】
図４にユーザ情報テーブル設定例を示す。図５にアクセス権限情報テーブル設定例を示す。図４と図５は、図１のユーザ情報記憶部２３とアクセス権限情報記憶部２４に読み込むテーブルの設定例を示している。図４には、レコード２１１とレコード２１２が設定されており、レコード２１１はアクセス権限「検索更新可」を持つユーザID「A111」のレコードで、レコード２１２はアクセス権限「検索のみ可」を持つユーザID「B222」のレコードを示している。
【００１７】
図５は、各画面部品が取り得るアクセス許可権限を纏めている。レコード３１２とレコード３１３とレコード３１４は、図２の項目B（更新用）１２２と項目C（更新用）１２３と更新ボタン１２４のアクセス許可権限が「検索更新可」であることを示している。同様にレコード３１１とレコード３１５とレコード３１６は、図２の項目A（検索・更新用）１２１と検索ボタン１２５とメニューに戻るボタン１２６のアクセス許可権限が「検索更新可、検索のみ可」であることを示している。
【００１８】
例えばユーザID「A111」が図２のログイン画面からログインし図２の画面（i）１２０に遷移した場合、図１のリクエスト処理部２０がJSPから処理結果の画面情報を生成する際に、図４のレコード２１１と図５のレコード３１１〜レコード３１６が参照され、ユーザID「A111」のアクセス権限は「検索更新可」であるため、すべての画面項目が表示される。
【００１９】
一方で、ユーザID「B222」が同様の画面遷移をした場合、図４のレコード２１２と図５のレコード３１１〜レコード３１６が参照され、ユーザID「B222」のアクセス権限は「検索のみ可」であるため、項目B（更新用）と項目C（更新用）と更新ボタンが表示されない。
【００２０】
図６および図７にログインユーザ情報を示す。ユーザID「A111」でログインした場合、ログイン時の認証処理でユーザIDとパスワードが図４に示すユーザ情報記憶部に存在するか確認し、認証成功した場合、図６のようにログインユーザ情報格納領域２６にユーザID「A111」のレコードを格納する。同様にユーザID「B222」でログインした場合、図７のようにログインユーザ情報格納領域２６にユーザID「B222」のレコードを格納する。
【００２１】
図８に上記画面遷移例のフローチャートを示す。図８は、Webブラウザ１０からリクエストが送信され、リクエスト処理部２０とビジネスロジック実行部２１が処理を実行し、Webブラウザ１０に処理結果（画面情報）が表示されるまでの処理フローを示している。
【００２２】
まず、webブラウザからリクエストが送信される（S801）。このリクエストには、リクエストパラメータが含まれている。リクエスト処理部は、webブラウザから送信されたリクエストを受信し、そのリクエストに含まれているリクエストパラメータのボタン名を抽出する（S802）。次に、リクエスト処理部により、この抽出したボタン名が画面（i）への遷移のためのボタンか、ログインのためのボタンであるかを判定する（S803）。ここで、ボタン名が画面（i）への遷移のためのボタンである場合、ビジネスロジック実効部により、遷移先JSP「画面（i）」のパスをリクエスト処理部に送る（S804）。また、ボタン名がログインのためのボタンである場合、ビジネスロジック実行部が認証処理を実行する。ここでは、リクエストパラメータに含まれるユーザIDとパスワードがユーザー情報記憶部に存在するかどうかを確認する（S805）。
【００２３】
この認証が成功すると、ビジネスロジック実行部がログインユーザ情報格納領域にログインしたユーザのユーザ情報（ユーザID・パスワード・アクセス権限）を格納する（S806）。ここで、「A111」でログインした場合、ログインユーザ情報格納領域には図７のユーザ情報が格納され、「B222」でログインした場合、ログインユーザ情報格納領域には図８のユーザ情報が格納される。次に、遷移先JSP「メニュー画面」のパスをリクエスト処理部に送る（S807）。認証に失敗すると、ビジネスロジック実行部が遷移先JSP「認証処理失敗画面」のパスをリクエスト処理部に返す（S808）。
【００２４】
図９は図８で「A」まで進んだ処理の続きを説明する図である。ここで、以下に説明するS901からS907の処理は、リクエスト処理部により実行される。
【００２５】
まず、リクエスト処理部が遷移先JSPのパスからJSPファイルを読み込み（S901）、画面情報生成ループJSPファイルの画面部品数分繰り返す（S902）。この処理で、ボタンやテキストボックスの表示・非表示の制御を行っている。まず、図５のアクセス権限情報記憶部を参照して、画面部品名に対応したアクセス許可権限を取得する（S903）。次に、ログインユーザ情報格納領域２６（図７または図８）を参照してアクセス権限を取得する（S9004）。次に、S903で取得したアクセス許可権限にS904で取得したアクセス権限が含まれているか判定する（S905）。この判定により、アクセス許可権限に含まれていた場合、画面部品に対応した画面情報（ボタンやテキストボックス）を処理結果（画面情報）に追加する（S906）。含まれていない場合、画面情報を処理結果（画面情報）に追加しない。上記のS903〜S906を画面部品数繰り返し、ボタンやテキストボックスの表示・非表示を制御する。そして、この処理結果をリクエスト処理部からWebブラウザに送信する（S907）。そして、webブラウザにより、リクエスト処理部から送信された処理結果を表示する（S908）。
【００２６】
本実施例では、上記処理を行なうことにより、素早く画面表示を行なうことができる。
【実施例２】
【００２７】
実施例２として、更に処理速度の向上させる処理を説明する。実施例２では、図１０及び図１１に示すように、ログインしたユーザ毎に、そのユーザが表示できる表示画面部品の一覧情報を保持する。
【００２８】
図１０はユーザID「A111」のログイン時に、Webアプリケーションのリクエスト処理部２０が図５と図７を参照して作成するもので、ユーザID「A111」が表示できる画面部品の一覧である。同様に図１１はユーザID「B222」が表示できる画面部品の一覧である。
【００２９】
図１２及び図１３に、図１０及び図１１の表示画面部品の一覧を用いた場合のフローチャートを示す。基本的には図８と図９と同様の処理となっているため、重複部分については説明を省略する。図８及び図９との差異は、図１２のS1207と、図１３のS1305である。S1207では、アクセス権限情報記憶部を参照して、ログインユーザのアクセス権限が含まれる画面部品名の一覧を作成し、表示画面部品格納領域２５に格納する処理を行っている。ここでは、「A111」でログインした場合、ログインユーザ情報格納領域には図７のユーザ情報が格納され、表示画面部品格納領域には図９のユーザ情報が格納される。「B222」でログインした場合、ログインユーザ情報格納領域には図８のユーザ情報が格納され、表示画面部品格納領域には図１０のユーザ情報が格納される。
【００３０】
S1305では、画面部品名が表示画面部品格納領域（図９または図１０）に含まれるか判定を行っている。
【００３１】
本実施例では、アクセス権限チェック実行時に図５と図７の２テーブルを参照せずに、図９又は図１０のみを参照するため、アクセス権限チェックの処理速度を実施例１よりも向上させる効果が得られる。
【００３２】
上記の形態で、本実施例の画面部品を画面に配置するだけでアクセス権限チェックを実施しアクセス権限チェック結果によるボタンの表示・非表示の制御を実現する。
本実施例の図２画面遷移例にこの技術を適用してみると、画面（i）へ遷移ボタン１１１を押したときにアクセス権限チェックを実行するため、この「画面（i）へ遷移ボタン」をキーにアクセス権限チェックすることができる。
【符号の説明】
【００３３】
１  クライアント端末
２  Webアプリケーションサーバ
３  Webアプリケーション
１０  Webブラウザ
２０  リクエスト処理部
２１  ビジネスロジック実行部
２２  メモリ
２３  ユーザ情報記憶部
２４  アクセス権限情報記憶部
２５  表示画面部品一覧記憶部
１００  ログイン画面
１０１  ログインボタン
１１０  メニュー画面
１１１  画面（i）へ遷移ボタン
１２０  画面（i）
１２１  項目A（検索・更新用）
１２２  項目B（更新用）
１２４  更新ボタン
１２５  検索ボタン
１２６  メニューに戻るボタン
２０１  ユーザID
２０２  パスワード
２０３  アクセス権限
２１１  レコード
３０１  画面部品名
３０２  アクセス許可権限
３１１  レコード
４０１  ユーザID
４０２  パスワード
４０３  アクセス権限
４１１  レコード
５０１  ユーザID
５０２  パスワード
５０３  アクセス権限
５１１  レコード
７０１  表示画面部品名
【図１】
2011198312.tif 000003
【図２】
2011198312.tif 000004
【図３】
2011198312.tif 000005
【図４】
2011198312.tif 000006
【図５】
2011198312.tif 000007
【図６】
2011198312.tif 000008
【図７】
2011198312.tif 000009
【図８】
2011198312.tif 000010
【図９】
2011198312.tif 000011
【図１０】
2011198312.tif 000012
【図１１】
2011198312.tif 000013
【図１２】
2011198312.tif 000014
【図１３】
2011198312.tif 000015