spring中 shiro logout 配置方式
2016-08-29 19:03
155 查看
spring中 shiro logout 配置方式有两种方式实现logout
1. 普通的action中 实现自己的logout方法,取到Subject,然后logout
这种需要在ShiroFilterFactoryBean 中配置 filterChainDefinitions
对应的action的url为anon
2. 使用shiro提供的logout filter 需要定义 相应的bean
对应在 shiroFilterChainDefinitions中将对应的url改为logout
1. 普通的action中 实现自己的logout方法,取到Subject,然后logout
@RequestMapping(value = "${adminPath}/logout", method = RequestMethod.GET) public String logout(HttpServletRequest request, HttpServletResponse response, Model model) throws IOException { Principal principal = UserUtils.getPrincipal(); // 如果已经登录,则跳转到管理首页 if(principal != null){ UserUtils.getSubject().logout(); } return "redirect:" + adminPath+"/login"; }
这种需要在ShiroFilterFactoryBean 中配置 filterChainDefinitions
对应的action的url为anon
<bean name="shiroFilterChainDefinitions" class="java.lang.String"> <constructor-arg> <value> /static/** = anon /userfiles/** = anon ${adminPath}/cas = cas ${adminPath}/login = authc ${adminPath}/logout = anno ${adminPath}/** = user /act/rest/service/editor/** = perms[act:model:edit] /act/rest/service/model/** = perms[act:model:edit] /act/rest/service/** = user /ReportServer/** = user </value> </constructor-arg> </bean>
2. 使用shiro提供的logout filter 需要定义 相应的bean
<<bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean"> <property name="securityManager" ref="securityManager" /><!-- <property name="loginUrl" value="${cas.server.url}?service=${cas.project.url}${adminPath}/cas" /> --> <property name="loginUrl" value="${adminPath}/login" /> <property name="successUrl" value="${adminPath}?login" /> <property name="filters"> <map> <entry key="cas" value-ref="casFilter"/> <entry key="authc" value-ref="formAuthenticationFilter"/> <entry key="logout" value-ref="logoutFilter" /> </map> </property> <property name="filterChainDefinitions"> <ref bean="shiroFilterChainDefinitions"/> </property> </bean>
对应在 shiroFilterChainDefinitions中将对应的url改为logout
<bean name="shiroFilterChainDefinitions" class="java.lang.String"> <constructor-arg> <value> /static/** = anon /userfiles/** = anon ${adminPath}/cas = cas ${adminPath}/login = authc ${adminPath}/logout = logout ${adminPath}/** = user /act/rest/service/editor/** = perms[act:model:edit] /act/rest/service/model/** = perms[act:model:edit] /act/rest/service/** = user /ReportServer/** = user </value> </constructor-arg> </bean>并配置loginFilterbean
<bean id="logoutFilter" class="org.apache.shiro.web.filter.authc.LogoutFilter"> <property name="redirectUrl" value="${adminPath}/login" /> </bean>
相关文章推荐
- spring中 shiro logout 配置方式
- spring中 shiro logout 配置方式
- spring中 shiro logout 配置方式
- spring整合shiro使用注解方式配置
- spring mvc中 shiro logout 配置方式
- 简单两步快速实现shiro的配置和使用,包含登录验证、角色验证、权限验证以及shiro登录注销流程(基于spring的方式,使用maven构建)
- spring配置ibatis的jdbc方式和proxool连接池方式
- Spring事务配置的五种方式
- spring 中加载xml配置文件的方式
- Spring中读取bean配置文件的几种方式
- spring2中基于注释的配置方式浅析
- 对比Spring 1.0与2.0的事务配置方式
- Spring事务配置的五种方式
- spring 中加载xml配置文件的方式.
- Spring事务配置的五种方式
- Spring事务配置的五种方式
- Spring事务配置的五种方式
- Spring配置数据源的三种方式
- spring 中加载xml配置文件的方式.
- 在Spring中配置DataSource的方式