




已閱讀5頁(yè),還剩21頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
權(quán)限集成FineReport權(quán)限集成概述為了對(duì)某張報(bào)表的對(duì)象操作進(jìn)行控制,讓某一部分人擁有一張報(bào)表的部分或全部的操作權(quán)限,對(duì)報(bào)表的操作控制其權(quán)限,F(xiàn)ineReport提供了簡(jiǎn)單易用、功能強(qiáng)大的權(quán)限系統(tǒng),即基于B/S的權(quán)限控制。如:與ERP, CRM,OA、.Net等軟件或項(xiàng)目中的現(xiàn)有系統(tǒng)進(jìn)行權(quán)限集成,當(dāng)然FineReport權(quán)限系統(tǒng)也可以作為獨(dú)立的權(quán)限系統(tǒng)使用。這里我們主要講解FineReport權(quán)限系統(tǒng)與現(xiàn)有的項(xiàng)目系統(tǒng)的權(quán)限集成。而FineReport與系統(tǒng)的權(quán)限集成主要是對(duì)登錄用戶的身份認(rèn)證配置和角色可訪問(wèn)模板配置來(lái)實(shí)現(xiàn)對(duì)權(quán)限的控制。其中,用戶的身份認(rèn)證配置可通過(guò)4種方式來(lái)實(shí)現(xiàn),分別是:數(shù)據(jù)集用戶、LDAP用戶、HTTP認(rèn)證服務(wù)、不啟用內(nèi)置用戶。角色可訪問(wèn)模板配置,即角色權(quán)限配置,有啟用內(nèi)置角色和不啟用角色之分。下面我們分別針對(duì)不同的客戶需求列出其實(shí)現(xiàn)的方案流程。注:目前FineReport的權(quán)限控制都是基于網(wǎng)絡(luò)應(yīng)用的,所以我們需要建立一個(gè)服務(wù)器以及FineReport的報(bào)表工程(詳細(xì)設(shè)置可以查看服務(wù)器部署章節(jié)內(nèi)容)。這里的服務(wù)器通常指Tomcat,WebSphere,Weblogic,Jboss等服務(wù)器,瀏覽器主要指主流的IE,F(xiàn)irefox等,如下方案流程,我們都以Tomcat服務(wù)器為例。補(bǔ)充說(shuō)明:1. 對(duì)于最終用戶、IT部門(mén)等把報(bào)表作為一個(gè)獨(dú)立的工程,不同用戶訪問(wèn)報(bào)表時(shí)首先需要進(jìn)行登錄,對(duì)登陸用戶進(jìn)行認(rèn)證,認(rèn)證成功則允許該用戶訪問(wèn)工程下對(duì)應(yīng)的報(bào)表,否則則沒(méi)有權(quán)限訪問(wèn),這種情況下可以依據(jù)不同情景使用數(shù)據(jù)集用戶認(rèn)證或者LDAP認(rèn)證等。2. 對(duì)于ERP、OA、.Net等項(xiàng)目平臺(tái)中,報(bào)表只是整個(gè)工程的一個(gè)模塊,此時(shí)又分為如下常用情景。l 用戶登陸: 如OA系統(tǒng),不需要在報(bào)表服務(wù)端再進(jìn)行認(rèn)證,只要OA端認(rèn)證通過(guò)登陸成功便可進(jìn)入報(bào)表模塊,即不啟用內(nèi)置用戶。l 用戶登陸OA系統(tǒng)后,不同的用戶所能看到的報(bào)表是不同的,因此需要對(duì)登陸的用戶進(jìn)行認(rèn)證,獲得用戶對(duì)應(yīng)的角色,從而控制報(bào)表訪問(wèn)權(quán)限。若用戶權(quán)限信息存于數(shù)據(jù)庫(kù)或windows的LDAP中,此時(shí)便可使用數(shù)據(jù)集用戶認(rèn)證或LDAP認(rèn)證;若系統(tǒng)有統(tǒng)一的認(rèn)證體系,則可以使用HTTP認(rèn)證方式。權(quán)限管理平臺(tái)前提準(zhǔn)備:在tomcat服務(wù)器下有(如:WebReport)部署報(bào)表工程。部署方法可參考服務(wù)器部署章節(jié)內(nèi)容。FineReport自帶有 BS端的權(quán)限管理平臺(tái),啟動(dòng)報(bào)表服務(wù)器,在此以tomcat為例。在瀏覽器中輸入如下地址即可訪問(wèn)FineReport權(quán)限管理平臺(tái):http:/localhost:8080/WebReport/ReportServer?op=fr_platform / ip、端口及工程名可根據(jù)實(shí)際情況改變。權(quán)限管理平臺(tái)主要有三個(gè)作用 用戶身份認(rèn)證配置 角色可訪問(wèn)模板配置 平臺(tái)管理控制訪問(wèn)op=fr_platform的權(quán)限管理平臺(tái),是管理權(quán)限平臺(tái)的。在實(shí)際應(yīng)用系統(tǒng)中,并不是每個(gè)人都能訪問(wèn)該權(quán)限管理平臺(tái)的,只有屬于管理員的用戶才可查看與修改權(quán)限。此時(shí)就需要對(duì)權(quán)限管理平臺(tái)進(jìn)行權(quán)限設(shè)置。默認(rèn)的情況下是沒(méi)有設(shè)置權(quán)限的,所有用戶都可以訪問(wèn)此op=fr_platform頁(yè)面,這里當(dāng)配置了后,就需要用已有的可訪問(wèn)角色的用戶才能訪問(wèn)該平臺(tái)。平臺(tái)訪問(wèn)權(quán)限管理打開(kāi)權(quán)限管理平臺(tái),點(diǎn)擊左側(cè)的平臺(tái)管理節(jié)點(diǎn),增加可管理平臺(tái)的角色,如下圖所示,我們?cè)黾右粋€(gè)“管理員”角色,點(diǎn)擊確定。注:按鈕的含義依次為增加角色、刪除角色、編輯角色、保存角色、自動(dòng)刷新獲得所有權(quán)限。重啟tomcat服務(wù)器,再次訪問(wèn):http:/localhost:8080/WebReport/ReportServer?op=fr_platform可以看到,訪問(wèn)管理平臺(tái)時(shí)需要先進(jìn)行登錄,若使用非管理員角色的用戶登陸,將會(huì)提示沒(méi)有認(rèn)證,則不能進(jìn)入也就不能管理該平臺(tái)。只有帶有管理員角色的用戶登陸才能夠管理該平臺(tái),如下所示:其中用戶身份認(rèn)證與角色訪問(wèn)模板權(quán)限在后續(xù)章節(jié)中將詳細(xì)介紹。典型的權(quán)限集成方案數(shù)據(jù)集身份認(rèn)證與權(quán)限控制的全流程方案1. 在自定義的登陸界面中,從seesion中獲取用戶名密碼傳遞給報(bào)表服務(wù)邏輯實(shí)現(xiàn)過(guò)程:需集成的系統(tǒng)自定義登陸頁(yè)面,如:“username”“password”登陸提交后,將信息保存于session中,再通過(guò)一個(gè)過(guò)程將信息傳給報(bào)表的“fr_username”,“fr_password”,并會(huì)匹配對(duì)應(yīng)的“fr_role”等,將信息也保存于session中。注:這里FineReport是以fr_*形式識(shí)別命名參數(shù)的。其處理您系統(tǒng)的自定義登陸頁(yè)面的代碼如下:對(duì)java系統(tǒng),可在您系統(tǒng)的對(duì)應(yīng)登陸功能的傳參實(shí)現(xiàn)的代碼段中通過(guò)以下語(yǔ)句將用戶名:“username”,密碼:“password”作為key保存于session中,傳遞給我們的報(bào)表服務(wù),代碼如下:session.setAttribute(form_value, fr_username: + username + , fr_password: + password + );對(duì)java或是非java系統(tǒng),無(wú)論您的自定義登陸頁(yè)面如何,必要的元素肯定是有的,就如下一個(gè)簡(jiǎn)單的登陸頁(yè)面來(lái)講解情況,如下字體標(biāo)注為紅色和綠色的代碼,為您系統(tǒng)的登陸頁(yè)面需要添加和需要相應(yīng)修改的代碼,要注意下不能整個(gè)拷貝代碼。這段代碼是實(shí)現(xiàn)將對(duì)應(yīng)的值傳給我們報(bào)表服務(wù)的邏輯實(shí)現(xiàn)過(guò)程。這里例舉的簡(jiǎn)單登陸頁(yè)面代碼如下:function loginFR(path, username, password) var s=document.createElement(script); s.type= text/javascript ; s.src=path + /ReportServer?op=auth_login&form_value=fr_username: + username + , + fr_password: + password + ; var head=document.getElementsByTagName(head)0; alert(s.src); head.appendChild(s); function doSubmit() var username = document.getElementById(username).value;var password = document.getElementById(password).value;document.getElementById(form_value).value = fr_username: + username + ,fr_password: + password + ;loginFR(10:8079/WebReport, username, password); /這里是FR系統(tǒng)的服務(wù)器地址login.submit(); /這里的action指您系統(tǒng)項(xiàng)目的登陸頁(yè)面的表單提交給服務(wù)器的轉(zhuǎn)向地址用戶名:密 碼:代碼講解,如下:2.數(shù)據(jù)集身份認(rèn)證配置2.1 設(shè)計(jì)器基本操作2.1.1 數(shù)據(jù)庫(kù)表的準(zhǔn)備建服務(wù)器數(shù)據(jù)集前,數(shù)據(jù)庫(kù)中要建好用戶名-密碼和用戶名-角色相應(yīng)的表。如:在Access數(shù)據(jù)庫(kù)中,我們建好相應(yīng)的數(shù)據(jù)表,命名:FRDemo.mdb,放置FineReport安裝目錄下,如:C:FineReport6.5WebReport下。然后打開(kāi)設(shè)計(jì)器|服務(wù)器|定義數(shù)據(jù)連接,如圖所示:選擇Access數(shù)據(jù)庫(kù),驅(qū)動(dòng)器是會(huì)隨選擇的數(shù)據(jù)庫(kù)聯(lián)動(dòng)匹配選擇的;用戶名和密碼是要和您安裝的數(shù)據(jù)庫(kù)對(duì)應(yīng)。其URL中的DBQ= ,點(diǎn)擊,選擇放置的數(shù)據(jù)庫(kù)FRDemo.mdb的路徑,亦可寫(xiě)成DBQ=$ENV_HOME.FRDemo.mdb ,其$ENV_HOME.是可以自動(dòng)獲取您當(dāng)前安裝的是C:FineReport6.5WebReport下,點(diǎn)擊測(cè)試連接,連接成功即可。2.1.2 設(shè)置Tomcat下的FineReport工程報(bào)表環(huán)境首先我們要打開(kāi)FineReport的設(shè)計(jì)器并更改報(bào)表環(huán)境到Tomcat下的FineReport工程。而設(shè)置Tomcat下的FineReport工程報(bào)表環(huán)境,步驟如下:在打開(kāi)的設(shè)計(jì)器中,點(diǎn)擊,在出來(lái)的界面中點(diǎn)擊,如下:在報(bào)表配置運(yùn)行環(huán)境中界面中,點(diǎn)擊,添加設(shè)置Tomcat下的FineReport工程報(bào)表環(huán)境。2.1.3 建用戶-密碼表、用戶-角色表服務(wù)器數(shù)據(jù)集打開(kāi)報(bào)表數(shù)據(jù)集,點(diǎn)擊,如:分別建立兩個(gè)數(shù)據(jù)集ds1、ds2,分別自定義命名為:用戶名-密碼表、用戶名-角色表。在FRDemo表中分別拖入用戶名-密碼和用戶名-角色相應(yīng)的數(shù)據(jù)表即可,如下:2.2 用戶認(rèn)證設(shè)置2.2.1 啟動(dòng)tomcat服務(wù)器,打開(kāi)權(quán)限管理平臺(tái):http:/localhost:8080/WebReport/ReportServer?op=fr_platform點(diǎn)擊左側(cè)的用戶身份認(rèn)證配置|數(shù)據(jù)集用戶,如下進(jìn)行設(shè)置,點(diǎn)擊確定保存設(shè)置。該步是設(shè)置選擇您剛在服務(wù)器數(shù)據(jù)集中已建有的的用戶名-密碼表、用戶名-角色表的兩個(gè)數(shù)據(jù)集,此設(shè)置用戶認(rèn)證時(shí)的用戶名、密碼、角色要與報(bào)表中設(shè)置的數(shù)據(jù)集匹配。其中,登陸模板路徑:即登陸頁(yè)面,默認(rèn)為空,將使用FineReport內(nèi)置的登陸界面http:/localhost:8080/WebReport/ReportServer?op=auth_loginui,也可以輸入自定義登陸界面地址。這里我們舉例輸入:10:8080/WebReport/login.html?as=asd 即設(shè)置再次打開(kāi)權(quán)限管理平臺(tái):http:/localhost:8080/WebReport/ReportServer?op=fr_platform時(shí),就自動(dòng)跳轉(zhuǎn)到您系統(tǒng)的登陸界面,即我們上面設(shè)置輸入的地址:10:8080/WebReport/login.html?as=asd。自動(dòng)轉(zhuǎn)向地址:指您直接訪問(wèn)的登陸界面,輸入用戶名-密碼認(rèn)證成功后,會(huì)自動(dòng)跳轉(zhuǎn)到此地址。若要是設(shè)置了身份認(rèn)證操作,再進(jìn)行角色權(quán)限的操作控制,則這里的自動(dòng)轉(zhuǎn)向地址就用處不大。(因?yàn)槟斎胗脩裘?密碼認(rèn)證成功后,主要是查看某角色所對(duì)應(yīng)的模板的相關(guān)權(quán)限設(shè)置),當(dāng)然您也可以設(shè)置自動(dòng)轉(zhuǎn)向地址,依需求決定。2.2.2 查看用戶身份認(rèn)證是否已經(jīng)成功方法若此步驟的用戶身份認(rèn)證配置成功,則會(huì)在tomcat的安裝路徑的最終resources文件夾下有privilege 文件生成,如下圖所示:3. 角色可訪問(wèn)模板配置(即角色權(quán)限配置)3.1 簡(jiǎn)要論述在實(shí)際應(yīng)用中,用戶登陸后,若只要認(rèn)證成功,便可對(duì)所有報(bào)表進(jìn)行任何操作:訪問(wèn)、表單填報(bào)等,此時(shí)可以設(shè)置不啟用角色控制。但若還需要根據(jù)登錄的用戶所擁有的角色,來(lái)控制該用戶的某些報(bào)表的操作權(quán)限,此時(shí)便需要啟用角色進(jìn)行控制。您可以利用FineReport中的角色權(quán)限來(lái)控制,以下介紹一下FineReport的角色可訪問(wèn)模板權(quán)限配置過(guò)程。登陸的用戶通過(guò)上一章節(jié)的認(rèn)證,是可以在報(bào)表服務(wù)端進(jìn)行認(rèn)證,亦或在所擁有的認(rèn)證系統(tǒng)進(jìn)行認(rèn)證,或者是只需在系統(tǒng)登陸時(shí)認(rèn)證。不管是哪種認(rèn)證方式,只要認(rèn)證成功,報(bào)表服務(wù)便會(huì)獲得該用戶對(duì)應(yīng)的角色,接下來(lái)就是對(duì)這些角色進(jìn)行對(duì)應(yīng)模板的權(quán)限操作控制。3.2 角色控制模板是否可訪問(wèn)的分類(lèi) 啟用內(nèi)置角色Finereport根據(jù)角色進(jìn)行判斷哪些模板具有可查看/填報(bào)/遠(yuǎn)程設(shè)計(jì)/表單查看的條件 不啟用角色不啟用角色(默認(rèn)選項(xiàng)),任何登陸了finereport報(bào)表服務(wù)器系統(tǒng)的人都可以對(duì)報(bào)表做任何操作,不受控制。3.3 操作步驟若還要進(jìn)行角色控制模板設(shè)置的,我們以前面數(shù)據(jù)集用戶認(rèn)證配置為基礎(chǔ)。訪問(wèn)fr_platform權(quán)限管理平臺(tái),點(diǎn)擊左側(cè)的角色可訪問(wèn)模板配置|啟用內(nèi)置角色,如下圖界面:注意:如:此圖的右側(cè)我們現(xiàn)在所看到的報(bào)表,即要進(jìn)行角色權(quán)限設(shè)置的報(bào)表,是需要之前就把這些報(bào)表放置在服務(wù)器下,這里用的是tomcat服務(wù)器,就把所有報(bào)表放置在tomcat的webappsWebReportWEB-INFReportlets文件夾下,如:C:Program FilesApache SoftwareFoundationTomcat 6.0webappsWebReportWEB-INFreportlets ,另:要是您用的是我們finereport內(nèi)置的服務(wù)器,就放置在以下finereport的安裝路徑下:C:FineReport6.5WebReportWEB-INFreportlets即可。我們點(diǎn)擊“添加全部角色”,會(huì)將用戶名-角色表中的角色全部添加進(jìn)去,如下圖:下面我們對(duì)每個(gè)角色分配對(duì)應(yīng)報(bào)表的操作權(quán)限,如下表:角色權(quán)限管理員對(duì)所有報(bào)表都有查看、填報(bào)、設(shè)計(jì)、表單人事對(duì)所有報(bào)表都沒(méi)有任何權(quán)限銷(xiāo)售只有對(duì)docauthority下的模板有查看、填報(bào)、設(shè)計(jì)、表單的權(quán)限注: 在FineReport中,若某個(gè)角色對(duì)某一路徑下的所有模板都有相同的權(quán)限,此時(shí)可以直接對(duì)文件夾進(jìn)行權(quán)限設(shè)置,設(shè)置的權(quán)限適用于該目錄下所有報(bào)表。保存設(shè)置:4. 實(shí)現(xiàn)用戶認(rèn)證,查看效果4.1 重新啟動(dòng)tomcat服務(wù)器,再次打開(kāi)權(quán)限管理平臺(tái):http:/localhost:8080/WebReport/ReportServer?op=fr_platform就會(huì)自動(dòng)跳轉(zhuǎn)至之前在權(quán)限管理平臺(tái)中已設(shè)置的系統(tǒng)登陸頁(yè)面,現(xiàn)在此登陸界面輸入用戶名-密碼即可。這里運(yùn)行機(jī)子的localhost為:10,下面使用管理員身份Alex,密碼:Alex123進(jìn)行登錄操作,如下:4.2 認(rèn)證成功,查看相應(yīng)的報(bào)表數(shù)據(jù)。當(dāng)輸入用戶名:Alex,密碼:Alex123登陸系統(tǒng),服務(wù)器根據(jù)輸入的用戶名和密碼,經(jīng)過(guò)認(rèn)證,若認(rèn)證成功,會(huì)根據(jù)用戶名繼而到用戶名-角色表數(shù)據(jù)集中取出該用戶所對(duì)應(yīng)的角色,從而控制訪問(wèn)的報(bào)表。認(rèn)證成功,跳轉(zhuǎn)至您初始設(shè)置的能訪問(wèn)的報(bào)表頁(yè)面,也可以在地址欄中輸入可訪問(wèn)的報(bào)表地址,如:訪問(wèn)報(bào)表gettingstarted.cpt ,是不會(huì)再跳出讓您登陸finereport系統(tǒng)的登陸界面,就可以直接訪問(wèn)相應(yīng)的報(bào)表數(shù)據(jù),如下即是:4.3 認(rèn)證失敗,則重新返回登陸界面4.4 用戶注銷(xiāo)登出FineReport內(nèi)置的登出地址為http:/localhost:8080/WebReport/ReportServer?op=auth_logout如:登出用戶Alex,輸入此地址即可。4.5 其他用戶登陸認(rèn)證訪問(wèn)4.5.1 使用Anna用戶登陸,角色為人事,輸入報(bào)表訪問(wèn)地址,如下:訪問(wèn)報(bào)表gettingstarted.cpt,提示沒(méi)有權(quán)限訪問(wèn)的消息,如下:4.5.2 使用Jack進(jìn)行登錄,角色為銷(xiāo)售可查看sale相應(yīng)的報(bào)表但無(wú)法訪問(wèn)gettingstarted.cpt注:對(duì)報(bào)表的操作權(quán)限有如下幾種:查看:對(duì)報(bào)表有分頁(yè)預(yù)覽的權(quán)限填報(bào):可以對(duì)報(bào)表進(jìn)行填報(bào)操作設(shè)計(jì):可以遠(yuǎn)程設(shè)計(jì)報(bào)表表單:可以以表單方式查看報(bào)表與.NET、OA等系統(tǒng)的跨域權(quán)限集成方案1. 在.NET系統(tǒng)的登陸界面中,將登陸的用戶名-密碼傳遞給FineReport報(bào)表服務(wù) 方法可以是以Ajax方式將用戶名密碼發(fā)送給報(bào)表服務(wù),這里我們同樣可以用如上數(shù)據(jù)集身份認(rèn)證與權(quán)限控制的方案中的步驟1所講解的操作方法。2. HTTP認(rèn)證服務(wù)配置用戶認(rèn)證也是可以不在報(bào)表服務(wù)端再進(jìn)行認(rèn)證,對(duì)于ERP、OA、CRM、.NET等軟件或項(xiàng)目中,其本身是有一個(gè)統(tǒng)一的認(rèn)證體系,報(bào)表只作為一個(gè)模塊集成到這些系統(tǒng)中。用戶的權(quán)限信息是保存在自己的服務(wù)器上,其不適合直接開(kāi)放給finereport服務(wù)器,即不需再報(bào)表服務(wù)端進(jìn)行認(rèn)證,用戶登陸系統(tǒng)平臺(tái)后訪問(wèn)報(bào)表模塊,是直接在其統(tǒng)一的認(rèn)證體系中認(rèn)證,而最終返回用戶的角色信息至報(bào)表服務(wù)端,從而控制報(bào)表的訪問(wèn)權(quán)限,此時(shí)就可以使用HTTP認(rèn)證服務(wù)配置。以下講解此認(rèn)證配置。2.1 認(rèn)證配置訪問(wèn)fr_platform權(quán)限管理平臺(tái),點(diǎn)擊左側(cè)用戶身份認(rèn)證配置|HTTP認(rèn)證服務(wù),認(rèn)證地址要是統(tǒng)一的身份認(rèn)證地址 如auth.jsp里設(shè)置的簡(jiǎn)單統(tǒng)一認(rèn)證,點(diǎn)擊確定保存設(shè)置,如下:因步驟1已經(jīng)將用戶名fr_username和密碼fr_password傳遞給了報(bào)表服務(wù),報(bào)表服務(wù)將帶著這兩個(gè)參數(shù)訪問(wèn)認(rèn)證地址(為了保證安全性,使用post方式)。如果返回的結(jié)果是false,即身份認(rèn)證失敗,此時(shí)將會(huì)返回登陸界面,否則以返回的結(jié)果作為該用戶的角色保存在session中。注:此例auth.jsp中用戶的統(tǒng)一認(rèn)證判斷準(zhǔn)則是用戶名與密碼是相同的。代碼如下:3. 角色可訪問(wèn)模板配置(即角色權(quán)限配置)具體詳情及注意點(diǎn)我們?cè)谏弦还?jié)的數(shù)據(jù)集身份認(rèn)證方案中已講述,登陸的用戶通過(guò)以上的HTTP認(rèn)證方式,只要認(rèn)證成功,報(bào)表服務(wù)便會(huì)獲得該用戶的角色。下面對(duì)各角色進(jìn)行對(duì)應(yīng)模板的權(quán)限控制操作。3.1 角色控制模板是否可訪問(wèn)的分類(lèi) 啟用內(nèi)置角色Finereport根據(jù)角色進(jìn)行判斷哪些模板具有可查看/填報(bào)/遠(yuǎn)程設(shè)計(jì)/表單查看的條件 不啟用角色不啟用角色(默認(rèn)選項(xiàng)),任何登陸了finereport報(bào)表服務(wù)器系統(tǒng)的人都可以對(duì)報(bào)表做任何操作,不受控制。3.2 各角色權(quán)限操作我們以HTTP認(rèn)證服務(wù)配置為基礎(chǔ)。訪問(wèn)fr_platform權(quán)限管理平臺(tái),點(diǎn)擊左側(cè)的角色可訪問(wèn)模板配置|啟用內(nèi)置角色,添加角色權(quán)限操作,如下所示:我們點(diǎn)擊“添加全部角色”,如:將用戶名-角色表中的角色全部添加進(jìn)去,如下圖所示:下面我們對(duì)每個(gè)角色分配對(duì)應(yīng)報(bào)表的操作權(quán)限,如下表:角色權(quán)限管理員對(duì)所有報(bào)表都有查看、填報(bào)、設(shè)計(jì)、表單人事對(duì)所有報(bào)表都沒(méi)有任何權(quán)限銷(xiāo)售只有對(duì)docauthority下的模板有查看、填報(bào)、設(shè)計(jì)、表單的權(quán)限注: 在FineReport中,若某個(gè)角色對(duì)某一路徑下的所有模板都有相同的權(quán)限,此時(shí)可以直接對(duì)文件夾進(jìn)行權(quán)限設(shè)置,設(shè)置的權(quán)限適用于該目錄下所有報(bào)表。保存設(shè)置:4. 實(shí)現(xiàn)用戶認(rèn)證,查看效果 重新啟動(dòng)服務(wù)器,再次打開(kāi)權(quán)限管理平臺(tái):http:/localhost:8080/WebReport/ReportServer?op=fr_platform就會(huì)自動(dòng)跳轉(zhuǎn)至之前在權(quán)限管理平臺(tái)中已設(shè)置的系統(tǒng)登陸頁(yè)面,即在此登陸界面輸入用戶名-密碼即可。若是該用戶名-密碼驗(yàn)證通過(guò),那么服務(wù)器就會(huì)返回用戶對(duì)應(yīng)的角色,否則返回false 。4.1 根據(jù)不同的角色,判斷做出相應(yīng)報(bào)表的查看、填報(bào)等操作權(quán)限4.1.1 認(rèn)證成功,則查看相應(yīng)角色的報(bào)表數(shù)據(jù)若是管理員角色,可查看數(shù)據(jù),如下圖:認(rèn)證失敗,則返回重新登陸界面4.1.2 使用Anna用戶登陸,角色為人事,輸入報(bào)表訪問(wèn)地址,如下: 訪問(wèn)報(bào)表gettingstarted.cpt,提示沒(méi)有權(quán)限訪問(wèn)的消息:4.1.3 使用Jack進(jìn)行登錄,角色為銷(xiāo)售可查看sale相應(yīng)的報(bào)表但無(wú)法訪問(wèn)gettingstarted.cpt注:對(duì)報(bào)表的操作權(quán)限有如下幾種:查看:對(duì)報(bào)表有分頁(yè)預(yù)覽的權(quán)限填報(bào):可以對(duì)報(bào)表進(jìn)行填報(bào)操作設(shè)計(jì):可以遠(yuǎn)程設(shè)計(jì)報(bào)表表單:可以以表單方式查看報(bào)表其他認(rèn)證方式LDAP用戶認(rèn)證(使用AD認(rèn)證) 若用戶以微軟的AD認(rèn)證作為權(quán)限控制,使用此認(rèn)證方式,用戶名-密碼等都保存在AD服務(wù)器中。即用戶名、密碼、角色等信息是存放于windows的LDAP中時(shí),便可采用LDAP用戶認(rèn)證方式配置。以下詳細(xì)介紹:在windows的AD中已創(chuàng)建管理員組,其中包含成員登錄名:Alex,密碼:pt*75&5fewf。1. LDAP用戶認(rèn)證配置訪問(wèn)fr_paltform權(quán)限管理平臺(tái):http:/localhost:8080/WebReport/ReportServer?op=fr_platform ,點(diǎn)擊左側(cè)用戶身份認(rèn)證配置|LDAP用戶,*為必填項(xiàng),例如下圖填寫(xiě)的,點(diǎn)擊確定保存信息。同上方案中講的,這里的登陸路徑中填寫(xiě)您需要再次打開(kāi)權(quán)限管理平臺(tái)時(shí)跳轉(zhuǎn)的登陸界面。不填寫(xiě),即默認(rèn)為FR的內(nèi)置登陸界面。自動(dòng)轉(zhuǎn)向地址是同上方案論述一樣。注:這里填寫(xiě)的檢索位置與用戶名后綴是要對(duì)應(yīng)一致的,如這里我們例子中的用戶名后綴是 ,則檢索位置就是DC= finereport ,DC=com如下舉例:我們?cè)贚DAP用戶認(rèn)證中填寫(xiě)的基本信息 URL,檢索位置,用戶名后綴的用例說(shuō)明如:這里在遠(yuǎn)程虛擬機(jī)上的Active Directory進(jìn)行配置,創(chuàng)建用戶名-密碼。在AD中安全組的概念就相當(dāng)于角色,需要將用戶加入到開(kāi)發(fā)組中去,跟設(shè)置角色權(quán)限一樣設(shè)置這里的安全組的模板權(quán)限。如:將Alex用戶右擊添加到FR開(kāi)發(fā)組中去。2. 啟用內(nèi)置角色配置 點(diǎn)擊左側(cè)用戶身份認(rèn)證配置|角色可訪問(wèn)模板配置若是以上面的LDAP用戶認(rèn)證方式為基礎(chǔ),下面再設(shè)置角色配置,即自定義角色。操作:點(diǎn)擊,如:添加FR開(kāi)發(fā)組的角色,設(shè)置相應(yīng)報(bào)表的查看、填報(bào)等操作權(quán)限,如下:另說(shuō)明:添加全部角色按鈕在此認(rèn)證基礎(chǔ)下是限制無(wú)效的,如果將AD域中的用戶名直接設(shè)為角色,設(shè)置權(quán)限后,模板是不能正常反映設(shè)置的相關(guān)權(quán)限的,只能將組名設(shè)為角色,設(shè)置權(quán)限,然后在AD域中將某個(gè)要設(shè)置角色的用戶拖入此組中,以這種方式為AD域中的用戶名設(shè)置角色權(quán)限。點(diǎn)擊確定保存信息即可。3. 實(shí)現(xiàn)用戶認(rèn)證這里用的是FR的默認(rèn)登錄界面:http:/localhost:8080/WebReport/ReportServer?op=auth_logout在出來(lái)的登錄界面:http:/localhost:8080/WebReport/ReportServer?op=auth_loginui 中輸入FR開(kāi)發(fā)組中的用戶名-密碼:Alex/ pt*75&5fewf后,登陸成功,如下圖:提示登陸成功時(shí),再輸入對(duì)應(yīng)url訪問(wèn)報(bào)表的地址,便可訪問(wèn)設(shè)置的對(duì)應(yīng)報(bào)表的權(quán)限。輸入可查看的報(bào)表url地址:查看角色權(quán)限控制的相應(yīng)報(bào)表信息若登陸的用戶名-密碼是錯(cuò)誤的,此時(shí)便提示錯(cuò)誤信息并重新返回至登陸界面,如下圖所示:當(dāng)然您也可以自定義登陸界面,在LDAP用戶認(rèn)證設(shè)置的登陸界面路徑那,選擇您的自定義路徑就可以了,那樣就可在設(shè)置訪問(wèn)某張報(bào)表的權(quán)限后,在訪問(wèn)的時(shí)候會(huì)出現(xiàn)此登陸認(rèn)證界面,即確認(rèn)此用戶是否為添加組的角色,從而執(zhí)行相關(guān)的權(quán)限操作。這就是LDAP用戶認(rèn)證的使用過(guò)程。不啟用內(nèi)置用戶認(rèn)證所選認(rèn)證情景:對(duì)于不希望使用FineReport的前3種認(rèn)證方式,而是一般與項(xiàng)目或系統(tǒng)集成后實(shí)現(xiàn)單點(diǎn)登陸的情況,即不需用戶在FR服務(wù)端認(rèn)證。如:與java應(yīng)用集成時(shí),只需要在一個(gè)Session中放置FineReport內(nèi)置角色參數(shù)fr_authority,若該參數(shù)存在,則FineReport會(huì)根據(jù)此角色參數(shù)判斷,認(rèn)為已經(jīng)登陸了FineReport系統(tǒng)且當(dāng)前的角色為參數(shù)fr_authority的值(多個(gè)角色以逗號(hào)隔開(kāi))。注釋?zhuān)翰粏⒂脙?nèi)置用戶認(rèn)證即不需要在報(bào)表服務(wù)端再進(jìn)行認(rèn)證,也就是訪問(wèn)報(bào)表模塊時(shí)不進(jìn)行用戶認(rèn)證。對(duì)于ERP、OA、CRM等項(xiàng)目或系統(tǒng),其本身登陸后便對(duì)用戶信息進(jìn)行了認(rèn)證,當(dāng)用戶訪問(wèn)報(bào)表模塊時(shí),就不需再對(duì)用戶進(jìn)行認(rèn)證,此時(shí)可以設(shè)置不啟用內(nèi)置用戶認(rèn)證,只需要將用戶對(duì)應(yīng)的角色傳遞給報(bào)表服務(wù)即可。對(duì)于java系統(tǒng),可以在需集成的系統(tǒng)自定義登陸頁(yè)面處理代碼中加如下兩行代碼:HttpSession session = req.getSession(); /從session里提取信息,req為HttpServletRequest session.setAttribute(fr_authority, 管理員); /fr_authority是系統(tǒng)設(shè)置的登錄用戶的角色名字,值為管理員)不同用戶的報(bào)表數(shù)據(jù)訪問(wèn)權(quán)限FineReport權(quán)限管理平臺(tái)設(shè)置的是用戶對(duì)整個(gè)報(bào)表的操作權(quán)限,若您希望不同用戶登陸系統(tǒng)后,訪問(wèn)相同的模板,所看到的數(shù)據(jù)是不同的。如:訪問(wèn)報(bào)表A,中央的賬號(hào)登陸系統(tǒng),看到的是全國(guó)的數(shù)據(jù),而省級(jí)用戶登陸系統(tǒng),看到的是該省級(jí)用戶的數(shù)據(jù),依次往下類(lèi)推。在FineReport報(bào)表系統(tǒng)中式通過(guò)參數(shù)來(lái)控制的。以下我們講解此類(lèi)報(bào)表的不同控制的做法。 由上述章節(jié)內(nèi)容可知,用戶認(rèn)證成功后將會(huì)把該用戶的角色保存在Session中,同樣在訪問(wèn)報(bào)表時(shí),也可以將其他信息,如該用戶所對(duì)應(yīng)的區(qū)域、編號(hào)等信息保存在Session中傳遞給所訪問(wèn)的報(bào)表服務(wù)。 實(shí)例:報(bào)表數(shù)據(jù)是根據(jù)用戶名-角色及其所對(duì)應(yīng)的地區(qū)進(jìn)行控制訪問(wèn)的。1. 在登陸界面中,從session中獲取用戶名與密碼等傳遞給報(bào)表服務(wù) 方法:同于數(shù)據(jù)集用戶身份認(rèn)證方案中所講的自定義登陸界面,根據(jù)不同的情況,添加和修改相應(yīng)的代碼。如:session.setAttribute(form_value, fr_username: + username + , fr_password: + password + );同樣也可用以下方法,對(duì)于java系統(tǒng),如:可以通過(guò)如下語(yǔ)句將“區(qū)域”作為key保存于session中:session.setAttribute(fr_area, 江蘇);對(duì)于非java系 統(tǒng),可以通過(guò)一個(gè)form表單將區(qū)域的值傳給報(bào)表,如: 2. 對(duì)用戶名-密碼認(rèn)證即與數(shù)據(jù)庫(kù)的數(shù)據(jù)集身份認(rèn)證,或統(tǒng)一身份認(rèn)證地址認(rèn)證,可選擇如上所講的不同認(rèn)證方式中任一種認(rèn)證方式對(duì)其用戶名-密碼進(jìn)行認(rèn)證。3. 可對(duì)報(bào)表中定義的相同名字的參數(shù)進(jìn)行過(guò)濾 認(rèn)證后訪問(wèn)報(bào)表時(shí),會(huì)自動(dòng)到Session中獲得相同名字所對(duì)應(yīng)的key的值,并可以使用該值進(jìn)行過(guò)濾。3.1 如:數(shù)據(jù)集中通過(guò)fr_username進(jìn)行過(guò)濾篩選,在sql中加入過(guò)濾篩選語(yǔ)句,即可達(dá)到不同的人看到不一樣的數(shù)據(jù)集。請(qǐng)看如下模板,添加數(shù)據(jù)集,拖入SALES_BASIC表,建立數(shù)據(jù)集ds1,相應(yīng)操作如圖所示:這樣分頁(yè)預(yù)覽時(shí),展示查看到的是所有銷(xiāo)售員的不同地區(qū)的所有數(shù)據(jù)信息。而我們?nèi)绾尾榭吹侥充N(xiāo)售員所在地區(qū)的數(shù)據(jù)信息呢,如下設(shè)置:點(diǎn)擊,編輯報(bào)表數(shù)據(jù)集,在Sql語(yǔ)句后加:where 銷(xiāo)售員 = $fr_username點(diǎn)擊刷新按鈕,刷新SQL中的參數(shù),如輸入銷(xiāo)售員值為Alex后確定,如下:再次分頁(yè)預(yù)覽時(shí),就可查看到銷(xiāo)售員Alex及所在地區(qū)的數(shù)據(jù)信息。當(dāng)然在SQL語(yǔ)句中可同時(shí)添加其他信息:如:SQL中寫(xiě)入語(yǔ)句為SELECT * FROM SALES_BASIC where 銷(xiāo)售員 = $fr_username and 地區(qū) = $area ,預(yù)覽查看如下:3.2 不一樣的人看到的列數(shù)不一樣;不一樣的人登陸后看到的下拉框的值不一樣;報(bào)表的單元格里寫(xiě)=$fr_username,如何顯示值的問(wèn)題。還是用這個(gè)模板的例子講解,如下。3.2.1 模板設(shè)計(jì)中設(shè)置:E3單元格中,寫(xiě)入=$fr_username ,這里的$fr_username參數(shù)的值是通過(guò)相關(guān)的認(rèn)證系統(tǒng)認(rèn)證后,才可以得到。若A是分區(qū)的銷(xiāo)售管理人員,B是銷(xiāo)售主管,則A、B登陸系統(tǒng)經(jīng)過(guò)認(rèn)證后,進(jìn)入查看此報(bào)表是可以看到這里每個(gè)列的值,而B(niǎo)則只需看到地區(qū)和銷(xiāo)售量這兩列的值就可以了。這里就得在其銷(xiāo)售員、銷(xiāo)售日期和產(chǎn)品的這3列作單元格設(shè)置:分別右擊這3列單元格,選擇條件屬性,點(diǎn)擊添加條件屬性,點(diǎn)擊選擇要改變的屬性|列寬, 設(shè)置為0,同時(shí)公式中寫(xiě)入判斷登陸的不同角色的語(yǔ)句,即據(jù)不同的角色使其設(shè)置隱藏就可以了。3.2.2 依據(jù)不同的角色,登陸后進(jìn)入此報(bào)表所看到的下拉框的值不一樣 模板設(shè)計(jì)的設(shè)置中,編輯報(bào)表數(shù)據(jù)集,同上添加參數(shù)fr_area,Sql語(yǔ)句:SELECT * FROM SALES_BASIC where 銷(xiāo)售員 = $fr_username and 地區(qū) = $fr_area 如:在此模板的參數(shù)設(shè)計(jì)界面,fr_area參數(shù)控件設(shè)置:下拉框,在其動(dòng)態(tài)SQL中寫(xiě)入執(zhí)行語(yǔ)句: SELECT * FROM SALES_BASIC where 銷(xiāo)售員 = $fr_username如下: 其地區(qū)是登陸時(shí)通過(guò)Session中獲取的用戶名,而得到角色,區(qū)域等相關(guān)信息。這樣用戶登陸系統(tǒng)認(rèn)證后,進(jìn)入此報(bào)表,然后報(bào)表會(huì)把用戶名-區(qū)域從Session中獲取。這樣就實(shí)現(xiàn)據(jù)不同的角色,登陸系統(tǒng)后進(jìn)入報(bào)表后,區(qū)域的下拉框所看到的下拉框值不同。編輯報(bào)表數(shù)據(jù)的權(quán)限控制的實(shí)現(xiàn)單元格的編輯性權(quán)限設(shè)置如:下面報(bào)表模板的單元格設(shè)置:右擊C5單元格,選擇條件屬性 條件屬性中相關(guān)設(shè)置:點(diǎn)擊添加條件屬性,點(diǎn)擊選擇要改變的屬性|控件,如下: 注:公式中寫(xiě)入此控件的角色條件的編輯等操作設(shè)置。而點(diǎn)擊選擇要改變的屬性|行高或列寬,在公式中寫(xiě)入不同角色的人可查看內(nèi)容的樣式。如行高或列寬,設(shè)置為0,則設(shè)置單元格內(nèi)容對(duì)其不同角色的人,其單元格中的內(nèi)容不可見(jiàn)即隱藏其對(duì)應(yīng)的單元格內(nèi)容。 點(diǎn)擊選擇要改變的屬性里的另外屬性也可進(jìn)行其他的相關(guān)操作,在公式中寫(xiě)入相關(guān)操作語(yǔ)句,同樣是可對(duì)不同角色的人設(shè)置不同的單元格格式或內(nèi)容顯示樣式。用FR做自定義的登陸界面設(shè)置相應(yīng)報(bào)表的權(quán)限1. Login.cpt模板制作圖:打開(kāi)設(shè)計(jì)器,新建模板,如下: 2. 控件設(shè)置用戶名的控件: 密碼的控件:登陸按鈕:按鈕的事件編輯:當(dāng)我們已經(jīng)為一張報(bào)表設(shè)置了相應(yīng)的權(quán)限后,如果自定義的登陸界面,用我們的報(bào)表做,如login.cpt,這個(gè)login.cpt是一定要放在報(bào)表工程(如:WebReport ,這里是tomcat服務(wù)器下的WebReport)下的reportlets文件夾下,若是在設(shè)置某種認(rèn)證方式的登陸模板路徑處輸入為此的login.cpt的URL(這里的URL是訪問(wèn)報(bào)表的路徑),訪問(wèn)時(shí)就會(huì)出現(xiàn)此登陸認(rèn)證界面,如下:注:提交地址必須為$servletURL?op=auth_login,用來(lái)提交輸入的用戶名和密碼,用戶名和密碼的控件名必須為fr_username和fr_password ,提交方式:同步。其相應(yīng)的編輯事件的js代碼,F(xiàn)R報(bào)表的后臺(tái)已加入,不需再手動(dòng)編輯寫(xiě)入。輸入用戶名-密碼正確即可,否則返回提示相應(yīng)的錯(cuò)誤信息。FAQLinux(AS3)系統(tǒng)下部署tomcat問(wèn)題描述FineReport報(bào)表在Linux(AS3)系統(tǒng)下,部署在tomcat環(huán)境下不能瀏覽解決方法首先確保jdk和tomcat的環(huán)境變量設(shè)置正確。假設(shè)我們使用的是jdk是j2sdk1.4.1_02,tomcat版本是jakarta-tomcat-4.1.18。那么正確的配置應(yīng)該如下:假如你的JDK和tomcat
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年礦業(yè)安全與環(huán)保職業(yè)資格考試試卷及答案
- 2025年教育管理與領(lǐng)導(dǎo)考試試題及答案
- 2025年會(huì)計(jì)從業(yè)資格試題及答案
- 2025年電氣工程師資格考試試卷及答案
- 2025年公共衛(wèi)生管理知識(shí)考試試題及答案
- 泄水閘檢修門(mén)水封更換技術(shù)方案1
- 語(yǔ)音交互教具設(shè)計(jì)考核試卷
- 自行車(chē)騎行技巧普及考核試卷
- 調(diào)味品中有機(jī)酸含量的調(diào)控技術(shù)考核試卷
- 消費(fèi)者需求滿足考核試卷
- 學(xué)校食堂食品召回制度
- 2024年銀行考試-銀行間本幣市場(chǎng)交易員資格考試近5年真題集錦(頻考類(lèi)試題)帶答案
- 成人高考成考英語(yǔ)(專(zhuān)升本)試卷與參考答案(2025年)
- 2024年湖北省武漢市中考?xì)v史真題(含解析)
- 藝術(shù)與科學(xué)理論基礎(chǔ)智慧樹(shù)知到答案2024年北京交通大學(xué)
- 2024年金華市中考數(shù)學(xué)試卷
- 2024至2030年中國(guó)建筑信息模型(BIM)行業(yè)發(fā)展?fàn)顩r及趨勢(shì)前景預(yù)判報(bào)告
- 人教版五年級(jí)上冊(cè)小數(shù)乘除法豎式計(jì)算題200道及答案
- 廣東省建筑地基處理技術(shù)規(guī)范
- DL∕T 5003-2017 電力系統(tǒng)調(diào)度自動(dòng)化設(shè)計(jì)規(guī)程
- 部編版(2024)一年級(jí)語(yǔ)文上冊(cè)識(shí)字3《口耳目手足》精美課件
評(píng)論
0/150
提交評(píng)論