0 0

Apache Shiro不能RememberMe0

我shiro和spring集成,在浏览器也看不到有RememberMe cookie

配置是
<bean class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
        <property name="staticMethod" value="org.apache.shiro.SecurityUtils.setSecurityManager"/>
        <property name="arguments" ref="securityManager"/>
    </bean>
 
 
    <bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean">
        <property name="securityManager" ref="securityManager"/>
<property name="filterChainDefinitions">
            <value>
                /admin/**/*=user
                /*=anon
            </value>
        </property>
    </bean>
 
    <bean id="securityManager" class="org.apache.shiro.web.mgt.DefaultWebSecurityManager">
        <property name="realm" ref="jdbcRealm"/>
        <property name="rememberMeManager" ref="rememberMeManager"/>
    </bean>
 
    <bean id="rememberMeCookie" class="org.apache.shiro.web.servlet.SimpleCookie">
        <constructor-arg value="rememberMe"/>
        <property name="httpOnly" value="true"/>
        <property name="maxAge" value="31536000"/>
    </bean>
 
    <bean id="rememberMeManager" class="org.apache.shiro.web.mgt.CookieRememberMeManager">
        <property name="cipherKey" value="#{T(org.apache.shiro.codec.Base64).decode('4AvVhmFLUs0KTA3Kprsdag==')}"/>
        <property name="cookie" ref="rememberMeCookie"/>
    </bean>

@Action("onlogin")
    public void onLogin() {
        UsernamePasswordToken token = new UsernamePasswordToken(name, password);
        token.setRememberMe(true);
        try {
            SecurityUtils.getSubject().login(token);
            ServletUtils.printJSON(true);
        }catch (UnknownAccountException | IncorrectCredentialsException e){
            e.printStackTrace();
            ServletUtils.printJSON(false);
        }
    }
2014年7月24日 16:16

2个答案 按时间排序 按投票排序

0 0

配置文件里面没看出什么问题来。你代码里
SecurityUtils.getSubject().login(token);
会调用你所配的securityManager的login方法。
按你的配置,即DefaultSecurityManager下的login。
登陆成功后调用该类下的onSuccessfulLogin
然后正常情况会走到你所配置的CookieRememberMeManager里的rememberSerializedIdentity方法, 最后会cookie.saveTo(request, response);写入rememberMe的cookie。

按着这流程调试看看哪里有问题吧,不能调试,看不到所有信息,我只能帮到这里了。

2014年7月25日 17:29
0 0

看看大神的
http://jinnianshilongnian.iteye.com/blog/2031823
可能对你解决这个问题有感悟

2014年7月25日 00:31

相关推荐

    Apache shiro1.2.4反序列化漏洞介绍.docx

    Apache Shiro是一个全面的Java安全框架,...总之,理解Apache Shiro的RememberMe机制以及其反序列化漏洞对于保障Web应用程序的安全至关重要。开发者应时刻关注软件的安全更新,并采取必要的措施来保护用户的敏感信息。

    Apache Shiro教程

    - **RememberMe**:允许用户在下次访问时自动登录。 - **Web支持**:Shiro可以方便地与Servlet容器集成,提供过滤器实现Web安全控制。 - **Caching**:支持缓存机制,减少对数据源的频繁访问,提高性能。 - **...

    跟我学Shiro第13章Demo(RememberMe)

    "跟我学Shiro第13章Demo(RememberMe)"是一个实战教程,旨在帮助开发者理解并实现Shiro中的RememberMe特性。RememberMe功能允许用户在一段时间内免于重新登录,提高了用户体验。 在这个Demo中,我们将探讨以下几个...

    Apache Shiro中文开发文档.pdf

    - **应用场景**:无论是简单的命令行应用还是大型集群Web应用,Shiro均能提供一致的安全支持。 通过以上详细解析,我们可以看到Apache Shiro 不仅是一款功能全面的安全框架,而且其设计上注重易用性和灵活性,非常...

    apache shiro 实例

    6. **Remember Me 功能**:Shiro 的 Remember Me 功能允许用户在一段时间内无须再次登录,提高了用户体验。这通常通过在客户端存储持久化的身份验证令牌来实现。 7. **Cryptography(加密算法)**:Shiro 提供了...

    Apache Shiro中文版使用手册

    // "RememberMe" built-in: token.setRememberMe(true); ``` **3.3 “记住我”功能** - **RememberMeAuthenticationToken** 接口支持“记住我”功能。 - 已记住的用户是非匿名用户,可以通过 `subject....

    CVE-2016-4437 Shiro550 & Shiro721 RememberMe Padding Oracle 漏洞利用

    CVE-2016-4437 Shiro550 & Shiro721 RememberMe Padding Oracle Shiro721 RememberMe Padding Oracle影响版本: - Apache Shiro 1.2.5,1.2.6,1.3.0,1.3.1,1.3.2,1.4.0-RC2,1.4.0,1.4.1 CVE-2016-4437 ...

    Apache_Shiro参考手册中文版.zip

    Apache_Shiro参考手册中文版 Introduction to Apache Shiro What is Apache Shiro? ... 为没有关联到登录的用户启用"Remember Me"服务 ... 以及更多——全部集成到紧密结合的易于使用的 API 中。

    apache-shiro教程完整版.7z

    Shiro 提供了Remember Me服务,使得用户在一段时间内登录系统无需再次输入凭证。 2. **授权**:权限控制是Shiro 的另一重要功能,它允许你定义哪些用户可以访问哪些资源。Shiro 支持角色(Role)和权限(Permission...

    apache shiro文档

    Shiro 提供了简单易用的 API 来处理登录验证,包括 Remember Me 功能,可以让用户在一定时间内免密登录。 2. **授权**:授权是控制用户访问特定资源的过程。Shiro 提供了基于角色的访问控制(RBAC),你可以通过...

    Apache_Shiro参考手册中文版

    10. RememberMe 功能:用户在会话中被记住,他们就无需在每次访问时都重新登录。 Shiro支持所有类型的应用程序,从简单的命令行程序到大型企业级应用,且不强制依赖于特定的第三方框架、容器或应用服务器。Shiro的...

    apache shiro 开发文档

    ### Apache Shiro 开发文档详解 #### 一、Apache Shiro 概述 Apache Shiro 是一款强大且灵活的开源安全框架,旨在简洁地解决身份验证(Authentication)、授权(Authorization)、会话管理(Session Management)...

    Apache_Shiro_reference 使用文档(中文版) 共92页.pdf

    - RememberMe功能:Shiro可以记住用户的身份信息,允许用户在之后的会话中无需重复登录。 Shiro适用于各种类型的应用程序,无论是最小的命令行程序还是大型的分布式Web应用。Shiro并不强依赖于其他第三方框架、容器...

    Apache_Shiro参考手册中文版_shiro_

    6. **Remember Me服务**:Shiro提供Remember Me功能,可以让用户在一段时间内无需重新登录,提升用户体验。 7. **简化的API**:Shiro的API设计简洁,易于理解和使用,使得开发者可以快速上手并进行安全控制。 通过...

    shiro jar包及源码下载

    例如,它支持Remember Me服务,允许用户在一段时间内无须再次登录。 2. **授权**:Shiro的权限控制十分强大,可以基于角色(Role)或权限(Permission)进行粒度控制。它可以控制对特定资源的访问,支持通配符权限...

    ApacheShiro复现记录1

    Apache Shiro复现记录1记录了一个典型的反序列化攻击案例,涉及到了ysoserial.jar工具、JRMPListener、bash反弹shell、base64编码、nc工具、Shiro.py工具、rememberMe Cookie和Apache Shiro漏洞等知识点。

    Apache Shiro使用手册 共22页.pdf

    Apache Shiro 使用手册 Apache Shiro 是一个强大易用的 Java 安全框架,提供了认证、授权、加密和会话管理等功能。Shiro 的架构主要包括三个核心组件:Subject、SecurityManager 和 Realm。 1. 认证...

    shiro-all jar

    Apache Shiro是一个强大的Java安全框架,它为应用程序提供了身份验证、授权、会话管理和加密服务。"shiro-all jar"是Shiro的核心库,包含了所有Shiro的功能模块,方便开发者在一个JAR包中直接引用,避免了管理多个...

    Shiro-EXP:Apache Shiro 反序列化漏洞检测与利用工具,一键注入内存马

    与项目相关文章首发于:Shiro exp使用手册Shiro rememberMe反序列化漏洞漏洞原理Apache Shiro框架提供了记住密码的功能(RememberMe),用户登录成功后会生成经过加密并编码的cookie,服务端对rememberMe的cookie值...

    Apache-Shiro反序列化1

    3. 使用 Burp 工具抓包,capture RememberMe 字段的数据包。 4. 使用 Python 工具将数据包反序列化,生成恶意对象。 5. 将恶意对象发送到服务器,执行恶意命令。 三、漏洞分析 Apache Shiro 的反序列化机制存在...

Global site tag (gtag.js) - Google Analytics