<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中配置shiro和web集成时
现在的问题是:在同一视图中,通过访问admin前缀url成功登录,跳转到主页,如http:// localhost:8080 / admin / index.do,然后进入此浏览器窗口http:// localhost:8080 / menber / index.do,因为它可以直接访问URL前缀,而不需要登录现在需求是:如果menber没有登录URL前缀必须记录,我们怎样才能实现呢?
答案 0 :(得分:0)
我不确定我是否完全关注此问题,您可能需要查看此文档:http://shiro.apache.org/web.html#Web-WebINIconfiguration
您可以过滤所有'/ *',而不是两次定义过滤器映射。然后通过shiro.ini(或一个spring bean)配置访问要求
[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
的登录用户。