shiro 登陆重定向的问题

clipboard.png

各位,这个问题是怎么回事??


<!-- 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 ,这个是为什么

阅读 12.9k
2 个回答
新手上路,请多包涵

/home=authc authc: 指定需要认证的uri,意思是每次访问都需要认证 你可以改为 /home=user,这样就只需要认证一次就可以了。这样就可以了

大概就是,你进入/home这个页面你上面是说要认证,但是你认证失败,就返回到登录页了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题