欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種多端共享的權(quán)限控制方法及其系統(tǒng)與流程

文檔序號(hào):11517786閱讀:564來(lái)源:國(guó)知局
一種多端共享的權(quán)限控制方法及其系統(tǒng)與流程

本發(fā)明涉及軟件權(quán)限控制技術(shù)領(lǐng)域,具體涉及一種多端共享的權(quán)限控制方法及其系統(tǒng)。



背景技術(shù):

1、隨著移動(dòng)互聯(lián)網(wǎng)的普及,越來(lái)越多不同類型的客戶端的出現(xiàn)(微信、手機(jī)app、pc瀏覽器),使得界面的表現(xiàn)越來(lái)越多樣化,傳統(tǒng)的針對(duì)每個(gè)端來(lái)授權(quán),工作不僅繁重,而且容易出錯(cuò)。

2、目前傳統(tǒng)mis系統(tǒng)雖然都有基于rbac的權(quán)限控制模塊,基于角色、資源的控制方式。但它們往往不是集中管理,權(quán)限數(shù)據(jù)標(biāo)準(zhǔn)不一很難共享,而且通常是在業(yè)務(wù)系統(tǒng)中增加過(guò)濾器等方式的實(shí)現(xiàn),使得權(quán)限設(shè)計(jì)無(wú)法跨語(yǔ)言,對(duì)業(yè)務(wù)有一定的侵入性。

3、傳統(tǒng)的授權(quán)方式,往往是在應(yīng)用層進(jìn)行攔截,如果程序控制出現(xiàn)問(wèn)題。很容易出現(xiàn)安全隱患、而且不便于全局了解權(quán)限的配置規(guī)則。



技術(shù)實(shí)現(xiàn)要素:

本發(fā)明的目的在于克服現(xiàn)有技術(shù)的不足,提供一種多端共享的權(quán)限控制方法及其系統(tǒng),通過(guò)配置權(quán)限和界面元素關(guān)系,只對(duì)角色分配功能權(quán)限,使得一次授權(quán)多端共享相同權(quán)限,不需要針對(duì)每個(gè)端進(jìn)行單獨(dú)授權(quán),操作方式簡(jiǎn)單,使系統(tǒng)使用更加安全不易出錯(cuò),權(quán)限統(tǒng)一攔截使得業(yè)務(wù)對(duì)權(quán)限透明化,更加利于程序移植,并且不關(guān)心業(yè)務(wù)模塊使用語(yǔ)言限制。

本發(fā)明的目的是通過(guò)以下技術(shù)方案來(lái)實(shí)現(xiàn)的:

一種多端共享的權(quán)限控制方法,其特征在于包括以下步驟:

步驟s01:初始化功能點(diǎn),將所有的控制權(quán)限抽象成為一個(gè)功能點(diǎn),功能點(diǎn)表示一個(gè)具體的功能或者服務(wù);

步驟s02:給相應(yīng)的功能點(diǎn)配置界面元素,定義具體功能點(diǎn)所對(duì)應(yīng)的界面元素,界面元素和展現(xiàn)有關(guān)是具體界面的表達(dá),和具體展現(xiàn)端關(guān)聯(lián),所述展現(xiàn)端是一種承載界面展現(xiàn)的載體;

步驟s03:授權(quán),給用戶和角色授予功能點(diǎn),讓用戶和功能點(diǎn)產(chǎn)生關(guān)聯(lián);

步驟s04:權(quán)限控制,調(diào)用鑒權(quán)控制模塊確定該用戶是否有訪問(wèn)權(quán)限。

進(jìn)一步的,還包括步驟s05:界面元素展示,根據(jù)不同用戶配置的權(quán)限展示出不同的界面,具體包括以下子步驟:

子步驟s51:用戶訪問(wèn)后臺(tái)管理界面;

子步驟s52:獲取當(dāng)前用戶和角色;

子步驟s53:根據(jù)用戶和角色找到對(duì)應(yīng)的功能點(diǎn);

子步驟s54:根據(jù)功能點(diǎn)找到對(duì)應(yīng)界面元素;

子步驟s55:根據(jù)當(dāng)前界面元素找到所有上級(jí)界面元素;

子步驟s56:根據(jù)界面元素上下級(jí)關(guān)系組裝界面元素;

