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>


0 コメント:
コメントを投稿