zoukankan      html  css  js  c++  java
  • kbmmw 中使用带验证的REST 服务

    前面介绍的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;

    运行程序

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

     

     可以正常运行了。

  • 相关阅读:
    tomcat 远程部署项目
    Maven的使用
    FTP服务器的使用
    2017.10-2018.10工作思考
    Java面试题准备(二)
    移植数据库的心得
    重新安装开发环境之安装使用plsql碰到的两个问题
    Redis学习笔记(一)
    开发之没沟通误删客户数据库数据之找数据路
    Java面试准备(一)
  • 原文地址:https://www.cnblogs.com/xalion/p/11602523.html
Copyright © 2011-2022 走看看