NutzCN Logo
问答 shiro集成redis,用redis存储session
发布于 2140天前 作者 qq_d8511140 3483 次浏览 复制 上一个帖子 下一个帖子
标签:









问题,配置中添加后,就不执行shiroRealm中的doGetAuthorizationInfo验证权限的方法了,去掉了就可以执行

6 回复
<bean id="shiro" class="com.cat.shiro.ShiroFilter"></bean>
	<bean id="shiroRealm" class="com.cat.shiro.ShiroRealm" />
	<!-- shiro获取在线数 start-->
	<bean id="webSessionManager" class="org.apache.shiro.web.session.mgt.DefaultWebSessionManager">
        <property name="sessionDAO" ref="redisSessionDao"/>
        <property name="sessionIdCookie" ref="sharesession"/>
    </bean>

    <!-- sessionIdCookie的实现,用于重写覆盖容器默认的JSESSIONID -->
    <bean id="sharesession" class="org.apache.shiro.web.servlet.SimpleCookie">
        <!-- cookie的name,对应的默认是 JSESSIONID -->
        <constructor-arg name="name" value="SHAREJSESSIONID"/>
        <!-- jsessionId的path为 / 用于多个系统共享jsessionId -->
        <property name="path" value="/"/>
    </bean>

    <bean id="redisSessionDao" class="com.main.java.dao.RedisSessionDao">
    </bean>

	<!-- shiro获取在线数 end-->
	<bean id="securityManager" class="org.apache.shiro.web.mgt.DefaultWebSecurityManager">
		<property name="realm" ref="shiroRealm" />
		<!-- 需要使用cache的话加上这句 -->
		<property name="cacheManager" ref="shiroEhcacheManager" />
		<!-- shiro获取在线数 start-->
		<property name="sessionManager" ref="webSessionManager" />
		<!-- shiro获取在线数 end-->
	</bean>

spring?不晓得,nutz的话可以参加nutzcn的shiro.ini

参照了很多例子。没发现问题,也试了好多,就是不行,寻思问问你

cacheManager你设置成ehcache了,并非redis

你现在这写法是给securityManager设置缓存,所以只调用一次(然后被缓存了),应该是给sessionManager设置cacheManager

添加回复
请先登陆
回到顶部