简体中文
会员名称: 登入密码: [Register] 注册 忘记密码 启用我的帐号
 
JForum 单点登陆例子  XML
论坛首页 »开源项目» JForum论坛
发表人 内容
wu_net2008


注册时间: 2008-07-04 09:27:45
文章: 10
离线

一个小问题,ServiceTicketValidator的setService方法设定的URL是做什么用的呢?顺便再问一句,为什么我在SystemGlobals.properties里配完sso的相关项以后在首页上的“登入”消失了呢?我觉得SSO应该不能影响原有功能阿。CasUserSSO类在什么时候被执行呢?为什么我这边SSO的这个实现类只在第一次访问的时候执行了一次,之后再从CAS那边登陆回来之后就不执行了呢?

这篇文章被编辑了 2 次. 最近一次更新是在 2008-07-29 10:15:29

wu_net2008


注册时间: 2008-07-04 09:27:45
文章: 10
离线

现在已经可以拿到ticket并登陆,但出现了新问题,登陆之后点击到其他页面之后就又变成未登陆状态,这是为什么呢?登陆的时候应该已经将user对象add到SessionFacade里去了呀,怎么会丢失呢?还有就是之前的问题,SSO的实现类为什么只在加载完后的第一次访问时执行了一次之后就再也不执行了?我感觉SSO应该是类似Filter的东西啊,求助中!~!~

这篇文章被编辑了 1 次. 最近一次更新是在 2008-07-30 10:03:15

pinke

[Avatar]

注册时间: 2006-11-18 22:27:35
文章: 919
离线
性别: 男
出生:1982-06-18

SSO,单点登陆,单点所以.....

JForum使用SSO后,他把用户的登陆/注册/等用户管理都归外部托管.

享我所想,乐你所乐
[MSN] Tencent QQ:44020567
iceworld


注册时间: 2008-09-12 14:22:01
文章: 4
离线

jxhty wrote:通过参考www.jforum.net上的例子已经实现的SSO。
我采用SUN JES作为认证中心,集成了jforum。
集成部分的代码给大家分享一下。

请问这个例子如何使用?能具体说一下吗?
另外这个例子中需要导入import com.wiscom.is.*;
这个包在那里?是干什么用的?
lybvt


注册时间: 2009-03-30 19:49:13
文章: 4
离线

我想把登录框拉到我的一个主页上去 具体怎么做哈
kchen7979@sina.com


注册时间: 2009-08-19 18:34:24
文章: 5
离线

我的登陆LoginAction

package com.xxxx.action;


public class LoginAction extends Action {

IUserDao userdao;

public IUserDao getUserdao() {
return userdao;
}

public void setUserdao(IUserDao userdao) {
this.userdao = userdao;
}

public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
LoginForm loginForm = (LoginForm) form;

User user = userdao.findUserByName(loginForm.getUsername());
if(user==null || loginForm.getPassword().equalsIgnoreCase(user.getPassword()){
return mapping.findForward("logout");
}
request.getSession().setAttribute("username", user.getName());

Cookie jfcookie = new Cookie("jforumSSOCookieNameUser",user.getName());
jfcookie.setMaxAge(5*60);
response.addCookie(jfcookie);

//测试
Cookie cookie[] = request.getCookies();
for(int i=0;i<cookie.length;i++){
if(cookie[i].getValue().equalsIgnoreCase(user.getName()))
System.out.println("username:"+cookie[i].getValue());
}

return mapping.findForward("login");
}
}



实现的sso接口的MyUserSSO
package net.jforum.sso;

import javax.servlet.http.Cookie;

import net.jforum.ControllerUtils;
import net.jforum.context.RequestContext;
import net.jforum.entities.UserSession;
import net.jforum.util.preferences.ConfigKeys;
import net.jforum.util.preferences.SystemGlobals;

public class MyUserSSO implements SSO
{
public String authenticateUser(RequestContext request)
{
Cookie myCookie = ControllerUtils.getCookie("jforumSSOCookieNameUser");

String username = null;
if (myCookie != null){
username = myCookie.getValue();
System.out.println("cookie_name:"+myCookie.getName());
System.out.println("cookie value:"+myCookie.getValue());
}

if (myCookie == null || username.trim().equals("")) {
return null;
}
return username;
}

public boolean isSessionValid(UserSession userSession, RequestContext request)
{
Cookie myCookie = ControllerUtils.getCookie("jforumSSOCookieNameUser");
String remoteUser = null;

if(myCookie!=null){
remoteUser = myCookie.getValue();
}

// user has since logged out
if (remoteUser == null && userSession.getUserId() != SystemGlobals.getIntValue(ConfigKeys.ANONYMOUS_USER_ID)) {
return false;
}
// user has since logged in
else if (remoteUser != null
&& userSession.getUserId() == SystemGlobals.getIntValue(ConfigKeys.ANONYMOUS_USER_ID)) {
return false;
}
// user has changed user
else if (remoteUser != null && !remoteUser.equals(userSession.getUsername())) {
return false;
}

return true;
}
}







但是我在MyUserSSO
Cookie myCookie = ControllerUtils.getCookie("jforumSSOCookieNameUser");
怎么就一直取不到我在LoginAction中设置的Cookie,请高手指教。。

RequestContext request到底应该怎么用?
 
论坛首页 »开源项目» JForum论坛
前往:   
Powered by JForum 2.1.8 © JForum Team Template: Trydone