背景:
上文中在落地实践时,对Shiro进行了相关的配置,并未对其含义作用进行详细学习,本章将进一步详解其作用含义。
Shiro配置类中的各个配置项的作用:
|
securityManager()
方法创建一个DefaultWebSecurityManager
对象,并设置了相关的组件。DefaultWebSecurityManager
是 Shiro 的SecurityManager
实现类,用于管理所有的 Subject(用户)。setRealm(myRealm())
设置了自定义的Realm
对象,用于处理认证和授权逻辑。setSessionManager(defaultWebSessionManager())
设置了默认的SessionManager
对象,用于管理用户的会话信息。setCacheManager(ehCacheManager())
设置了 EhCache 缓存管理器,用于缓存用户信息和权限信息。setRememberMeManager(rememberMeManager())
设置了 RememberMeManager,用于实现 "记住我" 功能。
|
|
1 2 3 4 5 6 7 |
|
defaultWebSessionManager()
方法创建一个DefaultWebSessionManager
对象,用于管理用户的会话信息。setGlobalSessionTimeout(1800000)
设置全局会话超时时间为30分钟。setSessionIdCookie(sessionIdCookie())
设置会话 ID 的 Cookie。
1 2 3 4 5 6 7 |
|
sessionIdCookie()
方法创建一个SimpleCookie
对象,用于设置会话 ID 的 Cookie。setHttpOnly(true)
表示该 Cookie 只能通过 HTTP 协议获取,不能通过 JavaScript 等脚本语言获取,有助于防止跨站脚本攻击(XSS)。setMaxAge(-1)
表示该 Cookie 的有效期为浏览器会话结束时失效,即关闭浏览器后会话结束。
1 2 3 4 5 6 |
|
ehCacheManager()
方法创建一个EhCacheManager
对象,用于缓存 Shiro 的数据。setCacheManagerConfigFile("classpath:ehcache.xml")
指定 EhCache 的配置文件位置。
1 2 3 4 5 6 7 |
|
rememberMeManager()
方法创建一个RememberMeManager
对象,用于实现 "记住我" 功能。setCookie(rememberMeCookie())
设置 RememberMe 的 Cookie。setCipherKey(Base64.decode("4AvVhmFLUs0KTA3Kprsdag=="))
设置加密密钥,用于加密 "记住我" 的信息。
1 2 3 4 5 6 7 |
|
rememberMeCookie()
方法创建一个SimpleCookie
对象,用于设置 RememberMe 的 Cookie。setMaxAge(2592000)
设置 RememberMe 的 Cookie 有效期为 30 天。
小结:
通过对 Shiro 配置类中各个配置项的详细解释,可以更好地理解每个配置项的作用和含义,以及为什么要进行这些配置。这些配置项的设置可以根据具体的需求进行调整,以满足应用程序的安全性和功能性要求
总结:
感谢每一个认真阅读我文章的人!!!
作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。
文档获取方式:
加入我的软件测试交流群:680748947免费获取~(同行大佬一起学术交流,每晚都有大佬直播分享技术知识点)
这份文档,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!
以上均可以分享,只需要你搜索vx公众号:程序员雨果,即可免费领取