| 概述在BDF的WebService模塊當(dāng)中,我們對(duì)于WebService的服務(wù)端添加權(quán)限控制控制功能,所謂針對(duì)WebService進(jìn)行權(quán)限控制,指的是哪些WebService的Endpoint可以被哪些人訪問。在權(quán)限控制當(dāng)中,我們基于Spring Security的權(quán)限機(jī)制實(shí)現(xiàn),并且與BDF的安全模塊進(jìn)行的集成,也就是說如果您在使用BDF的WebServive的同時(shí),又使用了BDF框架的安全模塊,那么您可以在只修改一些配置屬性的情況下,采用BDF的安全模塊為您的WebService添加權(quán)限控制。 配置前面在介紹bdf.webservice.properties配置文件時(shí)我們了解到幾個(gè)屬性,一個(gè)是bdf.webservice.webServiceSecurityMetadataSource,另一個(gè)是bdf.webservice.accessDecisionManager,前面講過,這兩個(gè)屬性的默認(rèn)值是由BDF的WebService模塊默認(rèn)提供的,默認(rèn)提供的不帶權(quán)限控制功能。 這里的bdf.webservice.webServiceSecurityMetadataSourcent屬性對(duì)應(yīng)的值是一個(gè)配置在Spring當(dāng)中的Bean的ID,這個(gè)要求實(shí)現(xiàn)Spring Security的org.springframework.security.web.access.intercept.FilterInvocationSecurityMetadataSource接口,該接口作用是用來在系統(tǒng)啟動(dòng)的時(shí)候加載需要進(jìn)行權(quán)限管控的資源(這里的WebService的Endpoint資源),默認(rèn)BDF的WebService中提供了一個(gè)非常簡(jiǎn)單的實(shí)現(xiàn),也就是不需要任何類型的WebService的Endpoint資源,相應(yīng)就表示不對(duì)任何WebService的Endpoint進(jìn)行權(quán)限管控。 了解完上面這兩個(gè)屬性后,我們知道如果需要使用WebService的權(quán)限控制功能,那么就需要修改這兩個(gè)屬性的值。在BDF的安全模塊當(dāng)中已內(nèi)置了對(duì)BDF WebService模塊的權(quán)限控制功能,對(duì)于bdf.webservice.webServiceSecurityMetadataSourcent屬性需要的一個(gè)可以加載需要進(jìn)行權(quán)限控制的WebService的Endpoint資源的類,在BDF安全模塊中對(duì)應(yīng)的類的Bean的ID為bdf.webserviceSecurityMetadataSourceService;而對(duì)于bdf.webservice.accessDecisionManager屬性需要一個(gè)AccessDecisionManager,我們直接使用BDF安全模塊當(dāng)中的名為bdf.resourceDecisionManager即可。所以修改后的這兩個(gè)屬性值如下代碼所示。 
 配置好這兩個(gè)屬性之后,接下來我們將需要進(jìn)行權(quán)限管控的WebService的Endpoint添加到位于BDF安全模塊的BDF_WEBSERVICE_RESOURCES表中,該表作用就是用于存放需要 進(jìn)行權(quán)限管制的WebService的Endpoint信息表,定義完成之后再將該表定義的WebService Endpoint信息與角色關(guān)聯(lián)起來,再將允許或拒絕訪問的角色成員(用戶、部門、群組)與當(dāng)前角色對(duì)應(yīng)起來,從而完成WebService的權(quán)限控制(具體請(qǐng)參見BDF安全模塊介紹) | 
|  |