子步驟s57:返回給客戶端并展示界面元素。

進(jìn)一步的,所述的步驟s01中,所述功能點(diǎn)和具體的展示無(wú)關(guān),功能點(diǎn)的初始化操作最佳是在開發(fā)階段定義,除此之外功能點(diǎn)的初始化操作也可以在其他任何階段定義。

進(jìn)一步的,所述的步驟s02中,功能點(diǎn)可以是有界面承載的服務(wù),也可以是沒有界面的接口,因此不是每個(gè)功能點(diǎn)都要和界面元素對(duì)應(yīng),功能點(diǎn)通過(guò)客戶端的url地址或命令模式中的操作指令識(shí)別。

進(jìn)一步的,所述的步驟s04中,用戶所有請(qǐng)求首先經(jīng)統(tǒng)一接入模塊接入服務(wù)器,而不能直接訪問(wèn)具體業(yè)務(wù),業(yè)務(wù)系統(tǒng)可以通過(guò)防火墻等方式直接拒絕前端發(fā)來(lái)的非法請(qǐng)求。

進(jìn)一步的,所述統(tǒng)一接入模塊,除了服務(wù)的反向代理外,還負(fù)責(zé)權(quán)限的統(tǒng)一攔截、定義路由策略,統(tǒng)一接入模塊根據(jù)返回結(jié)果和訪問(wèn)端判斷,如果鑒權(quán)通過(guò)則直接訪問(wèn)業(yè)務(wù)系統(tǒng),如果鑒權(quán)失敗則根據(jù)不同端跳轉(zhuǎn)到對(duì)應(yīng)界面或者響應(yīng)錯(cuò)誤碼。

進(jìn)一步的,所述的步驟s04中調(diào)用鑒權(quán)控制模塊確定該用戶是否有訪問(wèn)權(quán)限具體包括以下子步驟:

子步驟s41:根據(jù)訪問(wèn)的界面元素和當(dāng)前用戶和角色,找到對(duì)應(yīng)的功能點(diǎn);

子步驟s42:根據(jù)權(quán)限點(diǎn)的配置判斷是否符合訪問(wèn)規(guī)則;

子步驟s43:返回鑒權(quán)結(jié)果給代理服務(wù)器。

一種多端共享的權(quán)限控制系統(tǒng),其特征在于包括以下組件:

客戶端:是指與服務(wù)器相對(duì)應(yīng),為客戶提供本地服務(wù)的程序;

統(tǒng)一接入模塊:負(fù)責(zé)所有業(yè)務(wù)的反向代理服務(wù)和權(quán)限攔截,是權(quán)限控制的閥門;

鑒權(quán)控制模塊:權(quán)限控制的核心控制器、負(fù)責(zé)具體權(quán)限控制的檢查,權(quán)限控制的具體邏輯、權(quán)限的授予;

業(yè)務(wù)模塊:執(zhí)行具體業(yè)務(wù)的服務(wù)或系統(tǒng)是功能點(diǎn)的使用方;

客戶端請(qǐng)求業(yè)務(wù)模塊時(shí)總是先請(qǐng)求到統(tǒng)一接入模塊,統(tǒng)一接入模塊先根據(jù)客戶端id、當(dāng)前用戶id和url地址訪問(wèn)鑒權(quán)控制模塊,鑒權(quán)控制模塊根據(jù)相關(guān)配置得到用戶是否具有相關(guān)權(quán)限,統(tǒng)一接入模塊再根據(jù)鑒權(quán)控制模塊返回的數(shù)據(jù)決定是將請(qǐng)求反向代理到業(yè)務(wù)端,還是直接將錯(cuò)誤信息返回給前端,如果訪問(wèn)到業(yè)務(wù)模塊表明該用戶已經(jīng)具有該功能點(diǎn)的訪問(wèn)權(quán)限,而無(wú)需相關(guān)代碼對(duì)其進(jìn)行權(quán)限控制,業(yè)務(wù)模塊處理完業(yè)務(wù)邏輯,通過(guò)統(tǒng)一接入模塊直接返回給前端。

進(jìn)一步的,所述的鑒權(quán)控制模塊預(yù)先初始化定義功能點(diǎn),并對(duì)相應(yīng)的功能點(diǎn)配置界面元素。

