2014-12-10 22 views
5

Web uygulaması için shiro.ini dosyasının url bölümünde farklı roller için farklı yetkisiz url atamaya çalışıyorum, ancak bunu yapamıyorum. Aşağıda denediğim kod var.Apache shiro'daki farklı roller için farklı yetkisiz URL'ler nasıl kullanılır?

shiro.ini dosya uygulaması hatası Error 401: SRVE0295E: Error reported: 401 ile yetkili sayfaya kendi yönlendirme için Giriş yaptıktan sonra

[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 

.

unauthorizedUrl=/adminAuthPage.xhtml ekledikten sonra bu hata oluştu. Kodda herhangi bir hata varsa lütfen öneriniz.

cevap

0

Tek bir yetkisizlik yapmamaya ne dersiniz? Sadece yöneticisi başka bir sayfası vardır istiyorsanız onun sayfada artık giriş noktası gibi davranır sayfa sonra

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

Ama shiro ini haritasıyla bunu yapmanın herhangi bir yolu var mı ping. Shiro.ini dosya eşlemesi kullanarak herhangi bir çözüm bulursanız lütfen –

+0

'u paylaşın. Dokümantasyon ve kaynak kodunu takip ettim ancak böyle bir haritalama bulamıyorum. Geliştiricilerle bir geliştirme isteği geliştirebilirsiniz. – dev

0

Bunun yapılmasının bir yolu olduğunu düşünmüyorum, temelde rollerin içine bir izin eklemek istiyorsunuz.

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

bu

/TestApp/** = authc1, roller [yönetici, unauthorizedUrl =/adminAuthPage.xhtml]

olmalıdır:

/TestApp/** = authc1, roller [admin], izinler ["admin: :"]

+0

Bu ne olduğunu gerekli sayfalarda

403.jsp

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

Ya da daha yönlendirme i denedim ama çalışmıyor,/testapp/** = authc1, roller [admin], izinler ["admin: unauthorizedUrl =/adminAuthPage.xhtml"] /userfld/** = authc2, roller [kullanıcı], perms ['kullanıcı : unauthorizedUrl =/abortPage.xhtml "] –

İlgili konular