2014-12-10 7 views
5

में विभिन्न भूमिकाओं के लिए विभिन्न अनधिकृत यूआरएल का उपयोग कैसे करें मैं वेब एप्लिकेशन के लिए shiro.ini फ़ाइल के यूआरएल अनुभाग में विभिन्न भूमिकाओं के लिए अलग-अलग अनधिकृत यूआरएल असाइन करने का प्रयास कर रहा हूं लेकिन ऐसा लगता है कि मैं इसे करने में सक्षम नहीं हूं। नीचे वह कोड है जिसे मैंने आजमाया है।अपाचे शिरो

shiro.ini फ़ाइल

[main] 

    authc1 = org.apache.shiro.web.filter.authc.FormAuthenticationFilter 
    authc2 = org.apache.shiro.web.filter.authc.FormAuthenticationFilter 

    authc1.loginUrl = /login.xhtml 
    authc2.loginUrl = /secLoginPage.xhtml 


[urls] 
    /login.xhtml = authc1 
    /secLoginPage.xhtml = authc2 
    /testapp/** = authc1, roles[admin,unauthorizedUrl=/adminAuthPage.xhtml] 
    /userfld/**=authc2,roles[user,unauthorizedUrl=/abortPage.xhtml] 
    /** = authc1 
    /** = authc2 

अनुप्रयोग त्रुटि Error 401: SRVE0295E: Error reported: 401 साथ अधिकृत पेज के लिए अपनी रीडायरेक्ट के प्रवेश करने के बाद।

यह त्रुटि तब हुई जब मैंने unauthorizedUrl=/adminAuthPage.xhtml जोड़ा। यदि कोड में कोई गलती है तो कृपया सुझाव दें।

उत्तर

0

आपके बारे में क्या एक अनधिकृत पेज है कि अपने पृष्ठ पर अब एक प्रवेश बिंदु की तरह काम करता आवश्यक पृष्ठों

403.jsp

<shiro:hasRole name="admin"> 
    <c:redirect url="adminAuthPage.xhtml"/> 
</shiro:hasRole> 

<shiro:hasRole name="user"> 
    <c:redirect url="abortPage.xhtml"/> 
</shiro:hasRole> 

या बेहतर को अनुप्रेषित अगर आप सिर्फ व्यवस्थापक एक अन्य पेज है चाहते हैं तो

<shiro:hasRole name="admin"> 
     <c:redirect url="adminAuthPage.xhtml"/> 
</shiro:hasRole> 
<shiro:lacksRole name="admin"> 
    <c:redirect url="abortPage.xhtml"/> 
</shiro:lacksRole> 
+0

लेकिन क्या शिरो इनआई मानचित्र द्वारा ऐसा करने का कोई तरीका है पिंग। यदि shiro.ini फ़ाइल मैपिंग का उपयोग करके कोई समाधान मिलता है तो कृपया –

+0

साझा करें मैंने दस्तावेज़ और स्रोत कोड का पालन किया लेकिन मैं ऐसा मैपिंग नहीं ढूंढ पा रहा हूं। हो सकता है कि आप डेवलपर्स के साथ सुधार अनुरोध बढ़ा सकें। – dev

0

मुझे नहीं लगता कि यह वही तरीका है, आप मूल रूप से भूमिकाओं के अंदर एक अनुमति जोड़ना चाहते हैं।

http://shiro.apache.org/web.html

इस

/TestApp/** = authc1, भूमिकाओं [व्यवस्थापक, unauthorizedUrl =/adminAuthPage.xhtml]

होना चाहिए:

/TestApp/** = authc1, भूमिकाएं [व्यवस्थापक], परमिट ["व्यवस्थापक: :"]

+0

यह क्या है मैं कोशिश की लेकिन यह काम नहीं कर रहा है,/testapp/** = authc1, भूमिकाएं [व्यवस्थापक], परमिट ["व्यवस्थापक: unauthorizedUrl =/adminAuthPage.xhtml"] /userfld/** = authc2, भूमिकाएं [उपयोगकर्ता], परमिट ["उपयोगकर्ता : unauthorizedUrl =/abortPage.xhtml "] –

संबंधित मुद्दे