Rainbow Engine

IT技術を分かりやすく簡潔にまとめることによる学習の効率化、また日常の気付きを記録に残すことを目指します。

JSP/Servlet Tomcat

JSP/Servletでウェルカムページが認証されない事象について

投稿日:2021年4月24日 更新日:

<目次>

(1) JSP/Servletでウェルカムページが認証されない事象について
 (1-1) 発生状況・エラーメッセージ
 (1-2) 原因
 (1-3) 対処

(1) JSP/Servletでウェルカムページが認証されない事象について

JSP/Servletでウェルカムページに設定したページが、フルパスだと認証(ログイン画面に自動遷移)されるのに対して、ウェルカムページの短縮URL(jsp名を省略したURL)でアクセスすると認証されない、という事象についてです。

結論として、これは「仕様通り」の動きなのですが、なぜこうなるかについて少し整理したので備忘として残します。

(1-1) 発生状況・エラーメッセージ

●ウェルカムページを指定

web.xmlにて<welcome-file>要素を用いてウェルカムページの指定を行いました。具体的には下図のように「WebContent/form_auth/AfterLogin.jsp」というページを指定しています。
 
(図111)
 
これによりjsp名を省略したURLでアクセス可能にしています。
https://[ホスト名]:[ポート番号]/ [アプリケーション名]/

 

●Form認証の適用

ウェルカムページで指定したページが含まれる「form_auth」ディレクトリ配下に対して、Form認証を適用しました。
 
(図112)
 
これにより「AfterLogin1.jsp」にアクセスするためには認証(Login1.jspからのログイン)が必要になりました。
 
https://[ホスト名]:[ポート番号]/ [アプリケーション名]/form_auth/ AfterLogin1.jsp

●しかし・・

AfterLogin1.jspのフルパスを指定した場合はログイン画面に遷移するものの、ウェルカムページとして短縮URLでアクセスした際には、結果的には同じ画面を表示しようとしているにも関わらず、認証が発動しませんでした。
 
(動画)
操作①:AfterLogin1.jspにフルパスでアクセス⇒認証あり
操作②:AfterLogin1.jspにウェルカムページのURLでアクセス⇒認証されない

 

目次にもどる

(1-2) 原因

ウェルカムページの短縮URLだと、Form認証の適用パターン(/form_auth/*)にマッチせず、認証のカバー範囲から外れてしまうためです。具体的には、次のようにウェルカムページの短縮URLが、認証範囲よりも上位の階層の扱いになるため、短縮URLの時には認証がされませんでした。

(ウェルカムページの短縮URL)
https://ik1-336-28337.vs.sakura.ne.jp:8443/LoginTemplate/
(認証範囲)
https://ik1-336-28337.vs.sakura.ne.jp:8443/ LoginTemplate/form_auth/*

 

目次にもどる

(1-3) 対処

私自身はこの事象に対する明確な対処方法を見つけられていないのですが、運用回避としてウェルカムページは認証が不要な入口のページとして作り変える方針で進めようと考えています(※そもそも、ウェルカムページってそういうモノですし💦)。

そして、ウェルカムページから飛ぶ先から認証が必要な構造にしようと考えています(よくある、ウェルカムページに「ログイン」ボタンが設置してあるイメージ)。

目次にもどる

Adsense審査用広告コード


Adsense審査用広告コード


-JSP/Servlet, Tomcat

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

JSP/Servletでログイン・ログアウト機能を作成する方法

<目次> (1) JSP/Servletでログイン・ログアウト機能を作成する方法  (1-1) ログイン   (1-1-1) 概要・構文   (1-1-2) サンプルプログラム  (1-2) ログアウ …

「サーブレットコンテナ」や「サーブレットのライフサイクル」とは?(サンプルプログラム付)

※本記事は「サーブレットとは?その役割やHelloWorldサンプルコードのご紹介」の続編です。 (0)目次&概説 (2) サーブレットコンテナの基本  (2-1) サーブレットコンテナとは?  (2 …

Tomcatでhttps接続を行う方法(自己証明書を使ってSSL化する方法)

<目次> (1) Tomcatでhttps接続を行う方法(自己証明書を使ってSSL化する方法)  (1-1) STEP1:鍵や証明書の作成  (1-2) STEP2:証明書の配備(任意)  (1-3) …

サーバサイドJava(JSP&サーブレット)のFORM認証を用いたログイン画面の開発

(0)目次&概説 (1) サーバー側JavaのFORM認証  (1-1) 認証の種類  (1-2) FORM認証の特徴  (1-3) FORM認証の実装概要 (2) FORM認証の実装手順  (2-1 …

Javaの動的Webプロジェクト作成での事前設定と雛形Webプロジェクト作成

「動的Webプロジェクト」とはHTMLのような静的ページのみならず、ServletやJSPを用いてWebアプリケーション開発をする際に作成します。本記事ではEclipseにて「動的Webプロジェクト」 …

  • English (United States)
  • 日本語
Top