2017-12-20 27 views
0

나는 시큐 보안 프레임 워크에서 생성 한 세션 ID 쿠키를 가지고 있으며 요청시 전달됩니다. 세션 ID의 유효성을 검사 할 수있는 방법이 시로와 함께 유효합니까?세션 ID를 사용하여 Apache Shiro와 세션 인증

아래 코드로 세션 ID를 전달하려고합니다.

Subject requestedSubject = new Subject.Builder().sessionId(sessionId).buildSubject(); 
return !(requestedSubject.getSession(false) == null); 

아래의 예외

을 얻는 것은

는 "exceptionClass": "클래스 java.lang.IllegalArgumentException가" "RESTMethod", "메시지"를 "GET": "SessionKey는 호환 HTTP해야합니다 구현 ","rootCausePointClass. " "org.apache.shiro.web.session.mgt.ServletContainerSessionManager " "rootCausePointMethod ":"하는 getSession "

뭐든지 잘못되었거나 세션 ID의 유효성을 검사하는 다른 방법이 있습니다.

+0

여기 좀 더 배우려고하는 것처럼 보입니다. 조금 더 많은 상황이 필요할 수도 있습니다. 상자 밖에서, Shiro의 웹 모듈이 이것을 처리합니다. –

답변

0

세부 사항을 알려주지 않았으므로 정확한 질문은 분명하지 않습니다.

시로 (Shiro)는 세션과 세션 유효성 검사를 관리합니다. 이것은 프레임 워크에 내장되어 있으므로 시로 (shiro)가 세션을 확인/유효성 확인하는 방법에 대해 신경 쓸 필요가 없습니다.

질문에서 분명하지 않은 또 다른 한 가지는 기술 스택입니다. 웹 응용 프로그램입니까? Spring과 같은 다른 제 3 자 라이브러리가 있습니까? 여기에 guide이 있습니다.

세션 (유효한 세션조차도)은 사용자가 로그인했거나 인증되었음을 나타내지 않습니다. 일단

User user = (User) currentUser.getPrincipal(); 

:

다음
Subject currentUser = SecurityUtils.getSubject(); 

이가 "알려진"사용자인지 여부를 확인하기 위해, 널이 아닌 교장이 있음을 확인합니다

시로에서 현재 사용자를 얻으려면 다시 말하지만, 귀하의 질문은 모호 합니다만 올바른 방향으로 인도 할 수 있기를 바랍니다.