進(jìn)一步的,所述的界面元素主要包括:界面名稱、界面地址、界面層級(jí)、界面對(duì)應(yīng)功能點(diǎn)id。

本發(fā)明的有益效果是:1、通過(guò)只對(duì)功能點(diǎn)授權(quán)的方式,更加方便用戶授權(quán)減少管理成本,只配置一次功能點(diǎn),所有終端都可使用;2、統(tǒng)一管理權(quán)限使業(yè)務(wù)模塊對(duì)權(quán)限透明化,使權(quán)限設(shè)計(jì)更加簡(jiǎn)單系統(tǒng)、更加安全可靠;3、所有業(yè)務(wù)系統(tǒng)不能直接被外部訪問(wèn),可以防止權(quán)限穿透,業(yè)務(wù)系統(tǒng)直接拒絕所有外部請(qǐng)求即可,配置簡(jiǎn)單,不易出錯(cuò)。

附圖說(shuō)明

圖1是本發(fā)明的整體方法步驟示意圖;

圖2是本發(fā)明系統(tǒng)組件結(jié)構(gòu)圖;

圖3是本發(fā)明工作原理的詳細(xì)流程圖。

具體實(shí)施方式

下面結(jié)合附圖進(jìn)一步詳細(xì)描述本發(fā)明的技術(shù)方案,但本發(fā)明的保護(hù)范圍不局限于以下所述。

如圖1所示,

一種多端共享的權(quán)限控制方法,其特征在于包括以下步驟:

步驟s01:初始化功能點(diǎn),將所有的控制權(quán)限抽象成為一個(gè)功能點(diǎn),功能點(diǎn)表示一個(gè)具體的功能或者服務(wù);功能點(diǎn)和具體的展示無(wú)關(guān);

步驟s02:給相應(yīng)的功能點(diǎn)配置界面元素,定義具體功能點(diǎn)所對(duì)應(yīng)的界面元素,界面元素和展現(xiàn)有關(guān)是具體界面的表達(dá),和具體展現(xiàn)端關(guān)聯(lián),所述展現(xiàn)端是一種承載界面展現(xiàn)的載體;所述的界面元素是指菜單或者按鈕等;

步驟s03:授權(quán),給用戶和角色授予功能點(diǎn),讓用戶和功能點(diǎn)產(chǎn)生關(guān)聯(lián);不給角色授予界面元素的原因是:基于有對(duì)應(yīng)的功能點(diǎn)權(quán)限才需要展示對(duì)應(yīng)的界面元素的假設(shè),功能點(diǎn)和界面元素本身有關(guān)系因此不需要再和角色發(fā)生關(guān)聯(lián),這樣運(yùn)維人員和業(yè)務(wù)人員不需要知道功能點(diǎn)和界面的關(guān)系,只需要關(guān)注角色本身應(yīng)該擁有什么權(quán)限,簡(jiǎn)化了授權(quán)操作。

步驟s04:權(quán)限控制,調(diào)用鑒權(quán)控制模塊確定該用戶是否有訪問(wèn)權(quán)限。

其中,本實(shí)施例中的功能點(diǎn)、界面元素、展現(xiàn)端具體含義如下:

功能點(diǎn):一個(gè)具體的功能或者服務(wù),比如:修改密碼、查詢用戶、查詢余額等。

界面元素:一些可見的界面可見元素,比如:表單或者按鈕。

展現(xiàn)端:一種承載界面展現(xiàn)的載體,比如:微信、pc瀏覽器、手機(jī)app等;

進(jìn)一步的,還包括步驟s05:界面元素展示,根據(jù)不同用戶配置的權(quán)限展示出不同的界面,具體包括以下子步驟:

子步驟s51:用戶訪問(wèn)后臺(tái)管理界面;

子步驟s52:獲取當(dāng)前用戶和角色;

子步驟s53:根據(jù)用戶和角色找到對(duì)應(yīng)的功能點(diǎn);

子步驟s54:根據(jù)功能點(diǎn)找到對(duì)應(yīng)界面元素;

子步驟s55:根據(jù)當(dāng)前界面元素找到所有上級(jí)界面元素;

子步驟s56:根據(jù)界面元素上下級(jí)關(guān)系組裝界面元素;

子步驟s57:返回給客戶端并展示界面元素。

