JSPのアクセス制御を行いたい

このQ&Aのポイント
  • JSPのアクセス制御をする方法を教えてください。
  • Tomcat5.0.28とJ2SE1.4.2_06を使用してJSPのアクセス制御を行いたいです。
  • index.jspへのアクセスは許可し、welcome.jspへの直接アクセスは制限する方法を教えてください。
回答を見る
  • ベストアンサー

JSPのアクセス制御を行いたい

開発環境 Tomcat5.0.28 J2SE1.4.2_06 いつもお世話になっております。 以下のようなことをやろうと思っていますが、 可能でしょうか? 例として以下のようなファイルがあるとします。 testpj/index.jsp testpj/jsp/welcome.jsp testpj/WEB-INF/classes/LoginServlet index.jspには普通にアクセスできるようにして welcome.jspに対しては直接URIをたたいてもアクセス できないようにする。(http://localhost:8080/jsp/welcome.jsp) welcome.jspにアクセスするには index.jsp→LoginServlet経由で通り、 RequestDispatcherを使ってwelcome.jspにforwardさせる。 以上です。 よろしくお願い致します。

  • Java
  • 回答数3
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
  • cope1975
  • ベストアンサー率40% (4/10)
回答No.3

Tomcatの認証機能を利用してもJSPのアクセス制限ができます。 ID、パスワードをユーザごとに割り当てるようにすると割り当てる部分の仕組みも作らないといけないので大変ですが、ID、パスワード固定でよければ、簡単にできると思います。

参考URL:
http://www.javaroad.jp/opensource/js_tomcat9.htm

その他の回答 (2)

  • Bonjin
  • ベストアンサー率43% (418/971)
回答No.2

JSPやServletで処理をせずにFilterを使えば簡単にできそうな気がします。(やったことないですけど・・・) 他にも参考URLのような方法もありますので参考にしてみてはいかがでしょうか?

参考URL:
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=17068&forum=12
  • LancerVII
  • ベストアンサー率51% (1060/2054)
回答No.1

可能・不可能という答えを出すなら可能でしょう。 welcome.jspにLoginServletを経由したか判別させて 経由していなかったらindex.jspに飛ばしてしまう処理 を加えたらいかがでしょうか。

kazuoao
質問者

補足

どうもありがとうございます。 たしかにその方法でできますが、 各JSPやサーブレットにチェックを入れるのは 大変ですね・・・。 web.xmlあたりでできないんでしょうか。。

関連するQ&A

  • JSP/サーブレットについて

    JSP/サーブレットのMVCモデル風にJSP、サーブレットと、Beanを作成したばあい、サーバーに各プログラム?をどう配置し、プログラム内でのお互いの具体な指定の仕方がぴんときません。 指定の仕方とはたとえばサーブレットからJSPを呼ぶときgetServletContext().getRequestDispatcher("xxxxx/aaaaaa.jsp").forward(......); とコーディングするとおもいますが、この場合のxxxxxと実際にサーバーに配置する場合の関連です。 サーブレットは...../WEB-INF/classesに置くとか、Beanは...../WEB-INF/classes/パッケージ名に配置するのはわかります。JSPは通常どこにおくのでしょうか?たとえばC:\Tomcat\webapps\examplesなのか C:\Tomcat\webapps\examples\jspなのか? その場合プログラムないではどう指定するのが一般的なのでしょうか? 文章がわかりにくくてすいません。 開発環境はWindowsXP,Apache,Tomcatの場合です。

  • jspからjarを参照したいのですが

    /usr/local/tomcat/webapps/jsp-examples/の下にあるjspから jarを参照したいのですが、上手くいきません。 /usr/local/tomcat/webapps/jsp-examples/WEB-INF/classes/testPkgの 下にそのままクラスを置けば参照できます。 クラスには次のように宣言してありますし package jalanClass; jspの先頭でパッケージをインポートしてあります。 /usr/local/tomcat/webapps/jsp-examples/WEB-INF/classes上で jar cvf testPkg.jar testPkg jar cvf testPkg.jar testPkg/* などとして作ったjarを /usr/local/tomcat/webapps/jsp-examples/WEB-INF/classesに置いたのですが、NoClassDefFound エラーとなってしまいます。 CLASSPATHに/usr/local/tomcat/webapps/jsp-examples/WEB-NF/classes を通してみましたが駄目でした。 jarは今まで使った事がないので、根本的な事が分かっていないのかも知れませんが、教えてください。 宜しくお願いします。

    • ベストアンサー
    • Java
  • JSP URLに表示される拡張子 .jsp

    Servlet、JSPの開発を行っているのですが・・・ ページを表示する際のアドレスに「http://hogehoge/test.jsp」とJSPの拡張子が表示されると思うんですが、この拡張子を表示させずにアクセスする方法はあるでしょうか? サーバー:Apache 2.2.3 Tomcat:Apache Tomcat 5 OS:CentOS 5 自分で考えた方法 ・ApacheのProxy設定でJSPファイル一つずつ設定していく ・JSPファイルへのアクセスに対してもサーブレットを介して、dispacher.forward(request, response)を使う。 ※forwardだったらサーブレットのアドレスのままになったので。 どちらも結構面倒なんですが・・・他に方法はあるでしょうか?

    • ベストアンサー
    • Java
  • tomcat、apacheにてJSPが表示されない

    http://localhost:8080/ と入力したときにtomcatの画面がでるので tomcatの設定はできていると思っているのですが eclipseでJSPを作成し、 \Program Files\apache-tomcat-6.0.13\webapps\bihinkanri\WEB-INF にJSPファイルを置き、 http://localhost:8080/bihinkanri/Itiran.jsp とURLに入力したのですが HTTPステータス404が出てしまいました。 なぜでしょうか・・・。 初心者で原因がわかりません・・。 お願いします。

  • 正しいURL指定しているにもかかわらずJSPファイルにアクセスできず「404エラー」が発生

    サーバサイドJavaアプリに取組んでいる者です。 正しいURL指定しているにもかかわらずJSPファイルにアクセスできず 「404エラー」が発生します。 http://localhost:8080 のURL指定でTomcat画面にアクセスできることは確認済みです。 ですが、http://localhost:8080/project_name/login.jsp にアクセスすると上記エラー発生致します。 何が原因なのか検討つかず困っています。 ご回答やアドバイスお願いします。 ※開発環境 JDK1.5 eclipse3.2.1 Tomcat5.5 何卒宜しくお願いいたします。

  • JSPにおけるimportのパス?

    =========================== ■jakarta-tomcat-3.2.4 |_■webapps   |_■login     |_■bookmark     | |_□list.jsp ← 其の2     | |_■Web-inf     |   |_■classes     |   |_■atmakit     |     |_□MyDBAccess.class ← 其の3     |     |_□MyUtil.class ← 其の4     |_■Web-inf       |_■classes         |_□Servlet.class ← 其の1 =========================== 上記のようなディレクトリ構造のwebアプリケーションを作成中です。 其の1(Servlet.class)から其の2(list.jsp)を呼び出し、 その中で其の3(MyDBAccess.class)と其の4(MyUtil.class)をimportしたいのですが、 その場合の其の2(list.jsp)でのimportのパスはどのように指定したら良いのでしょうか? そもそもそんなこと可能なのでしょうか? 現在 import="java.sql.* ,atmarkit.MyDBAccess ,atmarkit.MyUtil" としてありますが、 ----------------------- org.apache.jasper.JasperException: Unable to compile class for JSPE:\jakarta-tomcat-3.2.4\work\localhost_8080%2Flogin\_0002fbookmark_0002flist_0002ejsplist_jsp_0.java:16: クラス atmarkit.MyDBAccess が import に見つかりません。 import atmarkit.MyDBAccess ; ^ E:\jakarta-tomcat-3.2.4\work\localhost_8080%2Flogin\_0002fbookmark_0002flist_0002ejsplist_jsp_0.java:17: クラス atmarkit.MyUtil が import に見つかりません。 import atmarkit.MyUtil; ^ ----------------------- というエラーが発生します。 これだけでは分からないかも知れませんが、必要な情報があれば仰ってください。 分かりにくい質問で申し訳ないですが、どなたかご教授下さい。

  • Tomcat内のJSPファイルを削除したい

    事情がありにTomcat内のフォルダを 見せなければならなくなりました。 他人にTomcat内のファルダにあるサーブレット(+Beans等のクラスファイル)と JSPのソースを見られない様にしたいです。 またその上で実行も可能にしたいのですがどうすればいいでしょうか? サーブレット等は Tomcat 7.0/webapps/MyWebSite/WEB-INF/classes以下の クラスファイル(.class)だけを残してJavaファイル(.java)を削除 するか、Eclipseでソースをエクスポートさせない様にすると Javaのソースは見れなくなると思いますが、 JSPの場合だと Tomcat 7.0/webapps/MyWebSite/以下の JSPファイル(.jsp)を削除して、 Tomcat 7.0/work/ 以下にあるJSPをサーブレットに変換後 コンパイルされたファイル(.class)を残すだけではダメな様です。 他に方法はあるでしょうか? サーブレットのソースを見られないだけでも良しと考えるべきでしょうか?

    • ベストアンサー
    • Java
  • サーブレットの実行について

    サーブレットの実行について http://www.hellohiro.com/servlet.htm こちらを参考しながら設定してみたのですが、 アクセスしても404エラーでページが表示されません。 Tomcatをインストールし http://localhost:8080 にてindex.jspが表示されることは確認できました。 Tomcat起動後 http://localhost:8080/manager/htmlからアプリケーションjavahelloを設定しました。 そして サーブレットファイル(A.class)を[Tomcatのフォルダ]\javahello\WEB-INF\classesの下にコピーし、 http://localhost:8080/javahello/servlet/A とブラウザにしてすると404エラーになってしまいます。 何か設定が足りていないのでしょうか? どなたか教えてください。よろしくお願いします。 環境 Windows XP Tomcat 5.5

    • ベストアンサー
    • Java
  • Tomcat 4.1での配備方法

    Tomcat 4.0で動作していたアプリがTomcat 4.1だと動作しません。配備方法が変わったんでしょうか? 導入時のサンプル/examplesのサーブレット/JSPは動きますが、そのContext要素の上に記述したContextのdocBaseで指定したパスのWEB-INF/classes/*.classがブラウザから呼び出せないのです(localhost:8080/.../servlet/*)。ちなみに、ドキュメントルート直下にindex.htmlをおいたところ、問題なく参照できました(localhost:8080/.../index.html)。 よろしくお願いします。

    • ベストアンサー
    • Java
  • JSPファイルを削除したいです。

    事情がありにTomcat内のフォルダを 見せなければならなくなりました。 他人にTomcat内のファルダにあるサーブレット(+Beans等のクラスファイル)と JSPのソースを見られない様にしたいです。 またその上で実行も可能にしたいのですがどうすればいいでしょうか? サーブレット等は Tomcat 7.0/webapps/MyWebSite/WEB-INF/classes以下の クラスファイル(.class)だけを残してJavaファイル(.java)を削除 するか、Eclipseでソースをエクスポートさせない様にすると Javaのソースは見れなくなると思いますが、 JSPの場合だと Tomcat 7.0/webapps/MyWebSite/以下の JSPファイル(.jsp)を削除して、 Tomcat 7.0/work/ 以下にあるJSPをサーブレットに変換後 コンパイルされたファイル(.class)を残すだけではダメな様です。 他に方法はあるでしょうか? サーブレットのソースを見られないだけでも良しと考えるべきでしょうか? http://ksrd.yahoo.co.jp/PAGE=DT_ACTIVE/OUTLINK=1/QID=12100680882/AID=236975321/SIG=12dep0io1/EXP=1359004059/*-http%3A//tomcat.apache.org/tomcat-7.0-doc/jasper-howto.html#Web_Application_Compilation 上記URLに何かそれらしき事が書いてあるのですがよく分かりません。 どうすればいいでしょうか? アクセスを制限する以外の方法でお願いします。

    • ベストアンサー
    • Java

専門家に質問してみよう