提示信息

ShiroFilterFactoryBean用法?

文魁 已关注

ShiroFilterFactoryBean 是 Apache Shiro 在 Spring Boot 中的一个组件,用于创建和配置 Shiro 的过滤器。它允许你定义哪些请求需要被保护,以及如何保护这些请求。

以下是一个基本的使用示例:

  1. import org.apache.shiro.spring.web.ShiroFilterFactoryBean;
  2. import org.apache.shiro.web.mgt.DefaultWebSecurityManager;
  3. @Configuration
  4. public class ShiroConfig {
  5. @Bean
  6. public ShiroFilterFactoryBean shiroFilter(DefaultWebSecurityManager securityManager) {
  7. ShiroFilterFactoryBean shiroFilter = new ShiroFilterFactoryBean();
  8. // 必须设置 SecurityManager
  9. shiroFilter.setSecurityManager(securityManager);
  10. // 设置无权限时跳转的 url
  11. shiroFilter.setUnauthorizedUrl("/unauthorized");
  12. /*
  13. * 定义 shiro 过滤链 Map 结构
  14. * Map 中 key(xml或json取节点,或url) 的第一个 '/' 代表的路径是相对于根路径的
  15. * anon: 所有 url 都都可以匿名访问
  16. * authc: 需要认证才能进行访问
  17. * user: 配置记住我或认证通过可以访问
  18. */
  19. Map<String, String> filterMap = new LinkedHashMap<>();
  20. filterMap.put("/login", "anon");
  21. filterMap.put("/logout", "logout");
  22. filterMap.put("/**", "authc");
  23. shiroFilter.setFilterChainDefinitionMap(filterMap);
  24. return shiroFilter;
  25. }
  26. }

在上述代码中,我们首先创建了一个 ShiroFilterFactoryBean 实例并设置了其 SecurityManager。然后,我们配置了没有权限时要跳转的URL,以及一个过滤器链定义映射。

这个映射定义了哪些URL需要被保护,以及如何保护它们。例如,在上述代码中,所有的URL都需要通过认证才能访问(除了 /login/logout)。anon 表示匿

    遇到难题? "AI大模型GPT4.0、GPT" 是你的私人解答专家! 点击按钮去提问......
文魁 关注 已关注

最近一次登录:2023-09-18 16:51:22   

暂时还没有签名,请关注我或评论我的文章
×
免费图表工具,画流程图、架构图