GlassFish v3.1.2.2でTRACEメソッドを許可しない

デフォルトで許可しないようになっていますが備忘録的に一応書いておきます。 asadminコマンドで設定します。

asadmin set configs.config.server-config.network-config.protocols.protocol.http-listener-1.http.trace-enabled=false

もちろんGUI管理コンソールからも設定可能で、構成 -> server-config -> ネットワーク構成 -> プロトコル -> http-listener-1 の「HTTP」タブを開いてトレースのチェックを外します。

この状態でTRACEリクエストを投げると405 Method Not Allowedが返ってきます。

GlassFish 3.1.2.2でCookieにsecure属性とhttpOnly属性をつける

何もしなくてもhttpOnly属性は付いてる感じですが、それはGrizzlyの機能なのでしょうかね。 それはそれでまた調べておくことにします。

プログラムで設定する

javax.servlet.SessionCookieConfig を使用します。

package example;

import java.util.Set;
import javax.servlet.ServletContainerInitializer;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.SessionCookieConfig;

public class CookieSettings implements ServletContainerInitializer {

    @Override
    public void onStartup(Set<Class<?>> c, ServletContext ctx) throws ServletException {
        SessionCookieConfig scc = ctx.getSessionCookieConfig();
        scc.setHttpOnly(true);
        scc.setSecure(true);
    }
}

GlassFish Server Deployment Descriptorで設定する

cookie-properties - Oracle GlassFish Server 3.1 Application Deployment Guide を参照。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE glassfish-web-app PUBLIC
  "-//GlassFish.org//DTD GlassFish Application Server 3.1 Servlet 3.0//EN"
  "http://glassfish.org/dtds/glassfish-web-app_3_0-1.dtd">
<glassfish-web-app error-url="">
 <session-config>
  <cookie-properties>
   <property name="cookieSecure" value="true"/>
   <property name="cookieHttpOnly" value="true"/>
  </cookie-properties>
 </session-config>
</glassfish-web-app>