JForum의 SSO 통합 문제 해결

JForum포럼의 기본적인 상황은 여기서 소개하지 않겠습니다. 공식 사이트: www.jforum.net.jforum 포럼 시스템의 설치도 간단합니다. 공식 문서나 구글에 따라 기본적으로 해결할 수 있습니다. 여기서 소개하지 않겠습니다.
제가 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) 전자상거래 사이트에 포럼 링크 추가: 포럼

좋은 웹페이지 즐겨찾기