0
在我的grails應用程序中使用簡單的過濾器登錄&安全性。 現在我需要根據登錄的用戶角色使用不同的登錄憑證連接到db - test1。如果管理員登錄獲取寫入權限,則登錄&,如果用戶角色登錄,則爲只讀。 如何使用濾波器實現它?根據用戶角色訪問數據庫。在這裏使用過濾器來保證安全
DataSource.groovy的
environments {
development {
/*IF LOGIN 'ADMIN' - SHOULD CONNECT USING THIS
dataSource {
username = 'admin'
password = 'Guard1an'
url = "jdbc:jtds:sqlserver://test1:1433;
MVCC=TRUE"
dbCreate = 'update'
}
/*IF LOGIN 'USER' - SHOULD CONNECT USING THIS*/
dataSource {
dbCreate = "update" // one of 'create', 'create-drop','update'
username = 'user'
password = 'tesoyear'
url = "jdbc:jtds:sqlserver://test1:1433;
}
dataSource_wldb1 {
username = 'gdx'
password = 'pinoil'
url = "jdbc:jtds:sqlserver://wldb:1433/IVR_GUARDIAN"
dbCreate = 'update'
}
}
SecuirityFilter.groovy
class SecurityFilters {
def filters = {
loginCheck(controller: 'load', action: '*') {
before = {
if (!session.user && !actionName.equals('login')) {
flash.message = "User is not Logged in.Please login "
redirect(controller:'user', action: 'index')
return false
}
}
}
}
}
嗯,謝謝你的回覆,但我沒有使用彈簧安全插件,所以想用簡單的過濾器(見我的上面的代碼)。沒有插件可能嗎? – sana
我寫了這個答案,因爲有一個標籤'spring-security'。如果你已經在會話中使用過用戶(你已經在過濾器中使用它作爲'session.user'?),這只是查詢用戶角色的某個數據庫/文件的問題。現在你的問題到底是什麼? – droggo
請參閱我的datasource.groovy.this加載時,我運行 - 應用程序在用戶登錄之前的項目和在會話中的角色,所以我想做的事情,使數據源使用單獨的憑據數據庫連接取決於哪個rle登錄。做到這一點是我真正的問題。 – sana