介绍 关于如何使用授权和登录管理来构建应用服务器还存在一些问题,其中之一就是用户及其角色如何在在数据库中定义.该文将解释使用TkbmMWAuthorizationManager解决此问题的一种方法.有关其他的信息,可以参考前文REST easy with kbmMW #4 – Access management 首先,我们应该有一些需要登录支持的服务器.对于此示例,我选择了FishFact REST服务器.该服务器的实现可参考kbmMW #12 – Fishfact demo using HTT…
我在前两篇文章中展示了“REST easy with kbmMW”文章,如何使用kbmMW制作REST服务器,以及如何使用该REST服务器轻松地从数据库返回和存储数据,所有这些都在不到30行的真实数据库中码. 此文章将围绕如何确保使用SSL(安全套接字层)保持与服务器的通信受到保护.换句话说,如何使REST服务器与HTTPS而不是HTTP进行通信. 有多种方法可以使用SSL保护基于kbmMW的应用程序服务器,但我将重点介绍使用OpenSSL执行此操作的一种简单方法. 首先,我们应该创建一个可以使…
即将推出的kbmMW更新不仅是一些bug修正,同时将包含一个新的主要功能:客户端存根生成器框架. 那什么是客户端存根生成器框架呢? 他是一个基于kbmMW smart services,可以生成由各种类型的客户端直接使用的代码,以访问基于kbmMW应用服务器的HTTP smart services.(什么是HTTP Smart Service呢?可参考洞主写的文章:kbmmw 的HTTP Smart Service入门) 当前,kbmMW已经实现智能客户端(smart client)功能,通过这…
kbmMW已经包含了非常精细的功能来确定和解释数据库中表的元数据. 在下一版本中,这个功能将得到进一步加强,可以导入现有数据库中的表,自动创建与表相匹配的ORM实体类. 这意味着你能够使用kbmMW的ORM智能来查询表,将数据保存回表并操纵表元数据,例如添加,更改或删除字段.索引以及需要能够升级数据库用于匹配已更改的ORM表实体类的更高版本的表. 当你意识到需要更改数据库表以允许其他或不同的字段时,ORM的设计目标之一始终是抽象掉所需的所有枯燥工作.在kbmMW中,它就像更改ORM类一样简单,并…
在前面有关如何使用kbmMW创建REST服务器的基础上,现在已经到了考虑该如何控制用户的访问.什么是访问管理?就是“允许谁做什么"的问题. 显然,这个世界中存在数据,应该保护他而不被未授权的人/进程来读取,创建或更改.反过来说,这些数据应该得到保护,只有信任的人/进程才可以访问.另外,有的数据可以被人或进程来访问,但不允许被修改等等. 幸运的是,kbmMW内置了一些功能来解决上面的问题,核心是TkbmMWAuthorizationManager类. 首先在main form中添加一个TkbmMW…
我被问到有关如何通过基于kbmMW智能服务(Smart Service)的REST处理POST的问题. 这篇博客文章解释了典型的POST各种形式的访问,以及如何在kbmMW中处理它们. POST变种Web/REST客户端可以通过多种方式POST数据: 1.作为URL的路径部分中的值数据    例如:POST http://localhost/myservice/myfunction/10/202.作为URL的查询部分中的键/值数据    例如:POST http://localhost/myse…
你想过没有,把一个给定的xml或json生成一个Delphi类,并通过这个类完成对xml或json的读写操作吗? 不管有没有,现在kbmMW为我们实现了,看下面这行代码: var s:string; ... s:=TkbmMWJSONMarshal.GenerateDelphiClassFromUTF8File('auctions.json','Unit2','JSONData'); ... { "realm":{"name":"Aegwynn"…
在之前的博文中,我提到新的存根生成器框架具有生成Delphi客户端存根所需的功能,使得开发Delphi智能客户端非常容易,完全支持编译时的类型检查和IDE类/属性帮助. 我没想到会把它包含在即将发布的kbmMW版本中,但我无法自控.... 必须添加它才能生成相当完整的初始存根生成器. 存根生成器将生成普通的Delphi代码,需要kbmMW智能客户端功能进行编译.但代码已完成,并包含所需的所有单元引用.如果您使用的是包含对象的自定义单元,则必须将这些单元与生成的存根代码一起提供给Delphi客户端…
前文写过使用HTTP.sys转输层(TkbmMWHTTPSysServerTransport),实现一个kbmMW应用服务器. 如果在一台服务器上,同时运行多个,基于TkbmMWHTTPSysServerTransport实现的kbmMW应用服务器,该怎么配置呢? 通常会遇到这样的错误信息,如:“Unable to bind to the underlying transport for … The IP Listen-Only list may contain a reference to a…
kbmMW 5.0支持REST服务器的开发,并且非常简单,下面看看如何实作一个REST服务器. 首先我们制作一个服务器应用程序,增加一个简单的Form,并放置kbmMW组件. 在Delphi中单击File - New - VCL Forms Application 然后将以下kbmMW组件添加到Form中: TkbmMWServer TkbmMWTCPIPIndyServerTransport 将kbmMWTCPIPIndyServerTransport1的Server属性设置为kbmMWSer…
00.组件版本和配置策略 组件版本 Kubernetes 1.14.2 Docker 18.09.6-ce Etcd 3.3.13 Flanneld 0.11.0 插件: Coredns Dashboard Metrics-server EFK (elasticsearch.fluentd.kibana) 镜像仓库: docker registry harbor 主要配置策略 kube-apiserver: 使用节点本地 nginx 4 层透明代理实现高可用: 关闭非安全端口 8080 和匿名访…
相比12.04在外观改变不是非常大,但当中细节有些许变化,特别输入法非常不大好用,为此,我们使用fcitx输入法,使用我喜欢的五笔拼音,安装步骤例如以下: 方法一: 最新的方法非常easy: 安装14.04后,语言包一定要安装完整,从ibus增加极点五笔. 方法二: 快捷键"ctrl+AIt+T",弹出终端,输入下面指令 1 2 3 4 5 6 7 8 //先卸载IBUS输入法 killall ibus-daemon sudo apt- get purge ibus ibus-gtk…
1.kbmMWConfiguration自动备份配置文件的问题还没有修正. 下面是以前写过的内容,再一次在新闻组中提出这个问题: kbmMW提供一个强大的配置信息管理对象,前期译过这个对象的介绍,在使用过程中,发现一个问题, 就是TkbmMWCustomConfigurationStorage.BackupMaxCount属性,当设置为0时,也会生成配置信息的备份文件,在最新的kbmMW 5.05.11版本中,每运行一次就生成一个配置文件,对此,修正了代码. 打开单元文件 kbmMWGlobal…
本文作者:smeli(俄罗斯人,于2009年完成该教程) PS:要比国内写的那些教程完整,详细,希望大家喜欢 VS运行库安装………………………………………..2 SQL数据库安装…………………………………………..3 L2Server设置………………………………………………11 GM账户创建………………………………………….15 运行服务端(1).………………….………………………..16 老版服务端设置……………………………………………..19 运行服务端 (2)…………………………………………
生成器 迭代器 装饰器 模块   来个需求,一个列表中所有元素都+1 1.最容易想到的方法 for循环,找列表索引,对应每个值+1 list_old = [1,2,3,4,5,6,7,8,9] for index,i in enumerate(list_old): list_old[index]+=1 print(list_old) 2.用上节课讲的匿名函数试试,也可以 a = map(lambda x:x+1,list_old) for i in a: print(i) 3.列表生成 a =…
一.Servlet的传统配置方式 在JavaWeb开发中, 每次编写一个Servlet都需要在web.xml文件中进行配置,如下所示: 1 <servlet> 2 <servlet-name>ActionServlet</servlet-name> 3 <servlet-class>me.gacl.web.controller.ActionServlet</servlet-class> 4 </servlet> 5 6 <ser…
1.CREATE ROLE创建的用户默认不带LOGIN属性,而CREATE USER创建的用户默认带有LOGIN属性,如下: postgres=# CREATE ROLE pg_test_user_1; /*默认不带LOGIN属性*/ CREATE ROLE postgres=# CREATE USER pg_test_user_2; /*默认具有LOGIN属性*/ CREATE ROLE postgres=# \du List of roles Role name | Attributes |…
原文地址:http://blog.sina.com.cn/s/blog_49be4d570100yvv1.html 1.下载mongodb,可以通过下面2中方法安装. (1)官网下载yum源后直接安装或下载tar包进行安装.http://www.mongodb.org/ . (2)通过EPEL(企业linux额外软件包)安装.http://fedoraproject.org/wiki/EPEL . 方便起见,这里选择用yum源直接安装. <1>在*.repo中加入 --------------…
一.建立一个简单的 hello world 网页 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 import tornado.ioloop import tornado.web   class MainHandler( tornado.web.RequestHandler ):     def get(self):         self.write("Hello, world")         return   s…
PHP学习(四)---PHP与数据库MySql 主要有以下的内容: 1.怎么连接数据库 2.怎么操作数据库 (1)怎么执行sql语言 (2)怎么处理返回的结果集 方法一:面向过程(已经过时,只是了解) 假设: 1 $username=your_name; 2 $userpass=your_pass; 3 $dbhost=localhost; 4 $dbdatabase=your_database; 1 //生成一个连接 2 $db_connect=mysql_connect($dbhost,$u…
ostgreSQL-psql常用命令 文章索引 [隐藏] \d命令 \d命令   1 2 3 格式: \d [ pattern ] \d [ pattern ] + 该命令将显示每个匹配关系(表,视图,索引,序列)的信息,包括对象所有的列,它们的类型,表空间(如果不是默认的)和任何特殊属性(如NOT NULL或默认值等).与唯一约束相关的索引,规则,约束,触发器也同样会显示出来.如果关系是一个视图,还会显示视图的定义.1.如果\d命令什么都不带,将列出当前数据库中的所有表.   1 2 3 4…
在开发之前,选择MongoDb驱动是件很重要的事情.如果选择不好,在后期的开发的是件很费力的事情,因为我就遇到这样的问题.MongoDb驱动有几种比较流行驱动,官方驱动和samus是两种使用比较多的. 好了,接着说今天的内容了.       首先从MongoDb的官方网站上下载CSharp驱动(https://github.com/mongodb/mongo-csharp-driver/downloads).我使用的是CSharpDriver-1.1.0.4184,里面还包含一个CSharpDr…
NodeJS学习笔记(一)——搭建开发框架Express,实现Web网站登录验证   JS是脚本语言,脚本语言都需要一个解析器才能运行.对于写在HTML页面里的JS,浏览器充当了解析器的角色.而对于需要独立运行的JS,NodeJS就是一个解析器.每一种解析器都是一个运行环境,不但允许JS定义各种数据结构,进行各种计算,还允许JS使用运行环境提供的内置对象和方法做一些事情.例如运行在浏览器中的JS的用途是操作DOM,浏览器就提供了document之类的内置对象.而运行在NodeJS中的JS的用途是…
1.导入相关的jar包 2.建立数据库 1 create table account( 2 id int(10), 3 user varchar(50), 4 paw varchar(50) 5 ); 6 insert into account values(1,'admin','admin'); 3.建立包结构 4.配置文件的配置及代码 4.1 数据库配置文件:db.properties 1 #jdbc 2 jdbc.driver=com.mysql.jdbc.Driver 3 jdbc.ur…
MongoDb 用 mapreduce 统计留存率(金庆的专栏)留存的定义采用的是新增账号第X日:某日新增的账号中,在新增日后第X日有登录行为记为留存 输出如下:(类同友盟的留存率显示)留存用户注册时间    新增用户  留存率                      1天后   2天后   3天后   4天后   5天后  6天后  7天后  14天后  30天后2015-09-17  2300      20.7 %  15.6 %  13 %    11.3 %  9.9 %      …
AWR是Oracle  10g 版本 推出的新特性, 全称叫Automatic Workload Repository-自动负载信息库, AWR 是通过对比两次快照(snapshot)收集到的统计信息,来生成报表数据,生成的报表包括多个部分 WORKLOAD REPOSITORY report for DB Name DB Id Instance Inst num Release RAC Host ICCI 1314098396 ICCI1 1 10.2.0.3.0 YES HPGICCI1  …
1,面向对象三大特性,各有什么用处,说说你的理解. 继承:解决代码重用问题 多态:多态性,可以在不考虑对象类型的情况下而直接使用对象 封装:明确的区分内外,控制外部对隐藏属性的操作行为,隔离复杂度 2,类的属性和对象的属性有什么区别? 类的属性:数据属性和函数属性,数据属性是所有对象共有的,函数属性是绑定对象使用的 对象的属性:对象是类的实例化 3,面向过程编程与面向对象编程的区别与应用场景? 面向过程:复杂的问题流程化,简单化 应用场景:不再需要扩展了,监测脚本,自动部署脚本,软件解压安装 面…
用户表 CREATE TABLE `sys_user` ( `id` varchar(64) COLLATE utf8_bin NOT NULL COMMENT '用户编号', `ids` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增的id', `login_name` varchar(100) COLLATE utf8_bin NOT NULL COMMENT '登录名', `password` varchar(100) COLLATE utf8_bi…
要求一:自定义用户信息数据结构,写入文件,然后读出内容,利用eval重新获取数据结构 3 with open('user.db','w') as write_file:#创建并以写入的方式打开一个文件user.db 4 write_file.write(str({ 5 "egon":{"password":"123",'status':False,'timeout':0}, 6 "alex":{"password&q…
1,面向对象三大特性,各有什么用处,说说你的理解. 继承:解决代码重用问题 多态:多态性,可以在不考虑对象类型的情况下而直接使用对象 封装:明确的区分内外,控制外部对隐藏属性的操作行为,隔离复杂度 2,类的属性和对象的属性有什么区别? 类的属性:数据属性和函数属性,数据属性是所有对象共有的,函数属性是绑定对象使用的 对象的属性:对象是类的实例化 3,面向过程编程与面向对象编程的区别与应用场景? 面向过程:复杂的问题流程化,简单化 应用场景:不再需要扩展了,监测脚本,自动部署脚本,软件解压安装 面…