KingShawn / Blog

【 技术博客 】
3 stars 2 forks source link

Spring Security 问题集锦(持续更新) #6

Open KingShawn opened 8 years ago

KingShawn commented 8 years ago

1、循环重定向次数太多,导致页面无法访问

案例: 在spring-security.xml中配置

  <!-- 所有url访问必须有ROLE_USER用户权限 -->
  <security:intercept-url pattern="/**" access="ROLE_USER"/>
  <!-- 登录 -->
  <security:form-login login-page="/login.action"  authentication-failure-url="/login.action?status=error" default-target-url='/login.action?status=login' always-use-default-target="true" />

问题分析: 上面配置对于所有的链接必须要有ROLE_USER权限,否则就跳到链接为/login.action,重定向到链接/login.action后,又认为没有ROLE_USER用户权限,无限循环下去,被浏览器捕获,出现异常。

解决方案: spring security 对于链接权限规则的判断是按照配置从上到下,找到了就返回。 所以在配置文件上加上

 <!-- 直接访问login不拦截 -->
<security:intercept-url pattern="/login.action" access="IS_AUTHENTICATED_ANONYMOUSLY" />

配置位于如下配置上面即可。

<!-- 所有url访问必须有ROLE_USER用户权限 -->
  <security:intercept-url pattern="/**" access="ROLE_USER"/>

2、request请求多次到达后台控制层

案例: 访问登录页,在浏览器network下查看有多次链接跳转到login.action的控制层中。

问题分析: 点击多次跳转的链接,查看contentType为script,说明是脚本资源,可能是静态资源css/img/js文件的链接请求也被spring security 权限框架过滤了一遍。

解决方案: 在spring-security.xml配置文件中加上如下配置即可

        <!-- 静态资源不拦截 -->
        <security:intercept-url pattern="/resources/**" access="IS_AUTHENTICATED_ANONYMOUSLY" />  
rovast commented 6 years ago

求大佬持续更新 :smile: