概述在BDF的WebService模块当中,我们对于WebService的服务端添加权限控制控制功能,所谓针对WebService进行权限控制,指的是哪些WebService的Endpoint可以被哪些人访问。在权限控制当中,我们基于Spring Security的权限机制实现,并且与BDF的安全模块进行的集成,也就是说如果您在使用BDF的WebServive的同时,又使用了BDF框架的安全模块,那么您可以在只修改一些配置属性的情况下,采用BDF的安全模块为您的WebService添加权限控制。 配置前面在介绍bdf.webservice.properties配置文件时我们了解到几个属性,一个是bdf.webservice.webServiceSecurityMetadataSource,另一个是bdf.webservice.accessDecisionManager,前面讲过,这两个属性的默认值是由BDF的WebService模块默认提供的,默认提供的不带权限控制功能。 这里的bdf.webservice.webServiceSecurityMetadataSourcent属性对应的值是一个配置在Spring当中的Bean的ID,这个要求实现Spring Security的org.springframework.security.web.access.intercept.FilterInvocationSecurityMetadataSource接口,该接口作用是用来在系统启动的时候加载需要进行权限管控的资源(这里的WebService的Endpoint资源),默认BDF的WebService中提供了一个非常简单的实现,也就是不需要任何类型的WebService的Endpoint资源,相应就表示不对任何WebService的Endpoint进行权限管控。 了解完上面这两个属性后,我们知道如果需要使用WebService的权限控制功能,那么就需要修改这两个属性的值。在BDF的安全模块当中已内置了对BDF WebService模块的权限控制功能,对于bdf.webservice.webServiceSecurityMetadataSourcent属性需要的一个可以加载需要进行权限控制的WebService的Endpoint资源的类,在BDF安全模块中对应的类的Bean的ID为bdf.webserviceSecurityMetadataSourceService;而对于bdf.webservice.accessDecisionManager属性需要一个AccessDecisionManager,我们直接使用BDF安全模块当中的名为bdf.resourceDecisionManager即可。所以修改后的这两个属性值如下代码所示。
配置好这两个属性之后,接下来我们将需要进行权限管控的WebService的Endpoint添加到位于BDF安全模块的BDF_WEBSERVICE_RESOURCES表中,该表作用就是用于存放需要 进行权限管制的WebService的Endpoint信息表,定义完成之后再将该表定义的WebService Endpoint信息与角色关联起来,再将允许或拒绝访问的角色成员(用户、部门、群组)与当前角色对应起来,从而完成WebService的权限控制(具体请参见BDF安全模块介绍) |
|