现在我们有一个RPC服务可以作为实施应用服务器的基础,但只有一个RPC服务是不够的。 因此,我们将实现这些模块/服务:
安全性:授权,认证和审计
连接池与数据库
异步消息传递服务
而且,除了有一个API来添加服务,服务器将提供一个API添加用户模块。 现在的服务器组件图:
在上层的组件使用的底层组件的功能。 现在,让我们探讨的每个组件。
安全领域的经理
这是在任何应用服务器强制性的。 在三界安全管理器安装安全领域。 什么是安全的境界? 从概念上讲它是一个组件,控制访问服务。 从技术角度来看,是该接口的实现:
SecurityRealm {公共接口 / ** * login方法。 * @参数凭据的凭据来验证 * @抛出LoginException如果在登录信息exeption ocurrs * / 无效登录(证书认证)抛出LoginException; / ** *注销方法。 * @参数凭据的凭据 * / 无效注销(证书认证); / ** *此方法返回true,当且仅当服务的方法可 *由于执行与凭据。 * * @参数凭据凭据执行用户 * @参数的ServiceName服务名称 * @参数methodName中方法名执行 * @参数PARAMS的paramenters传递给方法 * @抛出NotExecutedException的信号执行不给定的凭据中,servicename,methodName中,而params允许 * / executionAllowed无效(证书认证,字符串的ServiceName,字符串methodName中,对象... PARAMS)抛出NotExecutedException; }
只有三种方法:登录,注销和isExecutionAllowed。 前两个涉及到认证的概念,第三是指释放的概念,但也可以关联到审计,哪些是始终执行之前,服务调用。
安全管理器使用的拦截器领域,在Java RPC - 07显示:在方法onPreExecution()方法被调用executionAllowed()在安全领域,并继续执行,如果这个异常没有NotExecutedException。 出于安全原因,不运行如果有任何executionAllowed异常(或错误)()等防止错误中断的安全系统。
然后放置任意代码executionAllowed()的方法可以授权或禁止的某些参数与服务方法执行。
在安全领域的经理管理着安全领域的集合。 他们运行的所有和唯一授权的,如果所有的授权采取打电话。 该安全服务器已实现了一个抽象的领域,它是基于用户名和密码,并为审计(日志记录)其他安全领域的基础。
公共抽象类扩展AbstractUserPasswordSecurityRealm SecurityRealmAdapter { 公共AbstractUserPasswordSecurityRealm(){ } 公共无效登录(证书C)抛出LoginException { UserPasswordCredentials CRED =(UserPasswordCredentials)C; 如果(cred! = NULL){ Cred.getUser弦乐用户=(); Cred.getPassword字符串传递=(); 验证(用户,通过); 否则{} 抛出新LoginException(“空凭据”); } } 公共无效executionAllowed(凭据凭据,弦乐的ServiceName,字符串methodName中,对象... PARAMS)抛出NotExecutedException { 如果(凭据== NULL){ 抛出新NotExecutedException(“不等同于”); } } 公共抽象无效验证(弦乐用户,串通)抛出LoginException; }
模块管理
正如我们所看到的,服务器是可扩展的。 怎么会呢? 通过模块。 一个模块就是一个bean,有一个名字和两个方法来管理生命周期:启动()和shutdown()。 然后,服务器有一个方法来获取模块的名字。 由于界面是如此简单,容易适应任何服务纳入到服务器。 例如,异步消息传递服务实现单独创建了一个模块,以适应这个应用服务器。 同上与连接池的数据库。 接口:
{公共接口模块 无效的setName(String名称); 字符串的getName(); 无效启动()抛出异常; 无效关机(); }
对于一个从服务模块,我们要求ServerContext:
ServerContext.getModule(MODULENAME);
核ServerContext类的,提供访问应用服务器的不同部分静态的方法。 这些谁是最GetModule desatacan()和getServerConfig()。 第一个我们看到的。 第二个返回一个与那些从配置文件中加载属性映射。 我们将看到它一节专门的配置。
装载机服务
这是组件读取配置文件并创建在中国服务。 它是作为一个模块,可轻松更换,而另一个连接到服务器。 基本上读取配置文件描述的服务,并添加参数到服务器。
在接下来的文章中,我将介绍数据库和信息服务的连接池。 我还将描述配置文件。
直到下一次。

