2014-12-10 8 views
5

Ich habe versucht, verschiedene nicht autorisierte URL für verschiedene Rollen im URL-Abschnitt der Datei shiro.ini für eine Webanwendung zuweisen, aber es scheint, ich bin nicht in der Lage, es zu tun. Unten ist der Code, den ich ausprobiert habe.Wie verschiedene unautorisierte URL für verschiedene Rollen in Apache Shiro verwenden

shiro.ini Datei

[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 

Nach der Anmeldung auf die Anwendung seiner Umleitung auf autorisierte Seite mit Fehler Error 401: SRVE0295E: Error reported: 401.

Dieser Fehler trat auf, nachdem ich unauthorizedUrl=/adminAuthPage.xhtml hinzugefügt habe. Wenn es einen Fehler im Code gibt, schlagen Sie bitte vor.

Antwort

0

Was ist mit dir machen eine einzige nicht autorisierte Seite, die jetzt wie ein Einstiegspunkt wirkt auf seiner Seite zu erforderlichen Seiten

403.jsp

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

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

Oder besser umleiten, wenn Sie gerade Admin wollen eine andere Seite hat dann

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

Aber gibt es eine Möglichkeit, es durch Shiro Ini Karte zu tun Klingeln. Wenn Sie irgendeine Lösung finden, die shiro.ini Dateiabbildung verwendet, teilen Sie bitte –

+0

ich folgte Dokumentation und Quellcode, aber ich bin nicht in der Lage, solch eine Zuordnung zu finden. Möglicherweise können Sie eine Verbesserungsanfrage mit Entwicklern stellen. – dev

0

Ich denke nicht, dass dies die Art ist, wie es getan werden sollte, Sie möchten grundsätzlich eine Erlaubnis innerhalb der Rollen hinzufügen.

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

diese

/testapp/** = authc1, Rollen [admin, unauthorizedUrl =/adminAuthPage.xhtml]

sollte sein:

/testapp/** = authc1, rollen [admin], perms ["admin: :"]

+0

Das ist, was ich versucht, aber es funktioniert nicht,/testapp/** = authc1, Rollen [admin], Dauer [0: admin: unauthorizedUrl =/adminAuthPage.xhtml] /userfld/** = authc2, Rollen [Benutzer], Dauer [ : unauthorizedUrl =/abortPage.xhtml "] –

Verwandte Themen