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

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

関連記事

TomcatにWARファイルをデプロイする方法

  <目次> (1) TomcatにWARファイルをデプロイする方法  (1-1) STEP1:WARファイルの準備  (1-2) STEP2:WARファイルをサーバ上に配備  (1-3) …

Tomcatのフォーム認証が失敗した際のトラブルシューティングメモ

<目次> (1) Tomcatのフォーム認証が失敗した際のトラブルシューティングメモ  (1-1) 事象①:正しいID/パスワードを入れてもログインエラーになる   (1-1-1) 発生状況・エラーメ …

Linuxサーバー(CentOS6)にTomcatをインストールする手順

(0)目次&概説 (1) Tomcatとは? (2) Tomcatインストールと疎通チェック  (2-1) Tomcat用ユーザーの作成  (2-2) Tomcatの資源をダウンロード  (2-3) …

getParameterとgetAttributeの違いやJSPからServletへの値の受け渡し

<目次> (1) getParameterとgetAttributeの違いやJSPからServletへの値の受け渡し  (1-1) 前半:request.getParameterについて   ●概要 …

TomcatのURLに付くポート番号8080を非表示にしてドメイン名のみでサイトにアクセスする方法と手順

本記事で実現したい事は下記2点、①URLのポート番号・アプリ名を非表示(リバプロ)と②JSP/Servlet名非表示(web.xml)です。これらを実現する事でブラウザにドメイン名のみ(例:XXXX. …

  • English (United States)
  • 日本語
Top