進(jìn)一步的,所述的步驟s01中,所述功能點(diǎn)和具體的展示無(wú)關(guān),功能點(diǎn)的初始化操作最佳是在開發(fā)階段定義;除此之外功能點(diǎn)的初始化操作也可以在其他任何階段定義。

進(jìn)一步的,所述的步驟s02中,功能點(diǎn)可以是有界面承載的服務(wù),也可以是沒有界面的接口,因此不是每個(gè)功能點(diǎn)都要和界面元素對(duì)應(yīng),功能點(diǎn)通過(guò)客戶端的url地址或命令模式中的操作指令識(shí)別。

進(jìn)一步的,所述的步驟s04中,用戶所有請(qǐng)求首先經(jīng)統(tǒng)一接入模塊接入服務(wù)器,而不能直接訪問(wèn)具體業(yè)務(wù),業(yè)務(wù)系統(tǒng)可以通過(guò)防火墻等方式直接拒絕前端發(fā)來(lái)的非法請(qǐng)求。

進(jìn)一步的,所述統(tǒng)一接入模塊,除了服務(wù)的反向代理外,還負(fù)責(zé)權(quán)限的統(tǒng)一攔截、定義路由策略,統(tǒng)一接入模塊根據(jù)返回結(jié)果和訪問(wèn)端判斷,如果鑒權(quán)通過(guò)則直接訪問(wèn)業(yè)務(wù)系統(tǒng),如果鑒權(quán)失敗則根據(jù)不同端跳轉(zhuǎn)到對(duì)應(yīng)界面或者響應(yīng)錯(cuò)誤碼。

進(jìn)一步的,所述的步驟s04中調(diào)用鑒權(quán)控制模塊確定該用戶是否有訪問(wèn)權(quán)限具體包括以下子步驟:

子步驟s41:根據(jù)訪問(wèn)的界面元素和當(dāng)前用戶和角色,找到對(duì)應(yīng)的功能點(diǎn);

子步驟s42:根據(jù)權(quán)限點(diǎn)的配置判斷是否符合訪問(wèn)規(guī)則;

子步驟s43:返回鑒權(quán)結(jié)果給代理服務(wù)器。

如圖2所示:

一種多端共享的權(quán)限控制系統(tǒng),其特征在于包括以下組件:

客戶端:是指與服務(wù)器相對(duì)應(yīng),為客戶提供本地服務(wù)的程序;

統(tǒng)一接入模塊:負(fù)責(zé)所有業(yè)務(wù)的反向代理服務(wù)和權(quán)限攔截,是權(quán)限控制的閥門;

鑒權(quán)控制模塊:權(quán)限控制的核心控制器、負(fù)責(zé)具體權(quán)限控制的檢查,權(quán)限控制的具體邏輯、權(quán)限的授予;

業(yè)務(wù)模塊:執(zhí)行具體業(yè)務(wù)的服務(wù)或系統(tǒng)是功能點(diǎn)的使用方;

客戶端請(qǐng)求業(yè)務(wù)模塊時(shí)總是先請(qǐng)求到統(tǒng)一接入模塊,統(tǒng)一接入模塊先根據(jù)客戶端id、當(dāng)前用戶id和url地址訪問(wèn)鑒權(quán)控制模塊,鑒權(quán)控制模塊根據(jù)相關(guān)配置得到用戶是否具有相關(guān)權(quán)限,統(tǒng)一接入模塊再根據(jù)鑒權(quán)控制模塊返回的數(shù)據(jù)決定是將請(qǐng)求反向代理到業(yè)務(wù)端,還是直接將錯(cuò)誤信息返回給前端,如果訪問(wèn)到業(yè)務(wù)模塊表明該用戶已經(jīng)具有該功能點(diǎn)的訪問(wèn)權(quán)限,而無(wú)需相關(guān)代碼對(duì)其進(jìn)行權(quán)限控制,業(yè)務(wù)模塊處理完業(yè)務(wù)邏輯,通過(guò)統(tǒng)一接入模塊直接返回給前端。

進(jìn)一步的,所述的鑒權(quán)控制模塊預(yù)先初始化定義功能點(diǎn),并對(duì)相應(yīng)的功能點(diǎn)配置界面元素。

進(jìn)一步的,所述的界面元素主要包括:界面名稱、界面地址、界面層級(jí)、界面對(duì)應(yīng)功能點(diǎn)id。

