मेरे पास सत्र में उपयोगकर्ता को पाने और सेट करने की एक सेवा है। यदि उपयोगकर्ता में लॉग इन किया गया है और सोचा है कि फ़िल्टर सबसे अच्छा तरीका होगा तो मुझे प्रत्येक उपयोगकर्ता जानकारी में प्रत्येक उपयोगकर्ता जानकारी में पास करना होगा, इसलिए मुझे प्रत्येक नियंत्रक/क्रिया में डुप्लिकेट करने की आवश्यकता नहीं है। जब मैं अनुप्रयोग चलाने, यह इस त्रुटि मिलती है:क्या मैं Grails में फ़िल्टर में एक सेवा इंजेक्ट कर सकता हूं?
Error creating bean with name 'userService': Scope 'session' is not active for the current thread
मेरे फिल्टर इस तरह दिखता है:
class SecurityFilters {
def userService
def filters = {
setUser(controller:'*', action:'*') {
before = {
if (userService.isLoggedIn()) {
request.user = userService.getUser()
} else {
request.user = null
}
}
}
}
}
मैं मैं सिर्फ अंत में session.user के माध्यम से उपयोगकर्ता उपयोग कर सकते हैं पता है, लेकिन मैं होना चाहता हूँ userService.isLoggedIn() को कॉल करने में सक्षम है जो मैं आसानी से दृश्य के माध्यम से नहीं कर सकता। तो क्या फ़िल्टर में सेवा को इंजेक्ट करने का कोई तरीका है, या क्या मुझे सिर्फ userService.isLoggedIn() को लपेटने के लिए टैगलिब बनाना चाहिए?
ठीक है, जवाब मैं नहीं कर सकता था। मैंने एक टिप्पणी जो स्पष्ट रूप से हटा दी गई है, कह रही है कि मैं एक अलग दृष्टिकोण नहीं दे सका। – varikin