1

我已经在项目中配置了 shiro 来进行用户名/密码验证。“过滤器”和“网址”如下所示。

[filters]   
authc.loginUrl = /login.jsp 
shiro.loginUrl = /login.jsp 
[urls]   
/login.jsp = anon, authc 
/index.jsp = authc 

现在每当我们访问 index.jsp 时,它都会重定向到 login.jsp,即使我只是刷新 index.jsp。

如果缓存仍然知道该用户已经登录,当我刷新 index.jsp 时,如何让它保持在 index.jsp 上?

顺便说一句,我还没有配置缓存管理器,所以当启动它会弹出错误,如'org.apache.shiro.realm.AuthorizingRealm - 没有设置缓存或缓存管理器属性。无法获取授权缓存。我应该配置如下(我只使用 shiro core & web)?

builtInCacheManager = org.apache.shiro.cache.MemoryConstrainedCacheManager 
securityManager.cacheManager = $builtInCacheManager 
4

1 回答 1

1

刚开始 shiro 但此链接应该有所帮助:http ://raibledesigns.com/rd/entry/java_web_application_security_part2请参阅“结论”部分。最值得注意的是 authc 如何在当前会话中强制执行身份验证(据我所知,这取决于当前线程调用,可能使用线程本地),因此您不需要 authc 而是特定角色。或示例中的用户,因为这意味着您是已知用户......这与经过身份验证的用户不同(更强的陈述)。

此外,如果区别不明确:通过 shiro 身份验证意味着您刚刚输入了您的用户/通行证,您知道必须是用户。记住的用户已登录,但如果会话尚未过期,您仍处于登录状态,您可以离开,其他人可以坐下。在某些情况下,例如大额支付或其他安全操作(警察或其他敏感信息),您可能希望专门为该服务请求凭据。

于 2013-03-12T07:55:58.743 回答