2012-06-08 14 views
7

के बराबर है, यदि कोई उपयोगकर्ता की कोई निश्चित भूमिका नहीं है तो मैं एक छवि को एक लिंक से रोकना चाहता हूं। जैसेबहिष्कृत <sec: authorize> ifNotGranted विशेषता

<sec:authorize ifNotGranted="ROLE_ACCOUNTS" ><img src="someimage.jpg"/></sec:authorize> 
<sec:authorize ifAllGranted="ROLE_ACCOUNTS" ><a href="somelink.htm"><img src="someimage.jpg"/></a></sec:authorize> 

हालांकि ifNotGranted और ifAllGranted अब पहुँच अभिव्यक्ति के पक्ष में पदावनत कर रहे हैं। मैं देख सकता हूँ कि ifAllGranted साथ दोहराया जा सकता है:

<sec:authorize access="hasRole('ROLE_ACCOUNTS')"><a href="somelink.htm"><img src="someimage.jpg"/></a></sec:authorize> 

लेकिन यह कैसे दोहराया जा सकता है ifNotGranted पहुँच पद्धति का उपयोग करके? किसी भी मदद की सराहना की जाएगी।

+0

एक्सेस = "isFully प्रमाणीकृत() और हैरोल ('ROLE_ACCOUNTS') नहीं है" – Ritesh

+0

@Ritesh धन्यवाद 'isFullyAuthenticated() 'किसी अन्य पृष्ठ के लिए बहुत उपयोगी हो सकता है। यहां हालांकि पृष्ठ एक्सेस केवल उपयोगकर्ताओं में लॉग इन करने के लिए उपलब्ध है। 'हैरोल नहीं है ('ROLE_ACCOUNTS') ने चाल की है। – arontoms

उत्तर

24

स्पेल अभिव्यक्ति ! ऑपरेटर के साथ नकार दिया जा सकता है:

<sec:authorize access="!hasRole('ROLE_ACCOUNTS')">...</sec:authorize> 

भी देखें:

2

मामले यदि आप अद्यतन करने के लिए, मेरा सुझाव है कई फाइलों है में

को खोजने और बदलने के लिए नियमित एक्सप्रेस का उपयोग करें

लगता है

<sec:authorize\s+ifAnyGranted="([^"]+)" 

<sec:authorize access="hasAnyRole('$1')" 

के साथ बदलें और खोज

<sec:authorize\s+ifNotGranted="([^"]+)" 

साथ

<sec:authorize access="!hasAnyRole('$1')" 

आशा इस कर सकते हैं की जगह रों आप समय