Rainbow Engine

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

Tomcat

Tomcatのフォーム認証(DataSourceRealm)で403エラー等が発生した場合の対処

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

<目次>

(1) Tomcatのフォーム認証(DataSourceRealm)で403エラー等が発生した場合の対処
 (1-1) エラー①:HTTP 403 Forbidden
  (1-1-1) 発生状況・エラーメッセージ
  (1-1-2) 原因
  (1-1-3) 対策
 (1-2) エラー②:ログインエラー画面が表示される(エラーメッセージなし)
  (1-2-1) 発生状況・エラーメッセージ
  (1-2-2) 原因
  (1-2-3) 対策

(1) Tomcatのフォーム認証(DataSourceRealm)で403エラー等が発生した場合の対処

Tomcatのフォーム認証(DataSourceRealm)で403エラーなど認証が正常に機能しない場合の原因や対策を備忘として残します。

(1-1) エラー①:HTTP 403 Forbidden

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

フォーム認証の設定をデータソース利用方式(DataSourceRealm)で設定したところ、以下のような状況になりました。

・ログイン画面(Login.jsp)は正常に表示される
・誤ったIDとパスワードを入れるとログインエラー画面(LoginError.jsp)がちゃんと表示される
・しかし正しいIDとパスワードを入れると403エラーが表示される
 
(エラーメッセージ)※Google Chromeの例
HTTPステータス 403 - Forbidden
 
(図111)
 

目次にもどる

(1-1-2) 原因

原因は403の意味通り、権限の設定が誤っていました。

私の場合、「admin-gui」や「manager-gui」のハイフン「-」を間違ってアンダースコア「_」でDBに登録してしまっていたため、認証が出来ていませんでした。
 
(図112)

目次にもどる

(1-1-3) 対策

Tomcatのcontext.xml内のDataSourceRealmの設定で指定しているroleNameColカラムの権限を修正しました。

具体的には原因にも記載の通り、アンダースコア⇒ハイフンに修正する事で正常に認証されるようになりました。
 
(図113)
 

目次にもどる

(1-2) エラー②:ログインエラー画面が表示される(エラーメッセージなし)

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

こちらは正しいID/パスワードを入力しているはずが、ログインエラー画面に遷移してしまい、認証が通らない事象です。

ネットワークトラフィックを確認すると、正常に認証出来た時はHTTPステータスコードが303(See Other)になっていた所を普通に200(OK)になっています。なので、ネットワーク的にはリクエストが正常して、IDかパスワードが誤っていたためにログインエラー画面を返しただけで、特に異常なしでした。

(図121)

目次にもどる

(1-2-2) 原因

私の場合は、結論としては単純にユーザIDが間違っていました。ただし、厄介だったのがDBにユーザIDを登録する際に「意図せず末尾に半角スペースが混じっていた」事に気付かず、正しいIDだと思い込んで入力し続けていたため、中々気付く事ができませんでした。

半角スペースが混入した原因は、DBのテーブル定義でユーザIDを格納するカラムをCHAR(10)に設定していたためでした。

固定で10バイトを確保するため、10バイトに満たないID(例:user01)の場合は10バイトになるように余りを半角スペースで埋めていたのです。

(図122)

目次にもどる

(1-2-3) 対策

上記解決のため、テーブル定義でユーザIDのカラムをCHAR(10)⇒VARCHAR(10)に変更する事で、意図したユーザIDでログインできるようになりました。

(図123)

目次にもどる

Adsense審査用広告コード


Adsense審査用広告コード


-Tomcat

執筆者:


comment

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

関連記事

JSP Servletでセッションの有効期限を設定する方法

<目次> (1) JSP Servletでセッションの有効期限を設定する方法  (1-1) セッションの有効期限設定の概要  (1-2) 方法1:web.xmlに追記する方法  (1-3) 方法2:プ …

Tomcatのアーキテクチャ概要と各コンポーネントの役割について

(0)目次&概説 (1) 記事の目的  (1-1) 目的  (1-2) 前提条件 (2) Tomcatの概要  (2-1) Tomcatとは?  (2-2) Tomcatアーキテクチャ概観 (3) T …

TomcatでEclipseを使う際にserver.xmlを編集しても上書きされる事象の対処方法

<目次> (1) TomcatでEclipseを使う際にserver.xmlを編集しても上書きされる事象の対処方法  (1-1) 発生状況・エラーメッセージ  (1-2) 原因  (1-3) 対処法 …

Javaのフォーム認証でログインを行うと数回で固まってしまう事象の対処記録

<目次> (1) Javaのフォーム認証でログインを行うと数回で固まってしまう事象の対処記録  (1-1) 発生事象・エラーメッセージ  (1-2) 原因  (1-3) 対策 (1) Javaのフォー …

Tomcatを使ったフォーム認証でユーザ情報をデータベース管理する方法

<目次> (1) Tomcatを使ったフォーム認証でユーザ情報をデータベース管理する方法  (1-1) 前提条件  (1-2) STEP1:context.xmlにコネクションプールを設定  (1-3 …

  • English (United States)
  • 日本語
Top