码迷,mamicode.com
首页 > 其他好文 > 详细

kbmmw 中使用带验证的REST 服务

时间:2019-09-28 14:21:35      阅读:123      评论:0      收藏:0      [点我收藏+]

标签:OLE   cto   The   png   http   com   man   如何   alt   

前面介绍的rest 服务,虽然很方便,但是存在任何人都可以访问的安全问题。

今天说一下,如何在kbmmw 中使用带验证的REST 服务?

首先我们在工程中放一个 认证控件TkbmMWAuthorizationManager。

如图:

技术图片

 

 设置kbmmwserver 的认证属性

技术图片

 

 初始化 authmgr

AuthMgr.AddRole(AdminRole‘);

然后设置 验证 代码

procedure Tdmf.AuthMgrLogin(Sender: TObject; const AActorName,
  ARoleName: string; var APassPhrase: string;
  var AActor: TkbmMWAuthorizationActor; var ARole: TkbmMWAuthorizationRole;
  var AMessage: string);
begin
  //建议使用数据库保存用户名和密码, 密码不要用明码
       if AActorName<>xalion then
       begin
         AMessage:=用户或密码不正确,请检查;
         exit;
       end;


       if APassPhrase<>123456 then
       begin
         AMessage:=用户或密码不正确,请检查;
         exit;
       end;

        //检查角色是否定义?
        ARole:=AuthMgr.Roles.Get(AdminRole);
           if ARole=nil then
              AMessage:=角色不支持
           else
           begin
                //检查使用者是否存在,如果不存在则建立一个使用者 
                AActor:=AuthMgr.GetActor(AActorName);
                if AActor=nil then
                   AActor:=AuthMgr.AddActor(AActorName,APassPhrase,ARoleName);
                AMessage:=用户正确,允许登录;
           end;

end;

在服务定义里面加上 认证 要求

[kbmMW_Method(EchoString)]       // 回应输入的串
     [kbmMW_Rest(method:get, path: ["echostring/{AString}","myechostring/{AString}" ])]
     [kbmMW_Auth(role:[AdminRole], grant:true)] 
     function EchoString([kbmMW_Rest(value: "{AString}")] const AString:string):string;

运行程序

技术图片

 

 输入用户名和密码,点击登录

技术图片

 

 技术图片

 

 可以正常运行了。

 

kbmmw 中使用带验证的REST 服务

标签:OLE   cto   The   png   http   com   man   如何   alt   

原文地址:https://www.cnblogs.com/xalion/p/11602523.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!