- PR -

認証画面でスタイルシートが効かない(JDBCレルムによるFORM認証)

1
投稿者投稿内容
EMY
会議室デビュー日: 2005/09/27
投稿数: 4
投稿日時: 2005-09-27 00:44
はじめまして。
tomcatでJDBCレルムの設定をし、FORMから認証させたいとしているのですが、
ログイン画面とエラー画面で外部スタイルシートが効きません。
認証成功時も変でして、ログインボタンを押すとメモ帳が開き、
「Document and Setting\\…\\xxx[1].cssが見つかりません。新しく作成しますか?」と聞かれ、
「はい」「いいえ」どちらを選択してもID、パスワード入力画面のままです。
もう一度ログインボタンを押すと、tomcatのエラーメッセージになり、
「The requested resource (/XXX/j_security_check) is not available.」
と言われてしまいます。
さらに、戻るボタンを押すと、ログイン成功後の画面が表示されます。
なお、スタイルシートを読み込まないようにすると問題なく認証が行われます。
お分かりになる方がいらっしゃいましたらよろしくお願いします。

■環境
Windows XP Pro
Tomcat 5.5.9
JDK 1.5.0_04
MySQL 4.1.14
Eclipse 3.1.0

■server.xml
<Realm className="org.apache.catalina.realm.JDBCRealm"
driverName="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://localhost/XXX"
connectionName="user"
connectionPassword="pass"
userTable="auth_users"
userNameCol="user_name"
userCredCol="user_pass"
userRoleTable="auth_roles"
roleNameCol="role_name" />

■web.xml
<security-constraint>
<web-resource-collection>
<web-resource-name>Authentication of FormAuth</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>form</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>FORM</auth-method>
<!--<realm-name>User DatabaseRealm</realm-name>-->

<form-login-config>
<form-login-page>/login.jsp</form-login-page>
<form-error-page>/login_err.html</form-error-page>
</form-login-config>

</login-config>
<security-role>
<role-name>form</role-name>
</security-role>

■login.jsp
<%@ page contentType="text/html; charset=Windows-31J" pageEncoding="Windows-31J" %>
<html>
<head>
<title>*ログイン*</title>
<link rel="stylesheet" type="text/css" href="/XXX/xxx.css" >
</head>
<body>
<center>
<form method="POST" action="<%= response.encodeURL("j_security_check") %>">
お名前:
<input name="j_username" type="text" size="10" maxlength="10" /><br>
パスワード:
<input name="j_password" type="password" size="10" maxlength="10" /><br>
<input type="submit" value="ログイン!" name="submit" />
<input type="submit" value="リセット" name="reset" />
</form>
</center>
</body></html>

長文になりまして申し訳ありません。
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2005-09-27 01:01
スタイルシートが配置されている場所自体セキュリティで保護されているからではないでしょうか。
security-constraint で制限がかけられていない場所にスタイルシートを配置して試してみましょう。
EMY
会議室デビュー日: 2005/09/27
投稿数: 4
投稿日時: 2005-09-27 12:53
インギ様 早速のお返事ありがとうございます。
ご指摘のとおり、別の場所にスタイルシートを移すと
希望どおりの動作になりました。
大変勉強になり、ありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)