

web.xmlに次の記述をしていると、normal権限のユーザでログインするとHTTP Status 403に飛んでしまいます。
~
<security-constraint>
<web-resource-collection>
<web-resource-name>Certification Area for admin</web-resource-name>
<url-pattern>/f.html</url-pattern>
<url-pattern>/a.html</url-pattern>
<url-pattern>/c.html</url-pattern>
<url-pattern>/n.html</url-pattern>
<url-pattern>/s.html</url-pattern>
<url-pattern>/サーブレット</url-pattern>
~
</web-resource-collection>
<auth-constraint>
<role-name>admin</role-name>
</auth-constraint>
</security-constraint>
<security-constraint>
<web-resource-collection>
<web-resource-name>Certification Area for normal</web-resource-name>
<url-pattern>/f.html</url-pattern>
<url-pattern>/s.html</url-pattern>
<url-pattern>/サーブレット</url-pattern>
~
</web-resource-collection>
<auth-constraint>
<role-name>normal</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>FORM</auth-method>
<form-login-config>
<form-login-page>/auth.html</form-login-page>
<form-error-page>/error.jsp</form-error-page>
</form-login-config>
</login-config>
~
環境
WindowsXP Home Edition
Tomcat4.1.36
MySQL4.0.26
mysql-connector-java-3.1.13-bin.jar
検索もしていますが、どれも解決に結びつきません。
原因、解決法が分かる方は、ご教示ください。
A 回答 (5件)
- 最新から表示
- 回答順に表示
No.5
- 回答日時:
結果的に動いてメデタシ。
でも一抹の疑問が。
それは"normal"権限でFORMにログインされる場合
usernameとpasswordはどこで設定されますか?
何か立場が違ってしまいましたね。
この回答への補足
>usernameとpasswordはどこで設定されますか?
データベース(MySQL)で
ユーザテーブルとユーザ権限テーブルを作りまして
前者にユーザのユーザID、パスワードなど諸々の情報を、
後者にユーザIDと権限(normalあるいはadmin)を設定しています。
後は
%CATALINA_HOME%\conf\server.xmlをテキストやサイトを参考にしながら編集しました。
No.4
- 回答日時:
現状に付け加えてみたら可能性ありかと。
<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
<role rolename="normal"/>
<role rolename="tomcat"/>
<role rolename="role1"/>
<role rolename="manager"/>
<role rolename="admin"/>
<user username="tomcat" password="tomcat" roles="tomcat"/>
<user username="both" password="tomcat" roles="tomcat,role1"/>
<user username="role1" password="tomcat" roles="role1"/>
<user username="admin" password="admin" roles="admin,manager"/>
<user username="normal"password="normal"roles="normal"/>
</tomcat-users>
これでうまく行けばログインでusername normal
password normalでいけるような気がします。
この回答への補足
元のweb.xmlを共通で使えるリソースを考え以下のように書き直したら成功しました。
<security-constraint>
<web-resource-collection>
<web-resource-name>Certification Area for All</web-resource-name>
<url-pattern>/f.html</url-pattern>
<url-pattern>/s.html</url-pattern>
<url-pattern>/サーブレットの一つ</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>admin</role-name>
<role-name>normal</role-name>
</auth-constraint>
</security-constraint>
<security-constraint>
<web-resource-collection>
<web-resource-name>Certification Area for Admin</web-resource-name>
<url-pattern>/a.html</url-pattern>
<url-pattern>/c.html</url-pattern>
<url-pattern>/n.html</url-pattern>
<url-pattern>/サーブレット</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>admin</role-name>
</auth-constraint>
</security-constraint>
「共通に使えるものはまとめて書くように」というルールでもあるんでしょうか?
No.3
- 回答日時:
全く自信はないですがでは
Tomcatの%CATALINA_HOME%\conf\tomcat-users.xml
の設定は現状どのようになっていますか。
この回答への補足
以下のようになっています。
<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
<role rolename="tomcat"/>
<role rolename="role1"/>
<role rolename="manager"/>
<role rolename="admin"/>
<user username="tomcat" password="tomcat" roles="tomcat"/>
<user username="both" password="tomcat" roles="tomcat,role1"/>
<user username="role1" password="tomcat" roles="role1"/>
<user username="admin" password="admin" roles="admin,manager"/>
</tomcat-users>
index.html(照準で表示するページ)内にf.htmlのリンクを張って、そこをクリックして、認証ページを介して(<url-pattern>/f.html</url-pattern>)f.htmlに飛ぶようにしていますがこれが問題でしょうか?
No.2
- 回答日時:
Tomcatで%CATALINA_HOME%\conf\tomcat-users.xml
でロールが
<tomcat-users>
<role rolename="normal"/>
</tomcat-users>
ユーザが
<user username="XXXXX" password="xxxxx" roles="normal"/>
とかになりませんか?
アドバイスをありがとうございます。
>とかになりませんか?
自然に加わるということでしょうか?
それとも、そのように書けばうまくいくかもということでしょうか?
前者であればそうなっていません。
ただ、これはデータベースに登録されたユーザとそのパスワードと権限からアクセスの許可、拒否をするものなので少々違うような気がするのですが・・・。
No.1
- 回答日時:
見つかりませんね。
HTTP/1.1 StatusCodeに
Statusコードが4xxのとき ClientErrorで
「リクエストの構文が間違っているか理解されなかった」とあります。
また
403 Forbidden サーバはリクエストを理解したが
実行を拒否した。
と「秀和システム本」にありました。
ありがとうございます。
(株)SCCの「Webアプリケーション構築1」を参考にやっているのですが、amazonによると、少々間違えがあるようです。 しかし、今まではWebサイトで解決できましたが、これはできません。
adminユーザはアクセスできるので、根本的に間違っているはずはないと思うのですが・・・
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP php ログイン 1 2022/11/01 00:24
- PHP PHPでユーザー情報を入力して簡易ログイン機能をつくってみたのですが 1 2023/05/29 08:51
- その他(プログラミング・Web制作) pythonのWebスクレイピングでfind_allだとurlがNoneに 4 2022/04/17 18:21
- Perl Perlのエラーについてご教授ください。初心者です。 CGIを別サーバに移したところ、Perlのバー 5 2023/05/31 10:48
- JavaScript 1日1回引けるJavaScriptおみくじについて 1 2022/12/12 22:28
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- 英語 マーブル柄のまな板は英語表記にしたらこちらであっていますでしょうか? Marble pattern 1 2022/06/30 21:14
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- JavaScript Javascript初心者|jQueryの.val()で値を取得し複数の要素を連結させる方法知りたい 2 2022/06/02 12:06
- HTML・CSS ただいま勉強始めたての初心者です。フォームを縦並べにしたいです。 2 2022/11/20 17:18
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Linuxで64bit版tomcat
-
サーブレットでhtml,cssや画像...
-
JSP/サーブレットについて
-
アプリケーションサーバを再起...
-
違うディレクトリにコピーサイ...
-
Eclipseで、プロジェクト名のと...
-
JSPからServletへの遷移
-
Eclipse(JAVA)のデバッグで他...
-
マイクラjavaでForgeを入れたい...
-
正しいURL指定しているにもかか...
-
エラー:org.springframeworkが...
-
JAVAにのeclipseに関する質問で...
-
Eclipseでパッケージ・エクスプ...
-
Eclipse・プロジェクトで、フォ...
-
「ワークスペースをビルド中」...
-
jdbcでinsert,delete,createをe...
-
構文エラーのやり直しについて
-
eclipseのショトカットキー
-
javaの中で環境変数を設定する。
-
IIS環境でJAVAを使用したい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Tomcatでhtmlが実行できない。...
-
サーブレットでhtml,cssや画像...
-
tomcatのリスタートについて
-
Struts、設定不備?404エラーで...
-
eclipseとtomcatで404エラー
-
tomcatの正常動作について(他PC)
-
tomcatのシステムを共有サーバ...
-
web.xmlの記述
-
環境変数の初期サイズが勝手に...
-
tomcat7.0 管理コンソールへの...
-
tomcatを起動させることができ...
-
CentOS6でJSPの環境構築について
-
Tomcat3.2.4でのヒープの設定
-
Servlet & セキュリティ(SSL)
-
Tomcat 4.1.18でのWebアプリ追...
-
Tomcatでアクセスログを出力し...
-
myfacesのサンプルを実行したら...
-
JSP
-
Tomcat関連ドキュメントを見る方法
-
ServletのWebアプリケーション...
おすすめ情報