背景:
上文中在落地实践时,对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 配置类中各个配置项的详细解释,可以更好地理解每个配置项的作用和含义,以及为什么要进行这些配置。这些配置项的设置可以根据具体的需求进行调整,以满足应用程序的安全性和功能性要求
最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:
行动吧,在路上总比一直观望的要好,未来的你肯定会感谢现在拼搏的自己!如果想学习提升找不到资料,没人答疑解惑时,请及时加入群: 731789136,里面有各种测试开发资料和技术可以一起交流哦。
这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!