摘要:在我開發(fā)之前只看見上海交通大學(xué)完成了自己的二次開發(fā),并且接入了自己學(xué)校的統(tǒng)一身份認(rèn)證系統(tǒng),除此之外,南京大學(xué)也打算做這個(gè)東西,然而過去了兩年,好像還是沒有完成開發(fā)。具體的實(shí)現(xiàn)可以參照上海交通大學(xué)的問卷吧系統(tǒng)。
Limesurvey是一個(gè)比較著名的開源問卷調(diào)查項(xiàng)目,GitHub地址:https://github.com/LimeSurvey/LimeSurvey
但由于種種原因,雖然用搜索引擎能夠依稀看見很多高校希望使用它來建設(shè)自己學(xué)校的調(diào)查問卷系統(tǒng),但在國內(nèi)完成率比較低下。在我開發(fā)之前只看見上海交通大學(xué)完成了自己的二次開發(fā),并且接入了自己學(xué)校的統(tǒng)一身份認(rèn)證系統(tǒng),除此之外,南京大學(xué)也打算做這個(gè)東西,然而過去了兩年,好像還是沒有完成開發(fā)。
猜測,國內(nèi)比較滯后的原因有以下的兩年:
1、調(diào)查問卷系統(tǒng)屬于校園的非核心業(yè)務(wù),能夠利用第三方系統(tǒng)(問卷星等)解決問題,再利用iframe進(jìn)行網(wǎng)頁的嵌套,完全沒有自己花錢開發(fā)的太大必要。
2、國內(nèi)Limesurvey的參考資料特別少,甚至連如何去使用的文檔都特別少,更不用談是開發(fā)文檔。 由于大多是英文文檔,國內(nèi)使用比較遲鈍。
高校進(jìn)行開發(fā),主要是兩個(gè)問題,一個(gè)是接入自己的全校身份統(tǒng)一認(rèn)證系統(tǒng)(大學(xué)學(xué)校使用的是開源的CAS系統(tǒng)),其次就是改變他自己的非現(xiàn)代風(fēng)格樣式。
Limesurvey是用PHP+多種數(shù)據(jù)庫進(jìn)行開發(fā)的。使用的框架是某個(gè)版本的YII(估計(jì)還經(jīng)過自己的改造),變量比較多,代碼量也比較大。
樣式問題比較簡單,一般情況下可以修改他比較原始的表格布局,替換成現(xiàn)代的DIV布局。或者直接修改CSS樣式即可。但并非所有能看到的東西都是通過模板渲染引擎來實(shí)現(xiàn)的,有很大的一部分是在自己控制的類里面echo直接輸出的。
比較重要的是接入CAS認(rèn)證系統(tǒng),基本上可以分為兩個(gè)部分:
利用CAS系統(tǒng)進(jìn)行后臺(tái)的登錄,登錄后可以發(fā)布調(diào)查問卷
針對發(fā)布的調(diào)查問卷做一定權(quán)限控制。最為基礎(chǔ)的就是把調(diào)查問卷分為兩部分,一部分填寫調(diào)查問卷需要進(jìn)行CAS的認(rèn)證,一部分對所有的人進(jìn)行開放。
具體的實(shí)現(xiàn)可以參照上海交通大學(xué)的問卷吧系統(tǒng)。
利用CAS系統(tǒng)進(jìn)行后臺(tái)的登錄
limesurvey系統(tǒng)對用戶的要求主要有ID, name, email, password. 這些東西除了password之外基本上CAS的attributes都可以以一個(gè)數(shù)組的形式進(jìn)行提供,如果提供不了就可以和password一樣處理,即符合他要求的格式即可(比如哈爾濱工業(yè)大學(xué)的無法提供email, 可以給每個(gè)賬戶的默認(rèn)email是學(xué)號@hit.edu.cn)
我們需要做的首先是在配置中打開 authcasautocreate_permission, 具體可以參見config-default.php中的配置內(nèi)容。網(wǎng)址:https://github.com/LimeSurvey/LimeSurvey/blob/master/application/config/config-defaults.php#L187 ,一般情況下開啟create即可實(shí)現(xiàn)自動(dòng)創(chuàng)建用戶的權(quán)限
然后就是創(chuàng)建用戶的東西了:
大體上是在登錄之前進(jìn)行檢測是否登錄(參見官方提供的SDK),在沒有登錄的情況下跳轉(zhuǎn)到CAS服務(wù)器,然后跳轉(zhuǎn)回來的時(shí)候即可獲取到CAS服務(wù)器提供的一些基礎(chǔ)信息。然后對新創(chuàng)建的用戶進(jìn)行一些設(shè)置。
實(shí)現(xiàn)起來不是特別的復(fù)雜。更為重要的事,有人已經(jīng)關(guān)于這個(gè)問題進(jìn)行過相關(guān)的開發(fā),并且有一個(gè)插件,你只需要進(jìn)行簡單的修改就可以實(shí)現(xiàn)登錄登出這一塊的問題了(在我的幫助下,現(xiàn)在已經(jīng)兼容最新版的Limesurvey);
插件地址:https://github.com/univlorraine/limesurvey-cas
用CAS控制調(diào)查問卷的訪問權(quán)限
Limesurvey在設(shè)計(jì)的時(shí)候就已經(jīng)考慮過類似的問題,即不是針對所有的人都開放調(diào)查問卷。具體的內(nèi)容是在后臺(tái)的“發(fā)布與訪問控制”中“使用驗(yàn)證碼”來控制碼。
這個(gè)原始的功能就是為了防止機(jī)器等暴力填寫調(diào)查問卷,而出現(xiàn)了驗(yàn)證碼這一操作,在設(shè)計(jì)上很符合接入CAS統(tǒng)一認(rèn)證。
如此,我們只需要替換相關(guān)的代碼。即把之前的驗(yàn)證碼相關(guān)的代碼替換成CAS部分即可對問卷的訪問權(quán)限進(jìn)行有效的控制。
?
寫在后面:
正如本文所說的一樣,本文只是提供一下開發(fā)過程中遇到的問題的大體解決思路,并不涉及如何去二次開發(fā)這個(gè)過程。
如果你恰巧也在進(jìn)行這個(gè)開發(fā),有什么問題歡迎在評論中指出。
原文地址:http://life.rccoder.net/php/1092.html
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/21110.html
摘要:的統(tǒng)一認(rèn)證授權(quán)是下面的一個(gè)簡單,易用的權(quán)限框架,對于單體應(yīng)用來講,完全能夠極好的,快速的滿足權(quán)限的需求,所以一般在做項(xiàng)目的時(shí)候,都會(huì)成為開發(fā)者的首選。 Shiro的統(tǒng)一認(rèn)證授權(quán) Shiro是Apache下面的一個(gè)簡單,易用的Java權(quán)限框架,對于單體應(yīng)用來講,Shiro完全能夠極好的,快速的滿足權(quán)限的需求,所以一般在做項(xiàng)目的時(shí)候,Shiro都會(huì)成為開發(fā)者的首選。 可是,如果你需要做第二...
摘要:一簡介單點(diǎn)登錄,簡稱為,是目前比較流行的企業(yè)業(yè)務(wù)整合的解決方案之一。客戶端攔截未認(rèn)證的用戶請求,并重定向至服務(wù)端,由服務(wù)端對用戶身份進(jìn)行統(tǒng)一認(rèn)證。三搭建客戶端在官方文檔中提供了客戶端樣例,即。 一、簡介 單點(diǎn)登錄(Single Sign On),簡稱為 SSO,是目前比較流行的企業(yè)業(yè)務(wù)整合的解決方案之一。SSO的定義是在多個(gè)應(yīng)用系統(tǒng)中,用戶只需要登錄一次就可以訪問所有相互信任的應(yīng)用系...
摘要:在將臭未臭之前,我們趕緊把其中的統(tǒng)一認(rèn)證這塊過一下。的歷史前面說了是耶魯大學(xué)實(shí)驗(yàn)室的在年出的一個(gè)開源系統(tǒng)。這次我們先看看官網(wǎng)出的一幅圖,這張圖片介紹了的組成以及支持的各種協(xié)議,各種特性,不煩看看 為什么要做這個(gè)嘗試? 微服之道,方興未艾;農(nóng)之來學(xué)者,蓋已千者! 這句是從《陶山集·太學(xué)案問》瞎改出來的。意思就是微服務(wù)的架構(gòu)理念還在不斷地發(fā)展,現(xiàn)在整個(gè)啥都 言必出微服務(wù),差點(diǎn)都到了 沒學(xué)...
摘要:所以客戶端的集成主要是單點(diǎn)登錄的集成,客戶端指定需要做安全認(rèn)證的頁面,然后的安全包檢測校驗(yàn)用戶登錄情況,并自動(dòng)與登錄頁面進(jìn)行跳轉(zhuǎn)交互。提供了很多配置的方式,有,,以及其他可查官網(wǎng)。但高度自由的一如既往的,沒有提供可視化操作的界面。 前兩篇介紹了Apereo CAS以及服務(wù)器端的安裝,但還不夠完整,服務(wù)端還沒有Application真正用起來呢!這篇文章將介紹怎么用起來 集成的目的 客戶...
摘要:針對這種情況,友戶通特定開發(fā)了聯(lián)邦用戶中心來支持企業(yè)的自有用戶中心。友戶通支持通過協(xié)議使用企業(yè)內(nèi)部的支持協(xié)議的用戶中心賬號進(jìn)行登錄。友戶通目前支持標(biāo)準(zhǔn)協(xié)議以及友戶通自定義協(xié)議可供企業(yè)集成。 友戶通做用友云的用戶系統(tǒng)也一年多了,經(jīng)常聽實(shí)施、售前等說要私有化部署友戶通,原因無非是企業(yè)的考慮到用戶安全性和單一用戶賬號的需求。但由于用戶管理的復(fù)雜性,友戶通部署與維護(hù)并不容易,因此經(jīng)常糾結(jié)在用戶...
閱讀 2290·2023-04-26 00:01
閱讀 796·2021-10-27 14:13
閱讀 1810·2021-09-02 15:11
閱讀 3381·2019-08-29 12:52
閱讀 528·2019-08-26 12:00
閱讀 2569·2019-08-26 10:57
閱讀 3405·2019-08-26 10:32
閱讀 2848·2019-08-23 18:29