- PR -

javaScriptを宣言的セキュリティを効かせて使いたい

1
投稿者投稿内容
優子
常連さん
会議室デビュー日: 2004/03/26
投稿数: 39
投稿日時: 2004-10-11 02:38
今日は、優子です。
上記の件についてお伺いしたいことがあります。

web.xmlで、下記のように宣言的セキュリティを使って、
<security-constraint>
<web-resource-collection>
<web-resource-name>securitytest</web-resource-name>
<url-pattern>/pages/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>never_access</role-name>
</auth-constraint>

</security-constraint>

/pages/ 以下のファイルをURL直打ちで参照できないようにしています。
そのpages直下にjavaScriptファイル(.jsファイル)を置いているのですが、そのファイルをjspファイルで、
<head>
<script language="JavaScript" src="pages/loginCheck.js"></script>
</head>

とよびだそうとすると、htmlページのエラー(オブジェクトを指定してください)が発生してしまいます。

宣言的セキュリティを止めると、エラーは外れるのですが、それだと/pages直下のファイルが直接参照されてしまいます。

jsp内に直接javaScriptは書かずに、あくまで外部からjavaScriptを呼ぶ方法を用いて(<head>
<script language="JavaScript" src="pages/loginCheck.js"></script>
</head>)、宣言的セキュリティを通用させたままjavaScriptを呼び出す方法はありませんでしょうか?皆様のご意見をお待ちしています。よろしくお願いいたします。
masaka
常連さん
会議室デビュー日: 2003/08/04
投稿数: 27
お住まい・勤務地: 東京
投稿日時: 2004-10-11 10:10
よく考えてみてください。JavaScriptは誰が実行するのでしょうか?
ちょっと考えればわかると思いますが、それはクライアントであるブラウザです。

ブラウザが参照できないJavaScriptを実行することができるでしょうか?もちろんできません。当然、web.xmlで参照不可にしたJavaScriptも実行できないわけです。

念のためブラウザがHTMLを読み込むときの挙動を書いておきます。

1.HTTP通信でHTMLをサーバから取得する。
2.取得したHTML内にJavaScriptや画像などがあった場合そのファイルをHTTP通信で取得する。

ひとつのHTMLを見るためにいくつものHTTP通信が発生していること、JavaScriptはブラウザ上で実行されることを忘れないでください。
未記入
会議室デビュー日: 2004/08/21
投稿数: 3
投稿日時: 2004-10-11 12:36
pagesフォルダ以下のjsファイルを参照されたくないのなら、それは無理な話に思えます。
pagesフォルダ以下のアクセス制限の目的がjspファイルの参照を止めるためということなら、*.jsファイルだけ見える場所に置けばいいかと思います。
優子
常連さん
会議室デビュー日: 2004/03/26
投稿数: 39
投稿日時: 2004-10-11 14:18
masakaさん。未記入の方。お返事ありがとうございました。

javaScriptが起動されるタイミングをちゃんと理解していませんでした。申し訳ないです。
javaScriptを直接jspに記述する方法しかないという事で対応したいと思います。どうもありがとうございました。
優子
常連さん
会議室デビュー日: 2004/03/26
投稿数: 39
投稿日時: 2004-10-11 14:19
masakaさん。未記入の方。お返事ありがとうございました。

javaScriptが起動されるタイミングをちゃんと理解していませんでした。申し訳ないです。
javaScriptを直接jspに記述する方法しかないという事で対応したいと思います。どうもありがとうございました。
おかもと
大ベテラン
会議室デビュー日: 2003/06/08
投稿数: 182
投稿日時: 2004-10-12 09:57
/pages/jspと/pages/jsみたいにディレクトリを分けて、
前者のみ参照禁止にすればよいのでは?
Javascriptのファイルも直打ちされたくない理由が有れば別ですが・・・。
1

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