使用shiro搭建项目过程中,总是出现登录页面 登录第一次有效果,登陆第二次出现302状态码,第三次又有效果,第四次又没有效果的局面。
因此,采用ajax提交页面登录的用户名和密码,但是在引用js的过程中,明明js的地址和引用路径正确,却总是报错如下:
Uncaught SyntaxError: Unexpected token <
页面代码反复的看,找不到原因。
解决问题:
最后发现,是因为shiro的配置中,并未将js路径下的文件放过,导致页面引用js时候出现被拦截,出现302状态码,导致重定向到了规定的未登陆页面。
这也就是为什么页面引用Js总出现上面的错误的问题~!
<!-- Shiro过滤器 -->
<bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean">
<!-- Shiro的核心安全接口,这个属性是必须的 -->
<property name="securityManager" ref="securityManager"/>
<!-- 身份认证失败,则跳转到登录页面的配置 -->
<property name="loginUrl" value="/index.jsp"/>
<!-- 权限认证失败,则跳转到指定页面 -->
<property name="unauthorizedUrl" value="/error.jsp"/>
<!-- Shiro连接约束配置,即过滤链的定义 -->
<property name="filterChainDefinitions" ref="filterChainDefinitions" />
</bean>
<bean name="filterChainDefinitions" class="java.lang.String">
<constructor-arg>
<value>
/=anon
/index.jsp=anon
/login/login.htmls=anon
/js/** = anon
/**=authc
</value>
</constructor-arg>
</bean>
将js路径下文件放过,即可