具體的,一種多端共享的權(quán)限控制系統(tǒng)包括客戶端、統(tǒng)一接入模塊、鑒權(quán)控制模塊、業(yè)務(wù)模塊四大部分。

客戶端或稱為用戶端,是指與服務(wù)器相對(duì)應(yīng),為客戶提供本地服務(wù)的程序。比如:pc瀏覽器、微信、app。

統(tǒng)一接入模塊負(fù)責(zé)所有業(yè)務(wù)的反向代理服務(wù)和權(quán)限攔截,是權(quán)限控制的閥門。

鑒權(quán)控制模塊是權(quán)限控制的核心控制器、負(fù)責(zé)具體權(quán)限控制的檢查,權(quán)限控制的具體邏輯、權(quán)限的授予等。

業(yè)務(wù)模塊是執(zhí)行具體業(yè)務(wù)的服務(wù)或系統(tǒng)是功能點(diǎn)的使用方。

這四大結(jié)構(gòu)是權(quán)限控制的基本要素,它們的關(guān)系是:

當(dāng)客戶端請(qǐng)求業(yè)務(wù)模塊時(shí)總是先請(qǐng)求到統(tǒng)一接入模塊。

統(tǒng)一接入模塊先根據(jù)客戶端id、當(dāng)前用戶id和url地址訪問(wèn)鑒權(quán)控制模塊。

鑒權(quán)控制模塊根據(jù)相關(guān)配置得到用戶是否具有相關(guān)權(quán)限。

統(tǒng)一接入模塊再根據(jù)鑒權(quán)控制模塊返回的數(shù)據(jù)決定是將請(qǐng)求反向代理到業(yè)務(wù)端,還是直接將錯(cuò)誤信息返回給前端。

如果訪問(wèn)到業(yè)務(wù)模塊表明該用戶已經(jīng)具有該功能點(diǎn)的訪問(wèn)權(quán)限,而無(wú)需相關(guān)代碼對(duì)其進(jìn)行權(quán)限控制。

業(yè)務(wù)模塊處理完業(yè)務(wù)邏輯,通過(guò)統(tǒng)一接入模塊直接返回給前端。

至此整個(gè)權(quán)限相關(guān)流程執(zhí)行完畢。

一種多端共享的權(quán)限控制方法如下:

步驟s01:初始化功能點(diǎn)

功能點(diǎn)是對(duì)功能的具體描述,主要包括權(quán)限的編碼(便于程序識(shí)別)、功能點(diǎn)名稱、權(quán)限匹配規(guī)則(支持正則表達(dá)式的匹配),功能點(diǎn)和角色,用戶的關(guān)系是多對(duì)多。

具體做法:可以通過(guò)sql腳本、配置文件等方式直接初始化相關(guān)配置。

步驟s02:初始化界面元素

界面元素主要包括:界面名稱、界面地址、界面層級(jí)、界面對(duì)應(yīng)功能點(diǎn)id。配置它們之間的關(guān)系其目的是:為了根據(jù)用戶、角色、功能點(diǎn)、界面元素四者之間的關(guān)系,反查詢出用戶的界面元素和功能點(diǎn),以及通過(guò)界面元素反查出用戶的功能點(diǎn)。

步驟s03:授權(quán)

授予用戶和角色相關(guān)權(quán)限,即給給它分配功能點(diǎn)。使之能夠有相關(guān)功能的操作權(quán)限和展示相關(guān)界面元素。

步驟s04:權(quán)限控制,包括以下子步驟:

s001、當(dāng)用戶通過(guò)客戶端訪問(wèn)一個(gè)具體的前端頁(yè)面或服務(wù)時(shí)先通過(guò)統(tǒng)一接入模塊訪問(wèn)后端服務(wù)。

s002、統(tǒng)一接入模塊收到請(qǐng)求后先訪問(wèn)鑒權(quán)控制模塊,它首先會(huì)判斷當(dāng)前請(qǐng)求是否訪問(wèn)權(quán)限。具體會(huì)根據(jù)界面元素id、請(qǐng)求地址、和當(dāng)前用戶,請(qǐng)求鑒權(quán)控制模塊,并返回是否擁有該權(quán)限。

