shiro+SSM不同身份的用户退出到不同的登录页面

来源:互联网 发布:电脑桌面提示标签软件 编辑:程序博客网 时间:2024/06/05 19:32


1.在shiro文件中加入bean,类关联为org.apache.shiro.web.filter.authc.LogoutFilter,取名要和下面的对应,重定向的名字要和对应的一样
  1. <bean id="logoutFilter" class="org.apache.shiro.web.filter.authc.LogoutFilter">
  2. <property name="redirectUrl" value="/admin" />
  3. </bean>


2.在shiro配置文件中加入logoutFilter,这个名字是可以随便取的,我这里取名adminlogout
  1. <bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean">
  2. <property name="securityManager" ref="securityManager" />
  3. <!-- loginUrl认证提交地址,如果没有认证将会请求此地址进行认证,请求此地址将由formAuthenticationFilter进行表单认证 -->
  4. <property name="loginUrl" value="/login.action" />
  5. <!-- 认证成功统一跳转到first.action,建议不配置,shiro认证成功自动到上一个请求路径 -->
  6. <!-- <property name="successUrl" value="/first.action"/> -->
  7. <!-- 通过unauthorizedUrl指定没有权限操作时跳转页面-->
  8. <property name="unauthorizedUrl" value="/refuse.jsp" />
  9. <property name="filters">
  10. <map>
  11. <!-- 将自定义 的FormAuthenticationFilter注入shiroFilter中-->
  12. <entry key="authc" value-ref="myFormAuthenticationFilte" />
  13. <entry key="adminlogout" value-ref="logoutFilter" />
  14. </map>
  15. </property>
3.在property 名字为filterChainDefinitions中加入/adminlogout.action = adminlogout

  1. <property name="filterChainDefinitions">
  2. <value>
  3. <!-- 对静态资源设置匿名访问 -->
  4. <!-- 请求 logout.action地址,shiro去清除session-->
  5. /logout.action = logout
  6. /adminlogout.action = adminlogout
  7. <!--权限静态数据进行测试,取消url拦截配置,使用注解授权方式 -->
  8. <!-- /** = authc 所有url都必须认证通过才可以访问-->
  9. /** = authc
  10. <!--/** = authc -->
  11. <!-- /** = anon所有url都可以匿名访问 -->
  12. </value>
  13. </property>

4。在springmvc中的Controller类中加入
  1. @RequestMapping("admin")
  2. // @RequiresPermissions("admin:admin")
  3. public String adminLogin(){
  4. return "admin/login";
  5. }
0 0
原创粉丝点击