Webアプリケーションの全スタックの旅-Spring編(一)分布式Session
一、分布式SessionのRedis実現
マイクロサービスアーキテクチャの下では、分散Sessionをサポートする必要があり、分散SessionはRedisによって実現されてもよく、データベースによって実現されてもよく、本明細書ではRedisによって実現される。
二、Redisをインストールする
ダウンロード先:https://github.com/MSOpenTech... 対応するバージョンのインストールを選択します。
インストールディレクトリに入り、Redisを起動します。
三、pomファイル
ymlの設定は以下の通りです
configの構成は以下の通りです。
ログイン成功後にSession情報を設定します。コードは以下の通りです。
ログインに成功していません。Sessionを設定するには、エラーページにジャンプする必要があります。コードの例は以下の通りです。
end.
サイト:http://javashizhan.com/
WeChat公式アカウント:
知識の星に参加して、討論に参加して、更に多くの実戦のコードは分かち合います!https://t.zsxq.com/RNzfi2j
マイクロサービスアーキテクチャの下では、分散Sessionをサポートする必要があり、分散SessionはRedisによって実現されてもよく、データベースによって実現されてもよく、本明細書ではRedisによって実現される。
二、Redisをインストールする
ダウンロード先:https://github.com/MSOpenTech... 対応するバージョンのインストールを選択します。
インストールディレクトリに入り、Redisを起動します。
三、pomファイル
org.springframework.boot
spring-boot-starter-data-redis
org.springframework.session
spring-session-data-redis
org.apache.commons
commons-pool2
四、yml配置ymlの設定は以下の通りです
# Redis
spring.redis.host=localhost
# Redis
spring.redis.port=6379
五、Config配置configの構成は以下の通りです。
@Configuration
@EnableRedisHttpSession(maxInactiveIntervalInSeconds = 86400 * 30)
public class SessionConfig {
}
六、ログイン後にSessionを設定するログイン成功後にSession情報を設定します。コードは以下の通りです。
@Component
@RestController
public class LoginController {
@RequestMapping("/login")
public String login(@RequestBody String userId, HttpSession session) throws Exception {
session.setAttribute(Constants.SESSION_USER_ID, userId);
return "Login success.";
}
}
七、Session認証フィルタログインに成功していません。Sessionを設定するには、エラーページにジャンプする必要があります。コードの例は以下の通りです。
@Configuration
public class SessionFilter extends OncePerRequestFilter {
@Override
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain)
throws ServletException, IOException {
if (isNeedAuth(request)) {
Object userIdObject = request.getSession().getAttribute(Constants.SESSION_USER_ID);
if (null == userIdObject) {
response.sendRedirect("/errorPage");
}
}
filterChain.doFilter(request, response);
}
}
以上はRedis Sessionのすべてのステップを実現するために、完全なインスタンスコードのスキャンコードはWeChat公衆番号に加入し、返信:webfullstack、倉庫アドレスを取得する。end.
サイト:http://javashizhan.com/
WeChat公式アカウント:
知識の星に参加して、討論に参加して、更に多くの実戦のコードは分かち合います!https://t.zsxq.com/RNzfi2j