s003、鑒權(quán)控制模塊在接到請(qǐng)求參數(shù)后會(huì)根據(jù)當(dāng)前用戶或角色找到擁有功能點(diǎn),以及根據(jù)當(dāng)前界面元素標(biāo)識(shí)對(duì)應(yīng)的具體功能點(diǎn)來(lái)綜合判斷,當(dāng)前使用哪個(gè)功能點(diǎn)的規(guī)則進(jìn)行鑒權(quán)判斷。

s004、鑒權(quán)判斷是根據(jù)當(dāng)前url和功能點(diǎn)上配置的權(quán)限規(guī)則進(jìn)行匹配,并返回匹配結(jié)果給統(tǒng)一接入模塊。當(dāng)然如果傳入的是其他的命令也可以定義規(guī)則進(jìn)行匹配。

s005、統(tǒng)一接入模塊會(huì)在接到返回結(jié)果后,根據(jù)鑒權(quán)結(jié)果進(jìn)行處理,如果返回成功結(jié)果則證明有訪問(wèn)權(quán)限,將反向代理到真實(shí)業(yè)務(wù)模塊進(jìn)行業(yè)務(wù)處理。

s006、如果返回失敗,則根據(jù)請(qǐng)求的客戶端跳轉(zhuǎn)到不同的未授權(quán)頁(yè)面,或者如果是ajax則返回對(duì)應(yīng)的錯(cuò)誤碼,由客戶端進(jìn)行統(tǒng)一的處理,跳轉(zhuǎn)到統(tǒng)一頁(yè)面或者調(diào)用原生api進(jìn)行業(yè)務(wù)處理。

如圖3所示:具體的工作原理如下:

開始;

開發(fā)人員對(duì)鑒權(quán)控制模塊進(jìn)行初始化功能點(diǎn);

運(yùn)維人員對(duì)鑒權(quán)控制模塊進(jìn)行界面元素的初始化,并定義界面元素和功能點(diǎn)關(guān)系;

后臺(tái)管理人員通過(guò)鑒權(quán)控制模塊給相應(yīng)角色授予相關(guān)的功能點(diǎn),完成功能點(diǎn)的授權(quán)操作;

客戶端進(jìn)行權(quán)限訪問(wèn);

鑒權(quán)控制模塊根據(jù)用戶、角色和功能點(diǎn)關(guān)系找到對(duì)應(yīng)的功能點(diǎn);或根據(jù)菜單和功能點(diǎn)關(guān)系找到功能點(diǎn);或根據(jù)傳入的規(guī)則和功能點(diǎn)表達(dá)式找到功能點(diǎn);

返回鑒權(quán)結(jié)果給統(tǒng)一接入模塊,統(tǒng)一接入模塊判斷是否有訪問(wèn)權(quán)限;

有訪問(wèn)權(quán)限,訪問(wèn)業(yè)務(wù)系統(tǒng)執(zhí)行,結(jié)束。

無(wú)訪問(wèn)權(quán)限,返回給前端界面,結(jié)束。

以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)理解本發(fā)明并非局限于本文所披露的形式,不應(yīng)看作是對(duì)其他實(shí)施例的排除,而可用于各種其他組合、修改和環(huán)境,并能夠在本文所述構(gòu)想范圍內(nèi),通過(guò)上述教導(dǎo)或相關(guān)領(lǐng)域的技術(shù)或知識(shí)進(jìn)行改動(dòng)。而本領(lǐng)域人員所進(jìn)行的改動(dòng)和變化不脫離本發(fā)明的精神和范圍,則都應(yīng)在本發(fā)明所附權(quán)利要求的保護(hù)范圍內(nèi)。

當(dāng)前第1頁(yè)1 2 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
邹平县| 苗栗市| 海南省| 南郑县| 收藏| 天柱县| 徐州市| 叶城县| 赣榆县| 兴义市| 青铜峡市| 监利县| 樟树市| 郴州市| 邵阳市| 吉首市| 梁山县| 宜兴市| 南部县| 灵石县| 崇义县| 台北市| 瑞安市| 蓝田县| 古田县| 卓尼县| 胶州市| 斗六市| 乌兰县| 皋兰县| 化隆| 富平县| 安阳县| 衡水市| 荃湾区| 青州市| 霞浦县| 莱阳市| 涟源市| 东兰县| 尼木县|