[java] Apache Shiro에서의 세션 간 공유 정보

Apache Shiro는 자바 기반의 보안 및 인증/인가 프레임워크로서, 세션 관리 기능을 제공합니다. 이러한 세션 관리 기능을 사용할 때, 종종 세션 간에 공유할 정보가 필요한 경우가 있습니다. 이번 블로그 포스트에서는 Apache Shiro에서 세션 간 공유 정보를 관리하는 방법에 대해 알아보겠습니다.

Session.setAttribute()를 사용하여 공유 정보 설정하기

Apache Shiro의 Session 인터페이스에는 setAttribute() 메서드가 있습니다. 이 메서드를 사용하여 세션 객체에 속성(공유 정보)을 설정할 수 있습니다. 아래의 예제 코드를 살펴보겠습니다.

import org.apache.shiro.SecurityUtils;
import org.apache.shiro.session.Session;

// 현재 사용자의 세션 가져오기
Session session = SecurityUtils.getSubject().getSession();

// 공유 정보 설정
session.setAttribute("userId", 12345);
session.setAttribute("username", "John Doe");

위의 코드에서는 setAttribute() 메서드를 사용하여 세션에 “userId”와 “username”이라는 이름의 속성을 설정하였습니다. 이제 다른 부분에서 세션에 저장된 이러한 공유 정보를 사용할 수 있습니다.

Session.getAttribute()를 사용하여 공유 정보 가져오기

세션에 저장된 공유 정보를 가져오기 위해서는 Session 인터페이스의 getAttribute() 메서드를 사용합니다. 아래의 예제 코드를 참고해보세요.

import org.apache.shiro.SecurityUtils;
import org.apache.shiro.session.Session;

// 현재 사용자의 세션 가져오기
Session session = SecurityUtils.getSubject().getSession();

// "userId" 속성 가져오기
Long userId = (Long) session.getAttribute("userId");

// "username" 속성 가져오기
String username = (String) session.getAttribute("username");

위의 코드에서는 getAttribute() 메서드를 사용하여 “userId”와 “username”이라는 이름의 속성을 가져와서 변수에 저장하였습니다.

주의사항

참고 자료:

이제 Apache Shiro에서 세션 간 공유 정보를 관리하는 방법에 대해 알게 되었습니다. 이러한 기능을 적절히 활용하여 보안 및 인증/인가 관련 작업을 보다 효과적으로 처리할 수 있습니다.