各位,这个问题是怎么回事??
<!-- Shiro 过滤器 将ShiroFilter配置到spring容器即可: -->
<bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean">
<!-- Shiro的核心安全接口,这个属性是必须的 -->
<property name="securityManager" ref="securityManager" />
<!-- 身份认证失败,则跳转到登录页面的配置 --> <!-- 登录路径 -->
<property name="loginUrl" value="/login" />
<!-- successUrl 指定登录成功后的重定向地址 -->
<property name="successUrl" value="/home" />
<!-- 用户访问无权限的链接时跳转此页面 -->
<property name="unauthorizedUrl" value="/login" />
<!-- Shiro连接约束配置,即过滤链的定义 -->
<!-- authc拦截器表示需要身份认证通过后才能访问 -->
<property name="filterChainDefinitions">
<value>
/=anon
/login=anon
/dologin=anon
/exit=anon
/static/**=anon
/home=authc
</value>
</property>
</bean>
问题: 为什么 controller中调用subject .login(token)方法验证成功之后 将用户重定向到/home ,这个时候浏览器请求/home ,但是controller(/home)并没有收到请求,而是被shiro拦截再次重定向到了/login ,这个是为什么
/home=authc authc: 指定需要认证的uri,意思是每次访问都需要认证 你可以改为 /home=user,这样就只需要认证一次就可以了。这样就可以了