Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
11
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

Spring Bootでセッションクッキーの名前を変える

セッションクッキーとは、JavaのwebappでデフォルトだとJSESSIONIDってなってるやつ。
以下のように、ServletContextInitializerを返す@Beanを定義すれば良い。eiryu.sessionと言う名前に変えている。
単なる設定なので、Spring Frameworkでも同じように変更出来ると思われる。
プロパティで出来るかと思って色々漁ってみたが、見つからなかった。

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.context.embedded.ServletContextInitializer;
import org.springframework.context.annotation.Bean;


@SpringBootApplication
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }

    @Bean
    public ServletContextInitializer servletContextInitializer() {
        return servletContext -> servletContext.getSessionCookieConfig().setName("eiryu.session");
    }

}

使い道

セキュリティ対策。
JSESSIONIDだと一発でJavaのwebappとバレる。PHPSESSIDとかにしてPHP webappと見せかけるとかも考えられる。
尚、Spring MVCはコントローラのRequestMappingの定義を/listとかにしていれば/list.phpのリクエストも受け付けることが出来るので偽装は簡単。/list/とか書くとダメ。

デフォルト厨なので、本当はあんまりカスタムしない方が好きなのだが、セキュリティはいかにデフォルトから離れた定義にしてあるかが重要だと思うので、割りと大事かもしれん。

あとは、webapp作る上での遊び心かな。。

参考

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
11
Help us understand the problem. What are the problem?