kepler/xavanter下简单权限认证

本文介绍了在Kepler环境下实现www-auth认证的方法,并优化了HTML文件包含的Lua代码。包括在Kepler内支持www-auth、修改服务器变量和处理未授权访问情况。同时,提供了在HTML文件中包含另一个HTML文件的Lua代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本来想用cgilua的authentication模块的,但研究了一下,发现比较麻烦。我就只想实现类似进入家用路由器配置页面的权限认证,最后发现下面方式可用:

http://blog.jianghu.taobao.com/u/NDcxMzMxODA=/blog/blog_detail.htm?aid=32121417

(同时,顺便也帮他找了个错误,让他修改了)

 

转帖如下:

 

 

在kepler里面支持www-auth

 
change list:
 
wsapi/xavante.lua :
set_cgivars  函数中添加
AUTHORIZATION = req.headers ["authorization"],

cgilua.lua:
添加:
function httpstatus(no,str)
 SAPI.Response.httpstatus(no,str)
end

sapi.lua:
倒数7行位置(write=...后面, 与wirte函数平级)添加:
httpstatus = function(no,str)
   res.status = no
  end

 

 

 

但test.lp文件在我这儿运行有没反应,最后debug后发现,修改如下即可:

 

<%

require"mime"

authorized = false;

k = cgilua.servervariable('AUTHORIZATION')

if k and #k > 0 then

  str = mime.unb64(string.sub(k,7,-1))

  user = string.sub(str,1,string.find(str,':',1,true)-1)

  pwd = string.sub(str,string.find(str,':',1,true)+1,-1)

  if user==pwd then authorized = true end

end

 cgilua.print(user)   

 cgilua.print(pwd)   

 

 if not authorized then

    cgilua.header('WWW-Authenticate','Basic realm="login"')

    cgilua.httpstatus(401)

    cgilua.print'wrong username or password'     --- 这句话是添加的,需要在return前无条件显示信息才正确

    return

 end

 cgilua.print'Hello1!'   

%>

 

 

 

另:

在html文件中包含另一个html文件(类似jsp的include file),lua代码为

 

<% cgilua.lp.include ("test1.lp") %>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值