Chinaunix首页 | 论坛 | 博客
  • 博客访问: 295727
  • 博文数量: 45
  • 博客积分: 1596
  • 博客等级: 上尉
  • 技术积分: 546
  • 用 户 组: 普通用户
  • 注册时间: 2006-12-19 20:28
文章分类

全部博文(45)

文章存档

2011年(7)

2010年(10)

2009年(10)

2008年(18)

我的朋友

分类: LINUX

2008-03-22 22:33:09

搬家系列(7)

iplanet(Sun Java System Web Server)中用NSAPI的重定向实现(NSAPI系列二)
flw10000 发表于 2006-12-18 22:42:00
作者:冯磊 (flw10000) MAIL:flw10000 AT 163.com

在iplanet中用NSAPI实现重写向.

环境:
OS:linux 2.6.17
WebServer:iplanet 6.1

1> 修改配置文件
在magnus.conf文件中增加如下:
#e cho "Init fn=\"load-modules\" shlib=\"./Redirect\" funcs=\"RedirectTest\"" >> magnus.conf
在obj.conf文件中和 之间的AuthTrans下面加
AuthTrans fn="RedirectTest"
其实这里不止AuthTrans这一层可以重定向,笔者在如下几层都测试成功:
NameTrans
PathCheck
ObjectType
Service
只要要相关键字后面加fn="RedirectTest"就可以了!
不过记的在每次更改配置文件以后都要重启服务!

2> 程序代码如下:
#cat Redirect.c
/*
* FileName:Redirect.c
* Compile:gcc -shared -DLINUX -D_REENTRANT -fPIC -DXP_UNIX –Ipath –Lpath Redirect.c –o Redirect
*/
#ifdef XP_WIN32
#define NSAPI_PUBLIC __declspec(dllexport)
#else /* !XP_WIN32 */
#define NSAPI_PUBLIC
#endif /* !XP_WIN32 */

#i nclude "nsapi.h"

#i nclude "base/util.h" /* is_mozilla */
#i nclude "frame/protocol.h" /* protocol_status */
#i nclude "base/shexp.h" /* shexp_cmp */

NSAPI_PUBLIC int RedirectTest(pblock *pb, Session *sn, Request *rq)
{
char *url = "";

pblock_nvinsert("url", url, rq->vars);
protocol_status(sn, rq, PROTOCOL_REDIRECT, NULL);
protocol_start_response(sn,rq);

return REQ_ABORTED;
}
#gcc -shared -DLINUX -D_REENTRANT -fPIC -DXP_UNIX –Ipath –Lpath Redirect.c –o Redirect

将生成的Redirect和配置文件放在同一个目录就可以了!

(转载请保持文章的完整性,请注明作者和出处)
冯磊 2006.12.18

阅读(1925) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~