<?xml version="1.0" encoding="UTF-8"?>

<web-app xmlns="https://jakarta.ee/xml/ns/jakartaee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee
                      https://jakarta.ee/xml/ns/jakartaee/web-app_5_0.xsd"
  version="5.0"
  metadata-complete="true">

<!-- 正式な情報は、持っていませんが、並び順を厳密にしなくても良くなったそうです。 -->
<!-- ただし、Tomcatでは互換性の関係で、未対応との事ですが、現時点で対応できているみたいです。 -->

<!-- 通常、SYSTEM_IDは、ｺﾝﾃｷｽﾄﾌｫﾙﾀﾞを大文字にした値が使われます。
	<context-param>
		<param-name>SYSTEM_ID</param-name>
		<param-value></param-value>
	</context-param>
-->

<!-- 使用するフィルターは、{@SYS.USE_フィルター名の大文字} に、true をセットしています。 -->

<!-- Webアプリケーションへのアクセスを制御します。
	<filter>
		<filter-name>AccessStopFilter</filter-name>
		<filter-class>org.opengion.hayabusa.filter.AccessStopFilter</filter-class>
		<init-param>
			<param-name>startTime</param-name>
			<param-value>070000</param-value>
		</init-param>
		<init-param>
			<param-name>stopTime</param-name>
			<param-value>070000</param-value>
		</init-param>
		<init-param>
			<param-name>filename</param-name>
			<param-value>jsp/custom/stopFile.html</param-value>
		</init-param>
	</filter>

	<filter-mapping>
		<filter-name>AccessStopFilter</filter-name>
		<url-pattern>/jsp/*</url-pattern>
	</filter-mapping>
-->

<!-- ZIP圧縮フィルタです。パラメータは、ipAddress と debug を指定できます。
	<filter>
		<filter-name>GZIPFilter</filter-name>
		<filter-class>org.opengion.hayabusa.filter.GZIPFilter</filter-class>
		<init-param>
			<param-name>ipAddress</param-name>
			<param-value>192.168.,127.0.0.1</param-value>
		</init-param>
		<init-param>
			<param-name>debug</param-name>
			<param-value>false</param-value>
		</init-param>
	</filter>

	<filter-mapping>
		<filter-name>GZIPFilter</filter-name>
		<url-pattern>/jsp/*</url-pattern>
	</filter-mapping>
-->

<!-- HTMLデモ画面(紙芝居)を作成するフィルタクラスです。
	<filter>
		<filter-name>FileFilter</filter-name>
		<filter-class>org.opengion.hayabusa.filter.FileFilter</filter-class>
		<init-param>
			<param-name>saveDir</param-name>
			<param-value>filetemp/DIR/</param-value>
		</init-param>
	</filter>

	<filter-mapping>
		<filter-name>FileFilter</filter-name>
		<url-pattern>/jsp/*</url-pattern>
	</filter-mapping>
-->

<!-- URLチェックフィルタで、useURLCheck="true"が指定されたリンクURL以外を拒否することができます。
	<filter>
		<filter-name>URLCheckFilter</filter-name>
		<filter-class>org.opengion.hayabusa.filter.URLCheckFilter</filter-class>
		<init-param>
			<param-name>filename</param-name>
			<param-value>jsp/custom/refuseAccess.html</param-value>
		</init-param>
		<init-param>
			<param-name>debug</param-name>
			<param-value>true</param-value>
		</init-param>
		<init-param>
			<param-name>ignoreURL</param-name>
			<param-value></param-value>
		</init-param>
	</filter>

	<filter-mapping>
		<filter-name>URLCheckFilter</filter-name>
		<url-pattern>/jsp/*</url-pattern>
	</filter-mapping>
-->

<!-- 内部URLの場合はハッシュ化、外部URLの場合は暗号化に適用されます。
	<filter>
		<filter-name>URLHashFilter</filter-name>
		<filter-class>org.opengion.hayabusa.filter.URLHashFilter</filter-class>
		<init-param>
			<param-name>filename</param-name>
			<param-value>jsp/custom/refuseAccess.html</param-value>
		</init-param>
		<init-param>
			<param-name>debug</param-name>
			<param-value>false</param-value>
		</init-param>
	</filter>

	<filter-mapping>
		<filter-name>URLHashFilter</filter-name>
		<dispatcher>REQUEST</dispatcher>
		<url-pattern>*.jsp</url-pattern>
	</filter-mapping>
-->

<!-- このフィルタは、サーバー応答のExpires HTTPヘッダーとCache-Control HTTPヘッダーのmax-ageディレクティブの設定をCache-Controlします。
	<filter>
		<filter-name>ExpiresFilter</filter-name>
		<filter-class>org.apache.catalina.filters.ExpiresFilter</filter-class>
		<init-param>
			<param-name>ExpiresByType image</param-name>
			<param-value>access plus 1 months</param-value>
		</init-param>
		<init-param>
			<param-name>ExpiresByType text/css</param-name>
			<param-value>access plus 1 months</param-value>
		 </init-param>
		 <init-param>
			<param-name>ExpiresByType application/javascript</param-name>
			<param-value>access plus 1 months</param-value>
		</init-param>
		 <init-param>
			<param-name>ExpiresByType application/pdf</param-name>
			<param-value>access plus 1 months</param-value>
		</init-param>
	</filter>

	<filter-mapping>
		<filter-name>ExpiresFilter</filter-name>
		<url-pattern>/jsp/common/*</url-pattern>
		<url-pattern>/jsp/menu/*</url-pattern>
		<url-pattern>/jsp/image/*</url-pattern>
		<dispatcher>REQUEST</dispatcher>
	</filter-mapping>
-->

<!-- 静的ﾌｧｲﾙ(.css , .js , .gif , .png) に、Cache-Control :private,max-age=31536000,immutable を設定します -->
	<filter>
		<filter-name>CacheControlFilter</filter-name>
		<filter-class>org.opengion.hayabusa.filter.CacheControlFilter</filter-class>
		<init-param>
			<param-name>debug</param-name>
			<param-value>false</param-value>
		</init-param>
	</filter>

	<filter-mapping>
		<filter-name>CacheControlFilter</filter-name>
		<url-pattern>/*</url-pattern>
		<dispatcher>REQUEST</dispatcher>
	</filter-mapping>

<!-- コンテキスト(Webアプリケーション)の起動/シャットダウンを監視するリスナーです。 -->
	<listener>
		<listener-class>
			org.opengion.hayabusa.common.HybsContextListener
		</listener-class>
	</listener>

<!-- セッションの作成/破棄を監視するリスナーです。 -->
	<listener>
		<listener-class>
			org.opengion.hayabusa.common.HybsSessionListener
		</listener-class>
	</listener>

<!-- 使用するサーブレットは、{@SYS.USE_サーブレット名の大文字} に、true をセットしています。 -->

<!-- サーバー管理情報を取得するAdminサーブレットです。 -->
	<servlet>
		<servlet-name>admin</servlet-name>
		<servlet-class>org.opengion.hayabusa.servlet.HybsAdmin</servlet-class>
	</servlet>

	<servlet-mapping>
		<servlet-name>admin</servlet-name>
		<url-pattern>/jsp/admin</url-pattern>
	</servlet-mapping>

<!-- FORM認証で、認証済みの場合、j_security_check に飛ばされてエラーになるので、強制的に sendRedirect する。-->
	<servlet>
		<servlet-name>jsecurity</servlet-name>
		<servlet-class>org.opengion.hayabusa.servlet.JSecurityCheckServlet</servlet-class>
		<init-param>
			<param-name>forwardURL</param-name>
			<param-value>/jsp/index.jsp</param-value>
		</init-param>
	</servlet>

	<servlet-mapping>
		<servlet-name>jsecurity</servlet-name>
		<url-pattern>/jsp/j_security_check</url-pattern>
	</servlet-mapping>

<!-- サーバー管理ファイルをダウンロードする場合に使用する、サーブレットです。 -->
	<servlet>
		<servlet-name>fileDownload</servlet-name>
		<servlet-class>org.opengion.hayabusa.servlet.FileDownload</servlet-class>
	</servlet>

	<servlet-mapping>
		<servlet-name>fileDownload</servlet-name>
		<url-pattern>/jsp/fileDownload</url-pattern>
	</servlet-mapping>

<!-- WebDAVレベル2のサポートを追加するサーブレットです。
	<servlet>
		<servlet-name>webdav</servlet-name>
		<servlet-class>org.apache.catalina.servlets.WebdavServlet</servlet-class>
		<init-param>
			<param-name>debug</param-name>
			<param-value>0</param-value>
		</init-param>
		<init-param>
			<param-name>listings</param-name>
			<param-value>true</param-value>
		</init-param>
		<init-param>
			<param-name>readonly</param-name>
			<param-value>false</param-value>
		</init-param>
		<load-on-startup>1</load-on-startup>
	</servlet>

	<servlet-mapping>
		<servlet-name>webdav</servlet-name>
		<url-pattern>/webdav/*</url-pattern>
	</servlet-mapping>
-->

<!-- 外部からキーと値を投げて処理をさせるサーブレットです。 -->
	<servlet>
		<servlet-name>remoteControl</servlet-name>
		<servlet-class>org.opengion.hayabusa.servlet.RemoteControlServlet</servlet-class>
		<!-- 7.2.9.4 (2020/11/20) ﾌｧｲﾙｱｸｾｽの制約。 指定がない場合は、処理しない -->
		<init-param>
			<param-name>filePattern</param-name>
			<param-value>.*opengionV8.*|c:[/\\]temp[/\\].*</param-value>
		</init-param>
	</servlet>

	<servlet-mapping>
		<servlet-name>remoteControl</servlet-name>
		<url-pattern>/servlet/remoteControl</url-pattern>
	</servlet-mapping>

<!-- 画像イメージに、文字列を動的に合成作成する、サーブレットです。
	<servlet>
		<servlet-name>makeImage</servlet-name>
		<servlet-class>org.opengion.hayabusa.servlet.MakeImage</servlet-class>
		<init-param>
			<param-name>imageFile</param-name>
			<param-value>C:/opengion/uap/webapps/gf/jsp/GF7010/mark.png</param-value>
		</init-param>
	</servlet>

	<servlet-mapping>
		<servlet-name>makeImage</servlet-name>
		<url-pattern>/jsp/makeImage</url-pattern>
	</servlet-mapping>
-->

<!-- Webアプリケーション用のCGI呼び出しサーブレットです。
	<servlet>
		<servlet-name>php</servlet-name>
		<servlet-class>org.apache.catalina.servlets.CGIServlet</servlet-class>
		<init-param>
			<param-name>debug</param-name>
			<param-value>6</param-value>
		</init-param>
		<init-param>
			<param-name>cgiPathPrefix</param-name>
			<param-value>php</param-value>
		</init-param>
		<init-param>
			<param-name>executable</param-name>
			<param-value>h:/program/php/php-cgi.exe</param-value>
		</init-param>
		<load-on-startup>5</load-on-startup>
	</servlet>

	<servlet-mapping>
		<servlet-name>php</servlet-name>
		<url-pattern>/php/*</url-pattern>
	</servlet-mapping>
-->

<!-- GF のみ、/WEB-INF/ ﾌｫﾙﾀﾞの下に、置いています。 -->
<!-- 配布時は、META-INF の下において、hayabusaX.X.X.X.jar と一緒に配布しているため -->
<!-- web.xml の このセクションは、コメントアウトして置いてください。 -->
	<jsp-config>
		<taglib>
			<taglib-uri>hybs-taglib.tld</taglib-uri>
			<taglib-location>/WEB-INF/hybs-taglib.tld</taglib-location>
		</taglib>
	</jsp-config>

<!-- 非認証エリア設定 -->
	<security-constraint>
		<web-resource-collection>
			<web-resource-name>Non-secure resources</web-resource-name>
			<url-pattern>/jsp/nonAuth/*</url-pattern>
			<url-pattern>/servlet/remoteControl</url-pattern>	<!-- FORM認証時のリソースクリア -->
		</web-resource-collection>
	</security-constraint>

<!-- 認証エリア設定 -->
	<security-constraint>
		<web-resource-collection>
			<web-resource-name>Protected JSP Area</web-resource-name>
			<url-pattern>/jsp/*</url-pattern>
			<url-pattern>/filetemp/*</url-pattern>
			<url-pattern>/help/*</url-pattern>
			<url-pattern>/whatsnew/*</url-pattern>
			<url-pattern>/servlet/*</url-pattern>
			<url-pattern>/logs/*</url-pattern>
			<url-pattern>/log/*</url-pattern>
<!--		<url-pattern>/webdav/filetemp/*</url-pattern>	-->
		</web-resource-collection>
		<auth-constraint>
			<role-name>*</role-name>
		</auth-constraint>
<!--
		<user-data-constraint>
			<transport-guarantee>CONFIDENTIAL</transport-guarantee>
		</user-data-constraint>
-->
	</security-constraint>

<!-- 一旦、すべてのエリアのアクセスを拒否します。 -->
	<security-constraint>
		<web-resource-collection>
			<web-resource-name>Default Protected Area</web-resource-name>
			<url-pattern>/</url-pattern>
		</web-resource-collection>
		<auth-constraint>
			<role-name></role-name>
		</auth-constraint>
	</security-constraint>

	<security-constraint>
		<web-resource-collection>
			<web-resource-name>Protected Servlet</web-resource-name>
			<url-pattern>/servlet/*</url-pattern>
		</web-resource-collection>
		<auth-constraint>
			<role-name>manager</role-name>
		</auth-constraint>
	</security-constraint>

<!-- BASIC認証
	<login-config>
		<auth-method>BASIC</auth-method>
		<realm-name>Web App</realm-name>
	</login-config>
-->

<!-- DIGEST認証 (サンプル)
	<login-config>
		<auth-method>DIGEST</auth-method>
		<realm-name>Authentication required</realm-name>
	</login-config>
-->

<!-- FORM認証 (サンプル) -->
	<login-config>
		<auth-method>FORM</auth-method>
		<realm-name>DBDEF Web App</realm-name>
		<form-login-config>
			<form-login-page>/jsp/nonAuth/login.jsp</form-login-page>
			<form-error-page>/jsp/nonAuth/login.jsp</form-error-page>
		</form-login-config>
	</login-config>

<!-- Security roles referenced by this web application -->
	<security-role>
		<role-name>*</role-name>
	</security-role>
	<security-role>
		<role-name></role-name>
	</security-role>
	<security-role>
		<role-name>manager</role-name>
	</security-role>

</web-app>
