Jive笔记1--关于Jive1中的验证和相关类的调用 (转)

Jive笔记1--关于Jive1中的验证和相关类的调用 (转)[@more@]日期: 2001-4-24 下午5:25
所有的 JSP页面均用下面代码验证 用户身份
// Authorization check

// check for the existence of an authorization token
Authorization authToken = SkinUtils.getUserAuthorization(request,response);

// if the token was null, they're not authorized. Since this skin will
// allow guests to view forums, we'll set a "guest" authentication
// token
if( authToken == null ) {
authToken = AuthorizationFactory.getAnonymousAuthorization();
}
%>
第一句话没什么好说的,是老老实实的static代码,从session or cookie中获得Authorization 对象
所谓Authxxx对象,不过是一个用户ID而已.
第二句:如果第一句返回的是null,作为匿名用户登陆
AuthorizationFactory.getAnonymousAuthorization();
首先 调用一个private,static成员 函数
AuthorizationFactory.loadAuthorizationFactory()
在这个函数里, 程序加载相应的 加密验证类,如果你自己编写了相关的类,需要在jive.properties 文件中添加:AuthorizationFactory.className=your_full_class_name。否则,加载缺省的类:com.cool servlets.forum.database. dbauthorizationFactory。代码如下:
Class c = Class.forName(className);
factory = (AuthorizationFactory)c.newInstance();
其实,这里的c是DbAuthorizationFactory类型的,但是为了通用性,被upcasting为其父类。 Java的动态绑定技术可以正确调用相应的成员函数。所以,真正我们要看的代码,在DbAuthorizationFactory这个类中。
好了,我们获得了一个factory,通过factory.createAnonymousAuthorization();就可以获得一个匿名的Authorization对象实例. 记住,虽然factory在申明的时候是AuthorizationFactory类型的,但真正调用的代码在DbAuthorizationFactory.class中。继续跟踪分析factory.createAnonymousAuthorization();其实就返回一个userID为-1的Authorization对象实例。注意,这里的Authorization对象其实是DbAuthorization对象

好了,接下来就可以通过Authorization对象来获得ForumFactory,然后获得Forums,然后...

 


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10752019/viewspace-958254/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/10752019/viewspace-958254/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值