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