(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】2021048607
(43)【公開日】20210325
(54)【発明の名称】情報処理装置、制御方法、およびそのプログラム
(51)【国際特許分類】
   H04N 1/00 20060101AFI20210226BHJP
   G03G 21/00 20060101ALI20210226BHJP
   B41J 29/00 20060101ALI20210226BHJP
   B41J 29/38 20060101ALI20210226BHJP
   G06F 13/00 20060101ALI20210226BHJP
【FI】
   !H04N1/00 885
   !H04N1/00 127B
   !G03G21/00 388
   !B41J29/00 Z
   !B41J29/38 104
   !B41J29/38 203
   !G06F13/00 510A
【審査請求】有
【請求項の数】10
【出願形態】OL
【全頁数】23
(21)【出願番号】2020195391
(22)【出願日】20201125
(62)【分割の表示】2016054388の分割
【原出願日】20160317
(71)【出願人】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
【住所又は居所】東京都大田区下丸子3丁目30番2号
(74)【代理人】
【識別番号】100126240
【弁理士】
【氏名又は名称】阿部 琢磨
(74)【代理人】
【識別番号】100124442
【弁理士】
【氏名又は名称】黒岩 創吾
(72)【発明者】
【氏名】藤澤 邦匡
【住所又は居所】東京都大田区下丸子3丁目30番2号キヤノン株式会社内
【テーマコード(参考)】
2C061
2H270
5B084
5C062
【Fターム(参考)】
2C061AP01
2C061AP07
2C061CL08
2C061HJ08
2C061HK11
2C061HN15
2C061HT04
2C061HT07
2C061HT08
2H270KA59
2H270KA61
2H270LA62
2H270MD17
2H270ME01
2H270MH01
2H270MH20
2H270ND04
2H270ND10
2H270ZC03
2H270ZC04
5B084AA01
5B084AA11
5B084AB04
5B084AB21
5B084AB34
5B084BA09
5B084BB16
5B084CD23
5B084DB02
5B084DC02
5B084DC03
5C062AA05
5C062AA13
5C062AA35
5C062AB17
5C062AB22
5C062AB38
5C062AB40
5C062AB42
5C062AB46
5C062AB51
5C062AC15
5C062AC22
5C062AC23
5C062AC34
(57)【要約】
【課題】 ユーザはシャットダウンを指示して認証セッションがリセットされたと思っていたにも関わらず、高速スタートアップ後に再ログイン処理をせずとも通信サービスにログインさせている機器に対し、セキュリティの観点で不信感を抱く虞がある。
【解決手段】 機器が高速シャットダウンから復帰した際、高速シャットダウンに入る前に発行した認証識別情報を無効化する仕組みを提供する。
【選択図】 図5
【特許請求の範囲】
【請求項1】
受信した認証情報を基に認証処理を行い前記認証情報が有効であることに応じて認証識別情報を発行するログインサービスと、外部装置から初回リクエストを受信した際には通信識別情報を発行しレスポンスとともに前記外部装置へ送信し、前記通信識別情報を含むリクエストを受信した際には前記リクエストに含まれる認証情報に基づく認証処理を前記ログインサービスに要求し、前記認証情報が有効であることに応じて、前記ログインサービスが生成した前記認証識別情報をレスポンスとして前記外部装置へ送信する通信サービスとの少なくとも2つのサービスを有する情報処理装置であって、
電源OFFの操作を受け付けたことに応じて、前記情報処理装置のメモリに記憶された前記認証識別情報を削除することなく前記情報処理装置のハードウェアリソースへの電源供給を停止する省電力状態へ遷移する遷移手段と、
電源ONの操作により前記省電力状態から復帰した後、前記通信サービスは、前記外部装置から受信したリクエストに含まれる通信識別情報が使用不可能であると判断した場合、前記外部装置から受信したリクエストに含まれる認証識別情報を無効化する要求を前記ログインサービスへ送信するとともに、前記認証情報を要求するレスポンスを前記外部装置へ送信することを特徴とする情報処理装置。
【請求項2】
前記遷移手段により省電力状態へと遷移する場合、発行済みの前記通信識別情報を無効化予定の通信識別情報として前記メモリに記憶させる記憶手段を有し、
前記通信サービスは、前記省電力状態から復帰した後に、前記外部装置から受信した前記リクエストに含まれる前記通信識別情報が前記記憶手段により記憶された無効化予定の通信識別情報と一致しない場合、前記処理結果をレスポンスとして前記外部装置へ送信することを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記通信サービスは、前記外部装置から受信したリクエストに含まれる通信識別情報が前記記憶手段により記憶された無効化予定の通信識別情報と一致した場合であっても、前記外部装置から受信したリクエストに含まれる認証識別情報の有効期限が満了している、もしくは前記外部装置から受信したリクエストに認証識別情報が含まれない際は、前記外部装置から受信したリクエストに含まれる認証識別情報を無効化する要求を前記ログインサービスへ送信しないことを特徴とする請求項2に記載の情報処理装置。
【請求項4】
前記認証情報を要求するレスポンスとは認証情報を入力するためのログインページの画面情報であって、前記通信サービスは前記ログインページを介して入力された認証情報をログインリクエストとともに前記外部装置から受信し、受信した前記認証情報を前記ログインサービスへ送信し、前記ログインサービスから受信した認証識別情報を前記ログインリクエストに対するレスポンスとして前記外部装置へ送信することを特徴とする請求項2または3に記載の情報処理装置。
【請求項5】
前記外部装置からのリクエストを前記通信サービスから受信し、受信されたリクエストに対応する処理を実行するアプリケーションサービスを有し、
前記記憶手段は、前記アプリケーションサービスから前記通信サービスに対して送信される発行済みの前記通信識別情報の無効化の要求が受信されたことに応じて、前記アプリケーションサービスから指定された前記通信識別情報を前記メモリから削除するとともに、指定された前記通信識別情報を無効化された通信識別情報として記憶し、前記遷移手段により省電力状態へと遷移する場合、無効化された通信識別情報を発行済み前記通信識別情報とともに無効化予定の通信識別情報として前記メモリに記憶させることを特徴とする請求項1乃至3の何れか1項に記載の情報処理装置。
【請求項6】
前記通信サービスはHTTPサーバであって、前記通信識別情報としてHTTPセッションを発行することを特徴とする請求項1乃至5の何れか1項に記載の情報処理装置。
【請求項7】
前記ハードウェアリソースとは、記録紙に画像を印刷するプリントエンジンであって、前記省電力状態へと遷移したことに応じて、前記プリントエンジンへの電源供給を停止することを特徴とする請求項1乃至6の何れか1項に記載の情報処理装置。
【請求項8】
前記無効化とは、前記メモリに保存された情報を削除することを特徴とする請求項1乃至7の何れか1項に記載の情報処理装置。
【請求項9】
受信した認証情報を基に認証処理を行い前記認証情報が有効であることに応じて認証識別情報を発行するログインサービスと、外部装置から初回リクエストを受信した際には通信識別情報を発行しレスポンスとともに前記外部装置へ送信し、前記通信識別情報を含むリクエストを受信した際には前記リクエストに含まれる認証情報に基づく認証処理を前記ログインサービスに要求し、前記認証情報が有効であることに応じて、前記ログインサービスが生成した前記認証識別情報をレスポンスとして前記外部装置へ送信する通信サービスとの少なくとも2つのサービスを有する情報処理装置の制御方法であって、
電源OFFの操作を受け付けたことに応じて、前記情報処理装置のメモリに記憶された前記認証識別情報を削除することなく前記情報処理装置のハードウェアリソースへの電源供給を停止する省電力状態へ遷移する遷移ステップと、
電源ONの操作により前記省電力状態から復帰した後、前記通信サービスは、前記外部装置から受信したリクエストに含まれる通信識別情報が使用不可能であると判断した場合、前記外部装置から受信したリクエストに含まれる認証識別情報を無効化する要求を前記ログインサービスへ送信するとともに、前記認証情報を要求するレスポンスを前記外部装置へ送信することを特徴とする制御方法。
【請求項10】
請求項9に記載の制御方法をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は省電力モードへ遷移する情報処理装置、制御方法、およびそのプログラムに関する。
【背景技術】
【0002】
機器が備える省電力モードとして、スキャナやプリンタなどの少なくとも一部のハードウェアリソースへの電力供給を停止し、メモリ内の少なくとも一部の内容は維持したままCPUを停止する省電力状態へ遷移する省電力モードがある。以下、この省電力状態へ遷移していることをディープスリープモードと呼び、機器がディープスリープモードに遷移することをディープスリープに入ると呼称する。
【0003】
長期間、機器の操作がおこなわれないことを契機にディープスリープに入る以外に、ユーザが電源スイッチを押すことを契機にディープスリープに入ることも可能である。機器は、通常のシャットダウンよりもより高速にシャットダウン動作を行う高速シャットダウンおよび通常のスタートアップより高速にスタートアップ動作を行う高速スタートアップを実現するため、ディープスリープおよびディープスリープからの復帰を実行する。
【0004】
高速シャットダウンに関する技術として、ユーザが電源スイッチを押下した際、機器はネットワークの通信状況を確認し通常のシャットダウン、または高速シャットダウンのどちらかのシャットダウンを行う技術を特許文献1が開示している。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2014−106835号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
ユーザが電源スイッチを操作することで高速シャットダウンまたは高速スタートアップが実行される。しかし、ユーザは機器の高速動作がディープスリープによる高速なシャットダウンおよびディープスリープからの復帰によるスタートアップで実現されていることを認識していない可能性がある。
【0007】
一方、ディープスリープ時における機器のCPUは一時停止するが、メモリ内の少なくとも一部の内容は削除されずに保持されることが考えられる。そのため、機器上で動作するプログラムの状態はディープスリープに入る前とディープスリープから復帰した後は同じである。例えば、機器内に備えられた通信サービスに対するユーザのログイン状態を示す認証識別情報も、ディープスリープから復帰した際に保持されたままということになる。そのため、ユーザはシャットダウンを指示して認証セッションがリセットされたと思っていたにも関わらず、高速スタートアップ後に再ログイン処理をせずとも通信サービスにログインさせている機器に対し、セキュリティの観点で不信感を抱く虞がある。
【0008】
本願発明は、機器が高速シャットダウンから復帰した際、高速シャットダウンに入る前に発行した認証識別情報を無効化する仕組みを提供することで、メモリ内の少なくとも一部の内容を保持する省電力モードの機器におけるセキュリティ性を維持させる。
【課題を解決するための手段】
【0009】
本発明の一実施形態に係る情報処理装置は、受信した認証情報を基に認証処理を行い前記認証情報が有効であることに応じて認証識別情報を発行するログインサービスと、外部装置から初回リクエストを受信した際には通信識別情報を発行しレスポンスとともに前記外部装置へ送信し、前記通信識別情報を含むリクエストを受信した際には前記リクエストに含まれる認証情報に基づく認証処理を前記ログインサービスに要求し、前記認証情報が有効であることに応じて、前記ログインサービスが生成した前記認証識別情報をレスポンスとして前記外部装置へ送信する通信サービスとの少なくとも2つのサービスを有する情報処理装置であって、電源OFFの操作を受け付けたことに応じて、前記情報処理装置のメモリに記憶された前記認証識別情報を削除することなく前記情報処理装置のハードウェアリソースへの電源供給を停止する省電力状態へ遷移する遷移手段と、電源ONの操作により前記省電力状態から復帰した後、前記通信サービスは、前記外部装置から受信したリクエストに含まれる通信識別情報が使用不可能であると判断した場合、前記外部装置から受信したリクエストに含まれる認証識別情報を無効化する要求を前記ログインサービスへ送信するとともに、前記認証情報を要求するレスポンスを前記外部装置へ送信することを特徴とする。
【発明の効果】
【0010】
メモリ内の少なくとも一部の内容を保持する省電力モードの機器におけるセキュリティ性を維持させることが可能になる。
【図面の簡単な説明】
【0011】
【図1】本発明が実施されるシステム、ソフトウェアの構成を示す図である。
【図2】実施例1の認証セッション記憶部、HTTPセッション記憶部、無効化予定HTTPセッション記憶部を示す図。
【図3】実施例1のログイン処理のシーケンス図。
【図4】実施例1の高速シャットダウン時のシーケンス図。
【図5】実施例1のWebブラウザからリクエストが送信された時の処理のシーケンス図。
【図6】実施例1のログアウトリクエストのシーケンス図。
【図7】実施例1のセッション記憶部の状態の変化を示す図。
【図8】実施例2のソフトの構成図を示す図。
【図9】ServletのHTTPセッション無効化処理のシーケンス図。
【図10】実施例2のServletによるHTTPセッション無効化処理と高速シャットダウン通知処理のフローチャート。
【図11】実施例3の高速シャットダウン処理とHTTPリクエスト受信処理のフローチャート。
【図12】実施例1のログイン処理のフローチャート。
【図13】実施例1の高速シャットダウン時のHTTPサーバの処理のフローチャート。
【図14】実施例1のWebブラウザからリクエストが送信された時の処理のフローチャート。
【発明を実施するための形態】
【0012】
[実施例1]
図1は本実施例のシステムおよびソフトウェアの構成を示す図である。本システムは情報処理装置であるMFP100と、ネットワーク110で接続された同じく情報処理装置であるPC108で構成される。MFP100は本発明を実現するソフトウェアを実行するCPU101、本発明を実現するソフトウェアを保存しているROM102、本発明を実現するソフトウェアを実行するRAM103、本発明を実現するソフトウェアがデータを保存する外部記憶装置104、ユーザが操作をおこなうUI105、ネットワークI/F制御部107から構成される。UI105は液晶タッチパネルや液晶パネルとハードキー組み合わせたものとして実現されている。上記モジュールはバス106によって相互に接続されておりデータのやり取りをおこなう。MFP100はネットワークI/F制御部107によってネットワーク110に接続されている。
【0013】
電源スイッチ121はユーザが電源のON/OFFを行うためのスイッチである。ユーザが電源スイッチを押下することによりMFP100のスタートアップ、シャットダウン、高速スタートアップ、高速シャットダウンがおこなわれる。なお、MFP100は不図示のプリントエンジンおよびスキャナエンジンと言ったハードウェアリソースを備えており、MFP100の高速シャットダウン時には、ハードウェアリソースへの電源供給は停止する。プリントエンジンはデータ化された画像を記録紙に印字するエンジンであり、スキャナエンジンは記録紙を電子的に読み取り、読み取ったデータを画像にするエンジンである。
【0014】
PC108はネットワーク110に接続されており、不図示のCPU、ROM、RAM、外部記憶装置、ネットワークI/F制御部を有する。Webブラウザ109はPC108上で動作している。ユーザは、Webブラウザ109を使用し後述するHTTPサーバ112にアクセス、その後Web UIを受信し、Web UIを介してMFP100設定や印刷などをおこなう。
【0015】
OS111、HTTPサーバ112、ログインサービス115、Servlet117、電源管理モジュール118はMFP100のROM102に保存されているソフトウェアである。MFP100が起動するとRAM103にロードされCPU101で実行される。これらのソフトウェアが後述するシーケンス、およびフローを実行する。
【0016】
OS111はOS111上で動作するアプリケーションに対してハードウェアの機能を提供する基本ソフトである。HTTPサーバ112はHTTPで通信を行う通信サービスであり、ネットワーク110を通じてWebブラウザ109からHTTPリクエストを受信するサーバ機能を有する。実施例1では通信サービスとしてHTTP方式により通信を行うHTTPサーバ112を採用している。HTTPサーバ112は受信したHTTPリクエストを解析しログインサービス115に認証処理を要求する。また受信したHTTPリクエストを解析しServlet117に対して処理の要求をおこなう。さらにログインサービス115やServlet117の処理結果をHTTPレスポンスとしてWebブラウザ109に送信する。
【0017】
HTTPサーバ112は、HTTP通信のセッション管理を行うためのHTTPセッション記憶部113、および高速シャットダウン実行前に発行済みのHTTPセッションを記憶する無効化予定HTTPセッション記憶部114を有する。実施例1では、HTTPセッション記憶部113と無効化予定HTTPセッション記憶部114は別の記憶部として記載しているが、HTTPセッション記憶部113に無効化予定フラグを付けて管理する形態であってもよい。
【0018】
ログインサービス115はユーザ認証を行うためのモジュールであり、入力された認証情報が事前に登録された認証情報と一致する有効な認証情報であるか否かを確認する。ログインサービス115はユーザがWebブラウザ109でログインをおこなうためのログインページの生成、およびWebブラウザ109から送信されてきた認証情報が有効な認証情報であるか否かの判定をおこなう。ログインサービス115は認証情報が有効な認証情報であり、ユーザがログイン可能である場合に認証セッションCookie、および認証セッションを発行する。ログインサービス115はHTTPサーバ112からの要求に従い、Webブラウザ109から送信されたHTTPリクエストに含まれる認証セッションが有効であるか否かの判定をおこなう。ログインサービス115はログインしているユーザの認証情報等を保持する認証セッション記憶部116をもつ。
【0019】
Servlet117はアプリケーションサービスの1つであり、HTTPサーバ112からの要求に従い、Web UIの画面情報であるHTMLの生成処理、Web UIを介して指示された処理を行い、処理結果をHTTPサーバ112へ送信する。
【0020】
電源管理モジュール118はユーザにより電源スイッチ121が押された際に高速シャットダウン処理、高速スタートアップ処理、シャットダウン処理、またはスタート処理をおこなう。MFP100が動作中、電源管理モジュール118はユーザにより電源スイッチ121が押されると、高速シャットダウンを行うか、またはシャットダウンを行うかを決定する。例えば、電源管理モジュール118は、ユーザによってIPアドレスの設定など再起動が必要な設定変更がおこなわれているか否かを判断する。再起動が必要な設定変更がおこなわれていれば通常のシャットダウン処理を行い、再起動が不要であれば高速シャットダウンを行う。
【0021】
電源管理モジュール118は、MFP100が高速シャットダウンされた状態でユーザにより電源スイッチ121が押されると高速スタートアップ処理を行う。電源管理モジュール118は通常のシャットダウン処理が実行された状態でユーザにより電源スイッチ121が押されるとスタートアップ処理をおこなう。さらに、電源管理モジュール118はユーザ操作により高速シャットダウンが実行される際に、HTTPサーバ112に対して高速シャットダウン実行通知を行う。
【0022】
図2は認証セッション記憶部116、HTTPセッション記憶部113、無効化予定HTTPセッション記憶部114が記憶するデータを示す図である。Cookieは2つの通信装置間で任意の情報をやり取りする際に、特定の通信装置が受信した任意の情報が何れのセッションに関連する情報であるかを特定するための識別情報である。セッションの詳細なデータ内容は後述するが、セッションとは通信装置間で確立したコネクションが多数ある中で、特定のコネクションにおいて任意の情報を送受信し終えるまでに利用される情報のことである。なお、本実施例ではWebブラウザ109とHTTPサーバ112とのセッションを識別する通信識別情報としてHTTPセッションCookieを採用している。
【0023】
HTTPセッションCookieはまずHTTPサーバ112からWebブラウザ109に送信される。Webブラウザ109は接続するHTTPサーバ毎にHTTPセッションCookieを記憶している。Webブラウザ109はHTTPサーバ112にリクエストを送信するときに、そのHTTPサーバ112から受信したHTTPセッションCookieをHTTPサーバ112に送信する。HTTPサーバ112はHTTPレスポンスヘッダ「Set−Cookie」を使ってHTTPセッションCookieをWebブラウザ109に送信する。Set−Cookieヘッダは以下のようにHTTPセッションCookieの識別子であるCookie名とCookieの値から構成される。「Set−Cookie: LOGINSESSION=AAAAA」。この例ではCookie名「LOGINSESSION」、Cookieの値「AAAAA」となる。
【0024】
HTTPセッションCookie以外に、認証識別情報である認証セッションCookie201のようにログインサービス115によってHTTPレスポンスヘッダに設定されるCookieもある。通信識別情報と同様、認証識別情報も2つの装置間で任意の情報を送受信する際に利用される識別情報である。さらにServlet117が任意のCookieをHTTPレスポンスヘッダに設定することも可能である。つまり、一つのHTTPレスポンスに0個以上のSet−Cookieヘッダを含めることができる。Webブラウザ109はHTTPサーバ112から1つまたは複数のCookieを受信するとCookie名と値のセットを記憶する。Webブラウザ109は記憶したHTTPリクエストヘッダ「Cookie」を使用しSet−Cookieヘッダを行い、HTTPサーバ112へ設定されたCookieを送信する。
【0025】
Cookieヘッダは少なくとも一つの、Cookieの識別子であるCookie名とCookieの値のセットから構成される。「Cookie: HTTPSESSION=11111;LOGINSESSION=AAAAA」。この例ではCookie名「HTTPSESSION」、Cookieの値「11111」のCookie、およびCookie名「LOGINSESSION」、Cookieの値「AAAAA」のCookieを送信している。即ち、通信識別情報、および認証識別情報がHTTPサーバ112へ送信される。Webブラウザ109が複数のCookieをHTTPサーバ112に送信する場合、Cookie名とCookieの値のセットを「;」で区切って送信する。
【0026】
認証セッション記憶部116は認証セッションCookie201と認証セッション202のセットから構成される認証セッションを記憶する記憶部である。認証セッション202は有効期限203、有効フラグ210や権限情報等を含む。認証セッションCookie201は認証セッション記憶部116から認証セッションを検索するための識別子である。ログインサービス115はHTTPリクエストに含まれる認証セッションCookieをキーにそのHTTPリクエストに対応する認証セッションを検索する。有効期限203は認証セッションの有効期限であり、有効期限がきれた認証セッションはログインサービス115によって認証セッション記憶部116から削除される。権限情報は認証されたユーザの権限情報であり、Servlet117を使用制限ために使用される。例えば、管理者権限をもっていないユーザが管理者としての作業をおこなうServlet117を使用した際に、権限エラーを返すために使用される。
【0027】
HTTPセッション記憶部113はHTTPセッションCookie204とHTTPセッション205のセットから構成されるHTTPセッションを記憶する記憶部である。HTTPセッション205は有効期限206等を含む。HTTPセッションCookie204はHTTPセッション記憶部113からHTTPセッションを検索するための識別子である。HTTPサーバ112はHTTPリクエストに含まれるHTTPセッションCookieをキーにして受信したHTTPリクエストに対応するHTTPセッションを検索する。有効期限206はHTTPセッションの有効期限であり、有効期限がきれたHTTPセッションはHTTPサーバ112によってHTTPセッション記憶部113から削除される。
【0028】
無効化予定HTTPセッション記憶部114はHTTPセッションCookie207とHTTPセッション208のセットから構成されるHTTPセッションを記憶する記憶部である。HTTPセッション208は有効期限209等を含む。HTTPセッションCookie207は無効化予定HTTPセッション記憶部114からHTTPセッションを検索するための識別子である。HTTPサーバ112はHTTPリクエストに含まれるHTTPセッションCookieをキーにそのHTTPリクエストに対応するHTTPセッションを検索する。有効期限209はHTTPセッションの有効期限であり、有効期限がきれたHTTPセッションはHTTPサーバ112によって無効化予定HTTPセッション記憶部114から削除される。
【0029】
図3はログインがおこなわれる際のシーケンス図である。HTTPサーバ112は、Webブラウザ109から3101に示されるログインページリクエストを受信し(S3001)、HTTPリクエスト形式のログインページリクエストを解析する。Webブラウザ109とHTTPサーバ112は初めてコネクションを確立することになるので、ログインページリクエストはWebブラウザ109から送信される初回リクエストとなる。初回リクエストが必ずしもログインページリクエストである必要はない。
【0030】
HTTPサーバ112は、HTTPリクエストがログインサービス115に対するものであればログインページを生成するログインページリクエストを行う(S3002)。HTTPサーバ112からログインページリクエストを受けたログインサービス115はログインページを生成し(S3003)、HTTPサーバ112に生成したログインページを返す(S3004)。HTTPサーバ112はWebブラウザ109とコネクションを初めて確立した際にHTTPセッションを発行し(S3005)、HTTPセッション記憶部113に追加する(S3006)。HTTPサーバ112は、HTTPセッションが無効になりWebブラウザ109とセッションを確立する度に新たなHTTPセッションを発行し、ログインリクエストを実行する。これにより、HTTPサーバ112はHTTPセッションと認証セッションとを間接的に関連付けていく。
【0031】
HTTPサーバ112は発行したHTTPセッションのHTTPセッションCookieの値をHTTPレスポンス3102のSet−Cookieヘッダに設定する(S3007)。実施例1ではHTTPセッション、認証セッションの情報のやり取りに識別情報としてCookieを使用しているが、HTTPサーバ112、ログインサービス115の実装にあわせてリクエストURLのパラメータや専用のHTTPヘッダ等を使用してもよい。さらにHTTPサーバ112はログインサービス115が生成したログインページをHTTPレスポンス3102のレスポンスボディとしてWebブラウザ109に送信する(S3008)。
【0032】
Webブラウザ109が画面情報であるログインページを受信し、表示する。ユーザが表示されたログインページに認証情報であるログインIDとパスワードを入力しログイン操作を行うと、Webブラウザ109は3103に示されるHTTPリクエストをログインリクエストとして送信する(S3009)。HTTPリクエスト3103のリクエストボディにはログインをおこなうために必要なユーザIDやパスワードなどの情報が含まれている。リクエストボディに含まれるログインに必要な情報はログインサービス115の仕様によって決定されている。HTTPサーバ112は、Webブラウザ109から3103で示されるHTTP形式のログインクエストを受信するとHTTPリクエスト解析を行う。HTTPサーバ112はHTTPリクエストがログインサービス115に対するものであればログイン要求を行う(S3010)。
【0033】
HTTPサーバ112からログインリクエストを受けたログインサービス115はログイン処理を実行する(S3011)。ログイン処理の実行に関しては図12を用いて説明する。ログイン処理が開始されると(ステップ12001)、ログインサービス115はリクエストボディからログインIDを取得する(ステップ12002)。さらにログインサービス115はリクエストボディからログインパスワードを取得する(ステップ12003)。
【0034】
ログインサービス115はステップ12002で取得したログインIDおよびステップ12003で取得したログインパスワードを使用してログインが可能であるかを判定する(ステップ12004)。ログイン可であればステップ12005に遷移する。ログイン不可であればステップ12013に遷移する。ログインサービス115は、ステップ12013でログインページをレスポンスとして返し(S3013)、ログイン処理を終了する(ステップ12011)。
【0035】
ログインサービス115は、認証セッションCookieを生成する(ステップ12005)。次に、ログインサービス115は認証セッションを生成する(ステップ12006)。さらに、ログインサービス115は生成した認証セッション(3014)に有効期限と(ステップ12007)、ユーザの権限情報と言った情報を設定する(ステップ12008)。ログインサービス115はステップ12005で生成した認証セッションCookieと認証セッションを認証セッション記憶部116に追加する。ログインサービス115はステップ12005で生成した認証セッションCookieの値をレスポンスヘッダの「Set−Cookie」に設定(ステップ12010)する。さらに、ログインサービス115はレスポンスボディとしてログイン完了ページを生成し(ステップ12012)、ステップ12011に遷移しログイン処理を終了する。実施例1ではログインIDとログインパスワードを取得しているが、どのような情報を使用するかはログインサービスの仕様に依存するため他の情報を取得してもよい。ログインサービス115から3104に示すレスポンスが返ると(S3013)、HTTPサーバ112はHTTPレスポンス3104をWebブラウザ109に返す(S3014)。
【0036】
図4はユーザによって電源スイッチ121が押下され高速シャットダウンが開始された際のシーケンス図である。ユーザによって電源スイッチ121が押されると電源管理モジュール118はMFP100の現在の状態から高速シャットダウンを実施するか、またはシャットダウンを実施するかを決定する。電源管理モジュール118が高速シャットダウンを開始すると判断すると、電源管理モジュール118からHTTPサーバ112に対して高速シャットダウン通知がおこなわれる(S4001)。HTTPサーバ112が高速さっとダウン通知を受信した際のフローを図13を用いて説明する。
【0037】
HTTPサーバ112は高速シャットダウン通知を受信すると高速シャットダウン処理を開始する(ステップ13001)。HTTPサーバはHTTPセッション記憶部113から発行済みのHTTPセッションを一つ取得する(ステップ13002)。次に、HTTPサーバはステップ13002で取得した発行済みのHTTPセッションをHTTPセッション記憶部113から削除する(ステップ13003)。HTTPサーバ112はステップ13002で取得した発行済みのHTTPセッションを無効化予定HTTPセッション記憶部114に追加する(ステップ13004)。HTTPサーバ112はHTTPセッション記憶部113が空であるか否かを判定する(ステップ13005)。HTTPセッション記憶部113が空であればステップ13006に遷移し高速シャットダウン処理を終了し(ステップ13006)、電源管理モジュールに処理を返す(S4002)。
【0038】
HTTPサーバ112は、HTTPセッション記憶部113が空でなければステップS130002に遷移し、別の発行済みのHTTPセッションを無効化予定HTTPセッション記憶部114に追加する処理を繰り返す。これにより、高速シャットダウン時に発行済みのHTTPセッションは全て削除され、かつ無効化予定HTTPセッション記憶部114に追加されることになる。なお、高速シャットダウン操作が行われ、MFP100が備えるプリントエンジンを始めとしたハードウェアリソースへの電源供給が停止された後も、無効化予定HTTPセッション記憶部114を始めとする少なくとも一部のデータは削除されない。
【0039】
図5はWebブラウザ109からHTTPサーバ112に対してWeb UIへのリクエストが送信された際の処理のシーケンス図である。図5のシーケンスは、既に、図3に示したログインは終えており、かつ図4で示す高速シャットダウンが実行された後にユーザが電源スイッチ121を押すことによりMFP100が高速スタートアップした後のシーケンスを示している。Webブラウザ109はHTTPサーバ112に対してWeb UIへのリクエストがおこなわれる(S5001)。5101に示されるHTTPリクエストのCookieヘッダには、HTTPセッションを識別するためのHTTPセッションCookieと、認証セッションを識別するための認証セッションCookieが含まれている。HTTPリクエストを受信したHTTPサーバ112のフローを図14を用いて説明する。
【0040】
HTTPサーバ112はWebブラウザ109からHTTPリクエストを受信するとHTTPリクエスト受信処理を開始する(ステップ14001)。HTTPサーバ112はHTTPリクエストのCookieヘッダからHTTPセッションCookieを取得する(ステップ14002)。HTTPサーバ112は、ステップ1402で取得したHTTPセッションCookieをキーに無効化予定HTTPセッション記憶部114に高速シャットダウンで無効になったHTTPセッションが存在するかを調べる(S5002、ステップ14003)。存在すればステップ14004に遷移する。存在しなければステップ14013に遷移する。HTTPサーバ112はログインサービス115に対して認証セッションを要求する(S5003)。ステップ14004〜14011の処理はユーザがログインしている状態で高速シャットダウンが行われ、その後に高速スタートアップしWebブラウザ109からHTTPサーバ112に対してWeb UIへのリクエストが送信された際に実行される処理である。
【0041】
ログインサービス115はHTTPリクエスト5101のCookieヘッダの認証セッションCookieの値をキーに認証セッション記憶部116を検索し、認証セッション5102を取得する(S5005、ステップ14004)。認証セッション5102を取得できればログインサービス115はHTTPサーバ112に認証セッション5102を返す、取得できなければ認証セッション無しの旨を返す(S5006)。HTTPサーバ112はログインサービス115から認証セッションか返ってきたか否かを確認する(ステップ14005)。認証セッションが返ってきていればステップ14006に遷移する。認証セッション無しの旨が返ってきていればステップ14007に遷移する。認証セッション無しの旨が返ってくるのはHTTPリクエストを受信する前に認証セッションの有効期限が満了し、ログインサービス115によって認証セッションが認証セッション記憶部116から削除されている場合がある。
【0042】
HTTPサーバ112はログインサービス115に対して取得した認証セッションの無効化を要求する(S5006、ステップ14006)。無効化の要求方法として、HTTPサーバ112はログインサービス115に対して無効化対象となる認証セッションの認証セッションCookieを送信する形態が考えられるが、この方法に限られない。ログインサービス115は無効化要求された認証セッションを無効化するため、認証セッション記憶部116から認証セッションを削除する(S5007)。認証セッションが認証セッション記憶部116から削除されると、以後HTTPサーバ112が受信するHTTPリクエストに削除した認証セッションの認証セッションCookieが含まれていても、HTTPサーバ112は認証セッションを取得できない。よってHTTPリクエストを送信したWebブラウザ109を操作するユーザは再度ログインのための操作を行う必要がある。ログインサービス115はHTTPサーバ112に処理を返す(S5008)。
【0043】
HTTPサーバ112はログインサービス115に対してログインページの生成を要求する(S5009)。ログインサービス115はログインページを生成し(S5010)、HTTPサーバ112に返す(S5011、ステップ14007)。HTTPサーバ112は新規HTTPセッション生成し(S5012、ステップ14008)、HTTPセッション記憶部113に追加(ステップ14009)する。さらに5103に示すようにHTTPセッションCookieの値をもつレスポンスヘッダ「Set−Cookie」をレスポンスに設定する(ステップ14010)。HTTPサーバ112はログインページをHTTPレスポンスとしてWebブラウザ109に送信し(S5013、ステップ14011)、HTTPリクエスト受信処理を終了する(ステップ14012)。HTTPサーバ112はステップ14002で取得したHTTPセッションCookieをキーにHTTPセッション記憶部113にHTTPセッションが存在するか否かを調べる(ステップ14013)。存在すればステップ14014に遷移し、存在しなければステップ14021に遷移する。HTTPサーバ112はHTTPセッション記憶部113に記憶されているHTTPセッションの有効期限を、現在時刻にHTTPセッションの生存時間を加えた値に更新する(ステップ14014)。HTTPセッションの生存時間はHTTPサーバ112で予め決められた時間である。
【0044】
次にHTTPサーバ112はログインサービス115に対して認証セッションを要求する。ログインサービス115は認証セッションを取得する(ステップ14015)。ログインサービス115は、ステップ14015で認証セッションが取得できればHTTPサーバ112に認証セッションを返す、取得できなければ認証セッション無しの旨を返す。HTTPサーバ112はログインサービス115から認証セッションか返ってきたか否かを確認する(ステップ14016)。認証セッションが返ってきていればステップ14017に遷移する。認証セッション無しが返ってきていればステップ14019に遷移する。認証セッション無しの旨が返ってくるのは、HTTPサーバ112がHTTPリクエストを受信する前に認証セッションの有効期限が満了してしまった場合である。
【0045】
HTTPサーバ112はServlet117に対してServletの処理を要求し、Servlet117はHTML生成等のServletとしての処理を実行する(ステップ14017)。HTTPサーバ112はServlet117の生成したHTMLデータをHTTPレスポンスとしてWebブラウザ109に送信し(ステップ14018)、HTTPリクエスト受信処理を終了する(ステップ14012)。
【0046】
HTTPセッション記憶部113にHTTPセッションが存在しない場合、HTTPサーバ112は新規HTTPセッション生成し(ステップ14021)、HTTPセッション記憶部113に追加(ステップ14022)する。さらにステップ14021で生成したHTTPセッションのHTTPセッションCookieの値をもつレスポンスヘッダ「Set−Cookie」をレスポンスに設定する(ステップ14023)。HTTPサーバ112がこのフローを実行するということは、Webブラウザ109からのリクエストが初回リクエストであるため、ステップ14016において認証セッションがない旨を確認することになる。HTTPサーバ112はログインサービス115に対してログインページの生成を要求するとログインサービス115はログインページを生成しHTTPサーバ112に返す(ステップ14019)。HTTPサーバ112はログインページをHTTPレスポンスとしてWebブラウザ109に送信し(ステップ14020)、HTTPリクエスト受信処理を終了する(ステップ14012)。
【0047】
認証セッションの取得について詳細に説明する。HTTPサーバ112から認証セッション要求を受け取るとログインサービス115は認証セッション取得処理を開始する(ステップ14101)。ログインサービス115はHTTPリクエストのCookieヘッダから認証セッションCookieを取得する(ステップ14102)。ログインサービス115は認証セッションCookieが取得できたかを判定し、取得できればステップ14104に遷移する、取得できなければステップ14109に遷移する。ログインサービス115は取得した認証セッションCookieをキーに認証セッション記憶部116を検索し、認証セッションがあれば取得し(ステップ14104)、ステップ14105に遷移する。取得できなければステップ14109に遷移する。
【0048】
ログインサービス115は取得した認証セッションの有効期限を調べ、取得した認証セッションの有効期限が有効期限内であればステップ14106に遷移する。取得した認証セッションの有効期限が満了していればステップ14109に遷移する。ログインサービス115は取得した認証セッションの有効期限を、現在時刻に認証セッションの生存時間を加えた値に更新する(ステップ14106)。認証セッションの生存期間はログインサービス(115)で予め定められた期間である。Webブラウザ109が認証セッションの生存期間内に次のHTTPリクエストを送ってきた場合、認証セッションの有効期限は更新されるため認証セッションの有効期限は生存期間より長くなる。ログインサービス115はHTTPサーバ112に対して取得した認証セッションを渡し(ステップ14107)、認証セッション取得処理を終了する(ステップ14108)。ログインサービス115はHTTPサーバ112に対して認証セッション無しの旨を返し(ステップ14109)、認証セッション取得処理を終了する(ステップ14108)。
【0049】
ここで、セッションについて詳細に説明する。HTTPセッションには有効期限がありHTTPサーバ112は有効期限の切れたHTTPセッションをHTTPセッション記憶部113、および無効化予定HTTPセッション記憶部114から削除する。同じく、認証セッションには有効期限があり、ログインサービス115は有効期限が満了した認証セッションを認証セッション記憶部116から削除する。MFP100のセキュリティを高めるため、HTTPサーバ112で定めているHTTPセッションの生存期間にくらべ認証セッションの生存期間は短いことを想定している。HTTPのセッションはユーザの利便性を考えて可能な限り長く維持するが、認証セッションはセキュリティの向上のために可能な限り短い時間で無効にする必要がある。例えば、HTTPセッションの生存期間は30分から1時間程度であるが、認証セッションの生存期間は1分から5分程度である。
【0050】
HTTPサーバ112は、Webブラウザ109からHTTPセッションCookie、および認証セッションCookieを含むリクエストを受信すると、夫々のCookieに対応するHTTPセッション、および認証セッションの有効期限を更新する。同時にログインサービス115は認証セッションの有効期限を更新する。そのため、一定期間HTTPのリクエストが無い場合、先に認証セッションが有効期限切れとなる。
【0051】
Webブラウザ109からログアウトのリクエストを受信することにより、ログインサービス115は認証セッションを無効化することもできる。図6はWebブラウザ109からログアウトのリクエストが送られた際のシーケンス図である。Webブラウザ109は6101に示すHTTPリクエストをHTTPサーバ112に送信する(S6001)。HTTPリクエスト6101のリクエストURLはログアウトを示すURLである。さらにCookieヘッダには認証セッションCookieの値が含まれている。HTTPリクエスト6101を受信したHTTPサーバ112はリクエストURLを解析しログアウトのリクエストであると判断すると、ログインサービス115に対してログアウト要求をおこなう(S6002)。
【0052】
ログインサービス115はログアウト処理を実施し、リクエストのCookieヘッダに含まれる認証セッションCookieをもつ認証セッションを認証セッション記憶部116から削除する(S6003)。さらにログインサービス115はログインページを生成し(S6004)、HTTPサーバ(112にログインページを返す(S6005)。HTTPサーバ112はWebブラウザ109に対して6102のようなログインページのHTMLデータを含むレスポンスを返す(S6006)。
【0053】
図7はHTTPセッションおよび認証セッションのタイムアウト、ユーザによるログアウト、高速シャットダウンおよび高速スタートアップが混在して実行されたときのセッション記憶部の状態の変化を示す図である。7018は時間経過を示す矢印である上から下に時間がすすんでいることを示している。
【0054】
7001は認証セッション記憶部116、HTTPセッション記憶部113、および無効化予定HTTPセッション記憶部114の初期状態1である。認証セッション記憶部116には認証セッション「AAAAA」、「BBBB」が保持されている。HTTPセッション記憶部113にはHTTPセッション「11111」、「22222」が保持されている。無効化予定HTTPセッション記憶部114は空である。認証セッション「AAAAA」とHTTPセッション「11111」は同じHTTPリクエストに含まれるものとする。7002は時間が経過し認証セッション「AAAAA」のタイムアウトがおこなわれた時の各記憶部の状態である。認証セッション記憶部116には認証セッション「BBBB」が保持されている。HTTPセッション記憶部113にはHTTPセッション「11111」、「22222」が保持されている。無効化予定HTTPセッション記憶部114は空である。
【0055】
7003は時間が経過しHTTPセッション「11111」のタイムアウトがおこなわれた時の各記憶部の状態である。認証セッション記憶部116には認証セッション「BBBB」が保持されている。HTTPセッション記憶部113にはHTTPセッション「「22222」が保持されている。無効化予定HTTPセッション記憶部114は空である。7004は高速シャットダウン・スタートアップがおこなわれた後の各記憶部の状態である。認証セッション記憶部116には認証セッション「BBBB」が保持されている。HTTPセッション記憶部113は空である。無効化予定HTTPセッション記憶部114にはHTTPセッション「22222」が保持されている。この段階でHTTPサーバ112が7005のようなHTTPリクエストを受信すると、認証セッション「AAAAA」は既にタイムアウトしているため、ユーザは新たにログインが必要となる。
【0056】
7006は認証セッション記憶部116、HTTPセッション記憶部113、無効化予定HTTPセッション記憶部114の初期状態2である。認証セッション記憶部116には認証セッション「AAAAA」、「BBBB」が保持されている。HTTPセッション記憶部113にはHTTPセッション「11111」、「22222」が保持されている。無効化予定HTTPセッション記憶部114は空である。認証セッション「AAAAA」とHTTPセッション「11111」は同じHTTPリクエストに含まれるものとする。7007は時間が経過し認証セッション「AAAAA」のタイムアウトがおこなわれた時の各記憶部の状態である。認証セッション記憶部116には認証セッション「BBBB」が保持されている。HTTPセッション記憶部113にはHTTPセッション「11111」、「22222」が保持されている。無効化予定HTTPセッション記憶部114は空である。
【0057】
7008は高速シャットダウン・スタートアップがおこなわれた後の各記憶部の状態である。認証セッション記憶部116には認証セッション「BBBB」が保持されている。HTTPセッション記憶部113は空である。無効化予定HTTPセッション記憶部114にはHTTPセッション「11111」、「22222」が保持されている。
この段階でHTTPサーバ112が7009のようなHTTPリクエストを受信すると、認証セッション「AAAAA」は既にタイムアウトしているため、ユーザは新たにログインが必要となる。
【0058】
7010は認証セッション記憶部116、HTTPセッション記憶部113、無効化予定HTTPセッション記憶部114の初期状態3である。認証セッション記憶部116には認証セッション「AAAAA」、「BBBB」が保持されている。HTTPセッション記憶部113にはHTTPセッション「11111」、「22222」が保持されている。無効化予定HTTPセッション記憶部114は空である。7011はユーザによってログアウトがおこなわれた時の各記憶部の状態である。認証セッション記憶部116には認証セッション「BBBB」が保持されている。HTTPセッション記憶部113にはHTTPセッション「11111」、「22222」が保持されている。無効化予定HTTPセッション記憶部114は空である。
【0059】
7012は高速シャットダウン・スタートアップがおこなわれた後の各記憶部の状態である。認証セッション記憶部116には認証セッション「BBBB」が保持されている。HTTPセッション記憶部113は空である。無効化予定HTTPセッション記憶部114にはHTTPセッション「11111」、「22222」が保持されている。この段階でHTTPサーバ112が7013のようなHTTPリクエストを受信すると、認証セッション「AAAAA」は既にログアウトされているため、ユーザは新たにログインが必要となる。
【0060】
7014は認証セッション記憶部116、HTTPセッション記憶部113、無効化予定HTTPセッション記憶部114の初期状態4である。認証セッション記憶部116には認証セッション「AAAAA」、「BBBB」が保持されている。HTTPセッション記憶部113にはHTTPセッション「11111」、「22222」が保持されている。無効化予定HTTPセッション記憶部114は空である。7015は高速シャットダウン・スタートアップがおこなわれた後の各記憶部の状態である。認証セッション記憶部116には認証セッション「AAAA」「BBBB」が保持されている。HTTPセッション記憶部113は空である。無効化予定HTTPセッション記憶部114にはHTTPセッション「11111」、「22222」が保持されている。
【0061】
7016は時間が経過し認証セッション「AAAAA」のタイムアウトがおこなわれた時の各記憶部の状態である。認証セッション記憶部116には認証セッション「BBBB」が保持されている。HTTPセッション記憶部113は空である。無効化予定HTTPセッション記憶部114にはHTTPセッション「11111」、「22222」が保持されている。この段階でHTTPサーバ112が7017のようなHTTPリクエストを受信すると、認証セッション「AAAAA」は既にタイムアウトしているため、ユーザは新たにログインが必要となる。
【0062】
以上、実施例1では、高速シャットダウン前に生成されたHTTPセッションを無効化予定HTTPセッション記憶部に保存しておくことにより、高速シャットダウン前に生成された認証セッションを無効化することが可能になる。この構成によって、ユーザの電源操作によりメモリ内の少なくとも一部の内容を保持しながら省電力状態へと遷移するディープスリープに入り高速シャットダウンを行う機器において、セキュリティ性を維持させることが可能になる。
【0063】
[実施例2]
実施例1では、高速シャットダウンに入る前にServlet117によってHTTPセッションの無効化がおこなわれた場合、無効化されたHTTPセッションはHTTPセッション記憶部113から削除される。そのため、Servlet117の指示によりMFP100が高速シャットダウンするまえに無効化したHTTPセッションを無効化予定HTTPセッション記憶部114に移動させることができない。よって、MFP100が高速スタートアップした後、Servlet117によって無効化されたHTTPセッションと間接的に関連付いている認証セッションを無効化することができず、認証セッション記憶部116に認証セッションが残ってしまう。仮に、時間が経過することで認証セッションが削除されるとしても、削除されるまでの間に何らかの形でServlet117に対し削除できなかった認証セッションでリクエストされると、Servlet117を利用できてしまう虞がある。実施例2ではこの課題を解決する方法を説明するが、説明されていない箇所については実施例1と同じ構成、動作となる。
【0064】
図8は実施例2のソフトウェア構成を示す図である。実施例1のソフトウェア構成に加え、HTTPサーバ112は無効HTTPセッション記憶部8001を備える。無効HTTPセッション記憶部8001はHTTPセッションCookie8002とHTTPセッション8003を記憶する記憶部である。
【0065】
図9はServlet117がHTTPリクエストに含まれるHTTPセッションを無効化するような機能を備えている場合に発生する課題を示すシーケンス図である。Webブラウザ109は9101のようなHTTPリクエストをHTTPサーバ112に送信する(S9001)。HTTPリクエスト9101にはHTTPセッションを識別するためのHTTPセッションCookieと認証セッションを識別するための認証セッションCookieが含まれている。図14の処理をおこないログインサービス115から認証セッションが取得すると、HTTPサーバ112はHTTPリクエストを解析する。HTTPサーバ112はServlet117へのリクエストであると判断するとServlet117にServletの処理を要求する(S9002)。Servlet117はHTTPサーバ112に対してHTTPリクエストに含まれるHTTPセッションCookieに対応するHTTPセッションの無効化を要求する(S9003)。HTTPサーバ112は指定されたHTTPセッションをHTTPセッション記憶部から削除し無効化する(S9004)。HTTPサーバ112はHTTPセッションの無効化が終わるとServlet117に処理を返す(S9005)。Servlet117はHTMLの生成やMFP100の制御等Servletの処理をおこなう(S9006)。Servlet117の処理の内容によってはS9003とS9006の呼び出しの順序が変わってもよいし、複数回行われてもよい。
【0066】
Servlet117はHTTPサーバ112に生成したHTMLを渡す(S9007)。HTTPサーバはServlet117の生成したHTMLデータをレスポンスとしてWebブラウザ109に送信する(S9008)。この状態で、ユーザが電源スイッチ121押下により電源管理モジュールが高速シャットダウンを開始すると、電源管理モジュール118がHTTPサーバ112に高速シャットダウン通知がおこう(S9009)。HTTPサーバは図13のステップ13001〜13006の処理を行いHTTPセッション記憶部113に含まれるHTTPセッションを無効化予定HTTPセッション記憶部114に移動する。ところが、Servlet117によって無効化されたHTTPセッションは既にHTTPセッション記憶部113に存在しないため無効化予定HTTPセッション記憶部114に移動されない。HTTPサーバ112は電源管理モジュール118に高速シャットダウン通知受信完了を返す(S9010)。
【0067】
高速スタートアップ後、Webブラウザ109はHTTPサーバ112に9102のようなHTTPリクエストを送信する。(S9011)。リクエスト(9013)に含まれるHTTPセッションは無効化予定HTTPセッション記憶部114に存在しないため、HTTPサーバ112はリクエスト9102に含まれる認証セッションを無効化することができない(S9013)。
【0068】
図10は図9で示した課題を解決するためのServlet117によるHTTPセッション無効化処理と高速シャットダウン通知処理のフローチャートである。ステップ10001〜10004がServlet117によるHTTPセッション無効化処理のフローチャートである。
【0069】
ステップ10101〜10110が高速シャットダウン通知処理のフローチャートである。HTTPサーバ112はServlet117からHTTPセッション無効化処理を要求されるとHTTPセッション無効化処理を開始する(ステップ10001)。HTTPサーバ112はServlet117から指定された無効化するHTTPセッションをHTTPセッション記憶部113から削除する(ステップ10002)。
【0070】
HTTPサーバ112は無効HTTPセッション記憶部(8001)にServlet117から指定された無効化するHTTPセッションを追加し(ステップ10003)、HTTPセッション無効化処理を終了する(ステップ10004)。ユーザが電源スイッチ121押下により電源管理モジュール118が高速シャットダウンを開始すると、電源管理モジュール118からHTTPサーバ112に対して高速シャットダウン通知がおこなわれる。HTTPサーバ112は高速シャットダウン通知を受信すると高速シャットダウン処理を開始する(ステップ10101)。HTTPサーバはHTTPセッション記憶部113からHTTPセッションを一つ取得する(ステップ10102)。次にHTTPサーバは取得したHTTPセッションをHTTPセッション記憶部113から削除する(ステップ10103)。
【0071】
次にHTTPサーバ112はステップ10102で取得したHTTPセッションを無効化予定HTTPセッション記憶部114に追加する(ステップ10104)。次にHTTPサーバ112はHTTPセッション記憶部113が空であるか否かを判定する(ステップ10105)。記憶部が空であればステップ10106に遷移する。記憶部が空でなければステップ10102に遷移し、処理をつづける。HTTPサーバは無効HTTPセッション記憶部(8001)からHTTPセッションを一つ取得する(ステップ10106)。HTTPサーバは取得したHTTPセッションを無効HTTPセッション記憶部(8001)から削除する(ステップ10107)。
【0072】
次にHTTPサーバ112はステップ10106で取得したHTTPセッションを無効化予定HTTPセッション記憶部114に追加する(ステップ10108)。HTTPサーバ112は無効HTTPセッション記憶部(8001)が空であるかを判定する(ステップ10109)。無効HTTPセッション記憶部が空であればステップ10110に遷移し、高速シャットダウン処理を終了する(ステップ10110)。無効HTTPセッション記憶部が空でなければステップ10106に遷移し、処理をつづける。
【0073】
実施例2ではHTTPサーバ112が無効化要求されたHTTPセッションを一旦無効HTTPセッション記憶部(8001)に移動しているが、HTTPサーバ112が直接無効化予定HTTPセッション記憶部114に保存してもよい。また、HTTPセッション記憶部113に無効化フラグのフィールドを設けて、HTTPセッションの無効化要求をうけたHTTPサーバが該当HTTPセッションの無効化フラグを立てることにより無効HTTPセッション記憶部の代わりにしてもよい。
【0074】
高速シャットダウン・スタートアップ後にHTTPサーバ112に対してWebブラウザ109のリクエストがおこなわれた時の認証セッションの無効化処理は実施例1と同様である。アプリケーションサービスがHTTPセッションの無効化をおこなう場合でも、無効HTTPセッション記憶部8001を利用することで高速シャットダウン以前にログインしたユーザの認証セッションを高速スタートアップ後に無効化することができる。
【0075】
[実施例3]
実施例3は実施例1を改良し、簡易的に認証セッションを無効化する方法である。実施例3ではこの方法を説明するが、実施例3で説明されていない箇所については実施例1と同じ構成、動作となる。図11は実施例3の高速シャットダウン処理とHTTPリクエスト受信処理のフローチャートである。ステップ11001〜11003がHTTPサーバ112の高速シャットダウン処理のフローチャートである。ステップ10101〜10110が高速スタートアップ後にWebブラウザ109からリクエストを受けた時のHTTPサーバ112の処理のフローチャートである。
【0076】
ユーザが電源スイッチ121押下により電源管理モジュールが高速シャットダウンを開始すると電源管理モジュール118はHTTPサーバ112に対して高速シャットダウン通知をおこなう。HTTPサーバ112は高速シャットダウン通知を受信すると高速シャットダウン処理を開始する(ステップ11101)。HTTPサーバ112はHTTPセッション記憶部113を空にする(ステップ11002)。HTTPサーバ112は高速シャットダウン処理を終了する(ステップ11003)。HTTPサーバ112はWebブラウザ109からHTTPリクエストを受信するとHTTPリクエスト受信処理を開始する(ステップ11101)。HTTPサーバ112はHTTPリクエストのCookieヘッダからHTTPセッションCookieを取得する(ステップ11102)。
【0077】
HTTPサーバ112はステップ11102で取得したHTTPセッションCookieをキーにHTTPセッション記憶部113にHTTPセッションが存在するか否かを確認する(ステップ11103)。存在すればステップ11112に遷移する。存在しなければステップ11104に遷移する。HTTPサーバ112はログインサービス115に対して認証セッションを要求する。ログインサービス115は図5のステップ14101〜14108の処理を行い、認証セッションを取得する(ステップ11104)。ログインサービス115は認証セッションを取得できればHTTPサーバ112に認証セッションを返す、取得できなければ認証セッション無しの旨を返す。
【0078】
HTTPサーバ112はログインサービス115から認証セッションか返ってきたか否かを確認する(ステップ11117)。認証セッションが返ってきたことを確認した場合はステップ11105に遷移する。認証セッション無しの旨が返ってきたことを確認した場合はステップ11106に遷移する。認証セッション無しの旨が返ってくるのはHTTPリクエストを受信する前に認証セッションの有効期限が過ぎてしまっている場合である。HTTPサーバ112はログインサービス115から取得した認証セッションの無効化をおこなう(ステップ11105)。
【0079】
認証セッションの無効化処理は実施例1と同様である。HTTPサーバ112は新規HTTPセッション生成し(ステップ11106)、HTTPセッション記憶部113に追加(ステップ11107)する。さらにステップ11106で生成したHTTPセッションのHTTPセッションCookieの値をもつレスポンスヘッダ「Set−Cookie」をレスポンスに設定(ステップ11108)する。HTTPサーバ112はログインサービス115に対してログインページの生成を要求する。ログインサービス115はログインページを生成しHTTPサーバ112に返す(ステップ11109)。HTTPサーバ112はログインページをHTTPレスポンスのボディデータとしてWebブラウザ109に送信し(ステップ11110)、HTTPリクエスト受信処理を終了する(ステップ11111)。HTTPサーバはステップ11102で取得したHTTPセッションの有効期限を更新する(ステップ11112)。HTTPセッションの有効期限の更新処理は実施例1と同様である。
【0080】
次にHTTPサーバ112はログインサービス115に対して認証セッションを要求する。ログインサービス115は図14のステップ14101〜14108の処理を行い認証セッションを取得する(ステップ11113)。ログインサービス115は認証セッションが取得できればHTTPサーバ112に認証セッションを返す、取得できなければ認証セッション無しの旨を返す。HTTPサーバ112はログインサービス115から認証セッションか返ってきたかを確認する(ステップ11114)。認証セッションが返ってきていることを確認した場合はステップ11115に遷移する。認証セッション無しが返ってきていないことを確認した場合はステップ11109に遷移する。HTTPサーバ112はServlet117に対してServletの処理を要求する、Servlet117はHTML生成等のServletとしての処理を実行する(ステップ11115)。HTTPサーバ112はServlet117の生成したHTMLデータをHTTPレスポンスのボディデータとしてWebブラウザ109に送信し(ステップ11116)、HTTPリクエスト受信処理を終了する(ステップ11111)。
【0081】
以上、実施例3の構成により、高速シャットダウン時にHTTPサーバがHTTPセッション記憶部に記憶されているHTTPセッションを全て削除し、高速シャットダウン以前にログインしたユーザの認証セッションを高速スタートアップ後に無効化することができる。
【0082】
[その他の実施例]
本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施例の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
【符号の説明】
【0083】
112 HTTPサーバ
113 HTTPセッション記憶部
114 無効化予定HTTPセッション記憶部
115 ログインサービス
116 認証セッション記憶部
117 Servlet
118 電源管理モジュール
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】