spring中 shiro logout 配置方式

原创 2016年08月29日 19:03:49
spring中 shiro logout 配置方式有两种方式实现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>


shiro实现系统的退出功能

思路: 1.shiro有许多过滤器,其中就有一个LogoutFilter的过滤器,只需要继承并重写preHandle方法 2.在配置文件中注入自定义实现的过滤器,在此配置当退出的时候应重定向到某个...
  • chengxuzaza
  • chengxuzaza
  • 2017年06月03日 13:56
  • 3315

我的shiro之旅: 十三 shiro 用户的登录与退出

shiro的登录与退出非常简单,在这里简单给出代码,更详细可以参考官网。 (1) 用户的登录 public void login(User user, HttpServletRequest req...
  • LHacker
  • LHacker
  • 2014年03月04日 10:23
  • 13207

shiro 自定义logout路径

分享一个shiro 自定义 logout 路径的方法。(亲测可用) shiro默认logout路径是主页,可是实际开发中并不想这样。尝试了网上的两种方法都失败了。在无数的疼苦挣扎中找到了一种适合自己的...
  • qq_19558705
  • qq_19558705
  • 2016年06月14日 09:30
  • 5426

shiro整合开发-实现登陆和退出功能

1.登录 原理: 使用FormAuthenticationFilter过滤器实现,当被    /** = authc    拦截到,就会进入FormAuthenticationFilter过滤器, 用...
  • weixin_38104426
  • weixin_38104426
  • 2017年05月19日 19:30
  • 449

Apache Shiro 退出

退出操作可以通过调用subject.logout()来释放你的登录信息,如: currentUser.logout(); //removes all identifying inf...
  • peterwanghao
  • peterwanghao
  • 2012年10月18日 09:43
  • 14612

spring中 shiro logout 配置方式

有两种方式实现logout 1. 普通的action中 实现自己的logout方法,取到Subject,然后logout 这种需要在ShiroFilterFactoryBean 中配置 filte...
  • AlbertFly
  • AlbertFly
  • 2016年08月05日 14:56
  • 1634

spring中 shiro logout 配置方式

原文来自:http://blog.csdn.net/ght521/article/details/52355663 spring中 shiro logout 配置方式有两种方式实现logout ...
  • snakeMoving
  • snakeMoving
  • 2017年08月09日 21:06
  • 247

Shiro-Subject 分析

Subject反正就好像呈现的视图。所有Subject 都绑定到SecurityManager,与Subject的所有交互都会委托给SecurityManager;可以把Subject认为是一个门面;...
  • u012881904
  • u012881904
  • 2016年12月18日 15:33
  • 8266

基于SpringMVC实现认证过程(subject.login(token))

认证就是验证用户身份的过程。在认证过程中,用户需要提交实体信息(Principals)和凭据信息(Credentials)以检验用户是否合法。最常见的“实体/凭证”组合便是“用户名/密码”组合。 一...
  • sinat_35767703
  • sinat_35767703
  • 2017年03月28日 10:49
  • 5980

第二章 身份验证 (一) 登录、退出

身份验证,即在应用中谁能证明他就是他本人。一般提供如他们的身份ID 一些标识信息来表明他就是他本人,如提供身份证,用户名/密码来证明。 在 shiro 中,用户需要提供principals (身份)...
  • yifanSJ
  • yifanSJ
  • 2017年08月15日 00:05
  • 264
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:spring中 shiro logout 配置方式
举报原因:
原因补充:

(最多只允许输入30个字)