2016-08-21 8 views
0
 <Filter> 
            <Filter-name> shiroFilter </ filter-name> 
            <Filter-class> org.springframework.web.filter.DelegatingFilterProxy </ filter-class> 
            <Init-param> 
                <Param-name> targetFilterLifecycle </ param-name> 
                <Param-value> true </ param-value> 
            </ Init-param> 
        </ Filter> 
            <Filter-mapping> 
                <Filter-name> shiroFilter </ filter-name> 
                <Url-pattern>/admin/* </ url-pattern> 
            </ Filter-mapping> 
     
        <Filter> 
        <Filter-name> menberShiroFilter </ filter-name> 
            <Filter-class> org.springframework.web.filter.DelegatingFilterProxy </ filter-class> 
            <Init-param> 
                <Param-name> targetFilterLifecycle </ param-name> 
                <Param-value> true </ param-value> 
            </ Init-param> 
        </ Filter> 
            <Filter-mapping> 
                <Filter-name> menberShiroFilter </ filter-name> 
                <Url-pattern>/menber/* </ url-pattern> 
            </ Filter-mapping> 

Когда сиро и веб-интеграция настраивается в web.xmlКак сиро проверяется по-разному в зависимости от префикса URL

Возникает вопрос: когда в одной и той же точки зрения, через доступ к админ приставкой URL успешный вход в систему, перейдите на главную страницу, например http: // localhost: 8080/admin/index.do, затем введите это окно браузера http: // localhost: 8080/menber/index.do, время для мендера, поскольку оно может получить прямой доступ к префиксу URL и не требует входа в систему. Требование: если не было зарегистрировано предупреждение в префиксе URL-адреса, как мы можем его достичь?

ответ

0

Я не уверен, что я полностью следовать вопрос, вы можете захотеть взглянуть на этот документ: http://shiro.apache.org/web.html#Web-WebINIconfiguration

Вместо определения отображения фильтра в два раза, можно фильтровать все «/ *». а затем настроить ваши требования доступа через shiro.ini (или пружинный боб) [urls] /index.html = anon /user/create = anon /user/** = authc /admin/** = authc, roles[administrator] /remoting/rpc/** = authc, perms["remote:invoke"]

Это было взято из существующих, например, в этом случае index.html и /user/create доступны для анонимного пользователя, /user/** просто требует вошедшему пользователь. /admin/** требует авторизированного пользователя с разрешением administrator. И, наконец, /remoting/rpc/** требует авторизированного пользователя с разрешения remote:invoke.

+0

Спасибо за ваш ответ, но у меня есть вопрос: http: // localhost: 8080/admin/login.jsp логин успешно, в том же браузере и введите http: // localhost: 8080/menber/index, если вы не используете мейнбер, вы должны перейти на страницу входа в http: // localhost: 8080/menber/login.jsp. Согласно вашему подходу, явно не может быть достигнуто ах, потому что это общий вопрос, я требую, чтобы это как? Спасибо. , – stackhuige