SpringSessionのStrategy戦略方式(簡略、補足待ち)
1227 ワード
SessionRepositoryの役割:セッションが確立されると、Sessionが作成され、ユーザーIDなどのユーザー情報がSessionに保存され、SessionRepositoryによってSessionが永続化されます.
HeaderHttpSessionStrategyの役割:HTTPリクエストヘッダにセッションIdを設定し、リクエストヘッダからセッションIdを取得します.ただし、プロジェクトがこの方式を使用する場合、sessionidはクッキーに設定されないため、ログインインタフェースを呼び出すと、そのユーザは本当にログインに成功せず、
CookieHttpSessionStrategyの役割:sessionIdをcookieによって伝達することを提供する.クッキーパラメータ名デフォルトはSESSION
HeaderHttpSessionStrategyの役割:HTTPリクエストヘッダにセッションIdを設定し、リクエストヘッダからセッションIdを取得します.ただし、プロジェクトがこの方式を使用する場合、sessionidはクッキーに設定されないため、ログインインタフェースを呼び出すと、そのユーザは本当にログインに成功せず、
UserModel userModel = (UserModel) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
というコードを実行すると401エラーを報告し、そのユーザがログインしていないことを説明する権限がない @Bean
public HttpSessionStrategy httpSessionStrategy() {
HeaderHttpSessionStrategy httpSessionStrategy = new HeaderHttpSessionStrategy();
if (headerName == null)
headerName = "Session";
httpSessionStrategy.setHeaderName(headerName);
return httpSessionStrategy;
}
CookieHttpSessionStrategyの役割:sessionIdをcookieによって伝達することを提供する.クッキーパラメータ名デフォルトはSESSION
@Bean
public HttpSessionStrategy httpSessionStrategy() {
CookieHttpSessionStrategy httpSessionStrategy = new CookieHttpSessionStrategy();
if (cookieName == null)
cookieName = "Session";
httpSessionStrategy.setCookieName(cookieName);
return httpSessionStrategy;
}