JForum의 SSO 통합 문제 해결
제가 jforum을 사용하는 상황을 대충 묘사해 주세요.응용서버:weblogic8.1 2.데이터베이스:oracle10g 3.이미 전자상거래 사이트가 하나 있는데 jforum과 간단한 통합을 통해 sso(단일 로그인 기능)를 제공해야 한다.4. 설명: 기존의 전자상거래 사이트 도메인 이름:http://www.123.comjforum 도메인 이름: www.123.com/forum, 전자상거래 사이트와 jfroum이 통일대서버와 같은 응용 서버에서 분리되면session이나 쿠키 방문 문제가 존재할 수 있습니다.5.JForum 버전: 2.1.8
다음은 쿠키를 사용하여 jforum과 전자상거래 사이트의 sso 통합을 진행하는 과정을 간단하게 소개한다. (1)net을 실현한다.jforum.sso 인터페이스
<!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
-->
public
class
CookieUserSSO implements SSO {
static
final Logger logger
=
Logger.getLogger(CookieUserSSO.
class
.getName());
public
String authenticateUser(RequestContext request) {
//
login cookie set by my web LOGIN application
Cookie cookieNameUser
=
ControllerUtils.getCookie(SystemGlobals .getValue(ConfigKeys.COOKIE_NAME_USER)); String username
=
null
;
if
(cookieNameUser
!=
null
) { username
=
cookieNameUser.getValue(); } logger.info(
"
cookie username=
"
+
username); System.
out
.println(
"
cookie username=
"
+
username);
return
username;
//
return username for jforum
//
jforum will use this name to regist database or set in HttpSession
}
public
boolean isSessionValid(UserSession userSession, RequestContext request) { Cookie cookieNameUser
=
ControllerUtils.getCookie(SystemGlobals .getValue(ConfigKeys.COOKIE_NAME_USER));
//
user cookie
String remoteUser
=
null
;
if
(cookieNameUser
!=
null
) { remoteUser
=
cookieNameUser.getValue();
//
jforum username
}
if
(remoteUser
==
null
&&
userSession.getUserId()
!=
SystemGlobals .getIntValue(ConfigKeys.ANONYMOUS_USER_ID)) {
//
user has since logged out
return
false
; }
else
if
(remoteUser
!=
null
&&
userSession.getUserId()
==
SystemGlobals .getIntValue(ConfigKeys.ANONYMOUS_USER_ID)) {
//
anonymous user has logged in
return
false
; }
else
if
(remoteUser
!=
null
&&
!
remoteUser.equals(userSession.getUsername())) {
//
not the same user (cookie and session)
return
false
; }
return
true
;
//
myapp user and forum user the same. valid user.
} }
(2) SystemGlobals를 수정합니다.properties의 구성: SystemGlobals 수정properties 파일의 속성 내용:
<!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
-->
authentication.type
=
sso sso.implementation
=
net.jforum.sso.CookieUserSSO sso.redirect
=
http:
//
www.123.com/login.jsp
//
cookie.name.user
=
123UserInfo
//
cookie ,
(3) 웹 응용 프로그램의 로그인 및 로그아웃 부분의 논리를 수정합니다.
<!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
-->
: ... Cookie cookie
=
new
Cookie(
"
springTourUserInfo
"
, sname); cookie.setMaxAge(
-
1
); cookie.setPath(
"
/
"
);
//
cookie
response.addCookie(cookie); ... : ...... Cookie cookie
=
new
Cookie(
"
springTourUserInfo
"
,
""
); cookie.setMaxAge(
0
);
//
delete the cookie.
cookie.setPath(
"
/
"
); response.addCookie(cookie); ......
(4) 전자상거래 사이트에 포럼 링크 추가: 포럼
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
AS를 통한 Module 개발1. ModuleLoader 사용 2. IModuleInfo 사용 ASModuleOne 모듈...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.