2013年6月21日金曜日

サーブレットコンテナへのアクセス制限方法

Tomcat、JBossなどのServletコンテナを使ったWebアプリケーションを開発する際に、jspファイルには外部からアクセスさせないようにしたい場合がある。(ServletでJSPに入れる値をセットするなど)

URLはServletを使い、ディスパッチさせることにより、JSPファイルを隠すことは可能ですが、直接JSPファイルをアクセスさせると見えてしまいます。 そういう要件が来た時の設定方法をメモとして記載したいと思います。

前提条件

  • Windows XP Pro 32bit
  • JBoss As 7.1.1 final
  • Servlet3.0

実装方法(web.xmlの編集)

web.xmlにsecurity-constraintというタグをつけその中に記載します。
<auth-constraint/>というタグはアクセス許可をするロールを定義します。
何も記載しないと、許可しないという設定になります。

ここでの例では、/jsp/以下のjspと/test.jspはアクセスさせないという設定になります。

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns="http://java.sun.com/xml/ns/javaee" xmlns:jsp="http://java.sun.com/xml/ns/javaee/jsp" 
    xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  <security-constraint>
    <web-resource-collection>
      <web-resource-name>jsp-file</web-resource-name>
      <url-pattern>/jsp/*</url-pattern>
      <url-pattern>/test.jsp</url-pattern>
    </web-resource-collection>
    <auth-constraint/>
  </security-constraint>
</web-app>

参考文献

Written By : // 23:41
Category:

0 コメント:

コメントを投稿

 

About

このブログは筆者の備忘録として色々記載しています。

Blog Archive

Powered by Blogger.