分享

对WebService添加权限控制

 江江385 2013-01-21

概述

在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进行权限管控。
bdf.webservice.accessDecisionManager属性对应同样也是一个配置在Spring当中的Bean的ID,要求这个Bean要实现org.springframework.security.access.AccessDecisionManager接口,同时我们提供的默认实现里没有添加任何vote(投票器),也就是对任何资源访问权限的投票都是允许。

了解完上面这两个属性后,我们知道如果需要使用WebService的权限控制功能,那么就需要修改这两个属性的值。在BDF的安全模块当中已内置了对BDF WebService模块的权限控制功能,对于bdf.webservice.webServiceSecurityMetadataSourcent属性需要的一个可以加载需要进行权限控制的WebService的Endpoint资源的类,在BDF安全模块中对应的类的Bean的ID为bdf.webserviceSecurityMetadataSourceService;而对于bdf.webservice.accessDecisionManager属性需要一个AccessDecisionManager,我们直接使用BDF安全模块当中的名为bdf.resourceDecisionManager即可。所以修改后的这两个属性值如下代码所示。

bdf.webservice.webServiceSecurityMetadataSource=bdf.webserviceSecurityMetadataSourceService
bdf.webservice.accessDecisionManager=bdf.resourceDecisionManager

配置好这两个属性之后,接下来我们将需要进行权限管控的WebService的Endpoint添加到位于BDF安全模块的BDF_WEBSERVICE_RESOURCES表中,该表作用就是用于存放需要 进行权限管制的WebService的Endpoint信息表,定义完成之后再将该表定义的WebService Endpoint信息与角色关联起来,再将允许或拒绝访问的角色成员(用户、部门、群组)与当前角色对应起来,从而完成WebService的权限控制(具体请参见BDF安全模块介绍)

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多